Background: We're a large, global organization, but in one segment -- Healthcare -- we're trying to add DevOps best practices across the board. The main technical challenge to integrating DevOps into the organization was timely, fast and reliable software delivery. Due to a large number of projects under a small DevOps team, managing the projects became difficult.
Goals: Streamlining our DevOps practice across all projects.
Solution & Results: With such a small DevOps team, managing such a large number of projects proved to be challenging. The projects were of varied types, some iOS, Android, Node, Hybris and Java projects. The build environment variables and the platform needed to build the projects was difficult to manage before Jenkins. We implemented a shared library concept from which all the necessary environment variables were fetched during build time and injected into Jenkins. This resulted in avoiding any hard-coding of variables in the pipeline code and easy management of variables, if their values needed to be modified.
The GitHub organization pipeline feature helped pave the way to manage a huge number of repositories and automate the builds of all branches. The auto-triggering of the build pipelines for PR and PR-merges by auto scanning the GitHub repositories resulted in super quick integration. Pipeline stages added for code quality control gave excellent results in quality and secure code in every release.
Jenkins is the way to easily manage all the code from end-to-end, from commits till deployment. The enormous number of plugins help you do almost anything.
Here are the main plugins we used and relied on: