The client uses Jenkins, a widely used open-source tool known for its exceptional CI/CD capabilities. The GSPANN team worked closely with the client to utilize the concept of multi-branch pipelines and implemented the use of shared libraries within Jenkins. Shared libraries, written in Groovy, are a collection of reusable code that can be utilized across multiple Jenkins files/pipelines.
This approach streamlined the CI/CD pipeline. It improved its efficiency by enabling the sharing of common code and functions across projects, eliminating redundancies, and embodying the "Don't Repeat Yourself" (DRY) principle.
Not only code but shared libraries are also used to share important resources such as credentials, environment variables, and configuration settings. This helps simplify the configuration process as the same settings can be used across multiple pipelines without the need for manual configuration in each. This approach also ensures consistency among team members, making it easier to track and maintain the pipelines effectively.
The integration of shared libraries into the pipelines was made simple through the addition of a line of code in the project's Jenkins file. This ease of integration allowed developers to create their own CI/CD pipelines, eliminating the need to rely on DevOps teams for new pipeline creation. As a result, the turnaround time for creating new pipelines were significantly reduced and sparked interest in adoption among other teams within the organization.
- Multi-branch Pipelines: Adoption of multi-branch pipelines to improve efficiency and streamline the CI/CD process.
- Shared Libraries: Implementation of shared libraries to share code, resources, and configuration settings across multiple projects.
- Improved Configuration Process: Streamlining the configuration process by eliminating manual configuration for each pipeline.
- DIY CI/CD Pipeline Creation: Allowing developers to create a DIY CI/CD pipeline and reducing the need for DevOps teams to create new pipelines.
- Adoption Across Teams: Triggered interest in adopting shared libraries and multi-branch pipelines across other teams within the organization.
- Efficient and Accelerated DevSecOps CI/CD: The implementation of Jenkins shared libraries has improved efficiency, streamlined, and accelerated the overall DevSecOps-enabled CI/CD implementation for these projects.