Background: We had been testing technology package code but it was done manually and took around 2 to 3 days to achieve. We searched for the best technology to automate the continuous Integration Testing, we came across Jenkins.
The challenges we faced were many. First, the project was quite helpful for Jenkins users to test their technology package being developed, but there was a need to improve on several aspects due to the utility code written in Python for creating a new job or updating an existing job. These are cited below:
Goals: The main goal of this project was to test every new technology package automatically overnight. But we were also interested in:
Users and stakeholders were not initially interested in using Jenkins due to utility code implementation required to create and update test cases. But by using the Jenkins parallelization concept, we were able to achieve faster releases with no performance, reliability, or stability issues. Management then took the decision to rollout Jenkins in a big way across the teams.
Solution & Results: Using Jenkins, we build a parametrized project that can be used by variant teams. They specify the version of the application they want to develop, and Jenkins takes responsibility to create the technology package code and does the necessary configurations automatically. The customer receives a notification when the new fix has been released and can provide testing without human interaction.
Prior to using Jenkins, testing was carried manually by individual teams. After incorporating Jenkins, we have a centralized place to trigger and monitor the results. And Jenkins maintenance is done by the software 'teams.
Out of all the great results we've seen, these are the top four: