Create a roadmap to transform to continuous integration without manual interference.
Background: At my employer, a leading semiconductor enterprise, I'm responsible for the integration and qualification of the common facilities department. That's over 100 developers. I also handle the transformation and automatization of processes within the way of working. The technical challenge I had to overcome was to connect many different kinds of systems. For a single integration, there is information gathered from a variety of systems and sources and then stored in JSON for data analysis.
Goals: Integration without manual interference. This included creating a roadmap to transform to continuous integration, reduce qualification lead time, improve the integration tooling process, automate manual integration work, and automize gathering information, dashboards, and documentation.
Solution & Results: We have created a Jenkins pipeline with a lot of stages. The pipeline is easily extensible because in the future we'll require that it have more stages added. The pipeline is set up in a way that we can add additional unit and system-level testing. This allows us to reduce the time development teams spend on testing.
We really relied on Jenkins pipelines and CLI, aka command-line interface. Jenkins has a built-in CLI that allowed us to access Jenkins from a script or shell environment and to create Jenkins jobs on the fly. This is convenient for scripting routine tasks, bulk updates, troubleshooting, and more.
As a software integrator, I am really happy with our results so far. They include:
- faster integration - from days to hours
- less testing done by development teams
- faster feedback to development teams
Jenkins is an amazing automation tool with amazing configuration possibilities.
