Background: The Application and Services section of CERN (APS) provides generic data management services and comprehensive software solutions needed within the Accelerator & Technology Sector. APS is responsible for a leading role in all technical matters, collaborating with users, partners, and service providers. This collaboration covers requirement analysis and data modeling, design and implementation of the corresponding data repositories, server-side processes, client APIs, and generic user-oriented applications. That's why it was imperative that CERN's software was error-free and that CERN developers were able to focus on building high-quality applications as opposed to QA and testing processes. Automation was key.
Goals: The main challenge we hoped to solve with Jenkins was to facilitate day-to-day work by automating repetitive, error-prone steps in delivering our tools to our end-users. We wanted to lower daily work overhead by automating the building and testing process through merge requests integration between Gitlab and Jenkins. Moreover, we sought to automate the continuous integration and delivery of our web applications to eliminate any human errors from the process.
Solution & Results: We put Jenkins in the middle of our development process. Here's how:
Jenkins has helped our developers be much more innovative as they are no longer needed to also be infrastructure engineers.
By adding Jenkins into development, we significantly lowered our delivery time and removed overhead from the process. The integration with Gitlab and Artifactory was also a huge help in this endeavor. Since we could now run our e2e tests with the help of xvfb plugin, it allowed us to automate parts of the QA process on Jenkins. By automating our development process, Jenkins does the heavy work of building, testing, releasing, and deploying, giving developers more time to focus on developing new features and delivering high quality applications. It also drove significant results, including: