Background: Working for a company that designs and develops the best software solutions, my team was challenged with creating new tournament software for one of our clients. For this, we needed to have a CI that could provide multiple options. We wanted to build an Electron.JS app for numerous OS and testing processes to ensure high performance and an automated release cycle. We also wanted to create software to prepare and manage tournaments with multiple instances running on multiple machines, in sync.
Goals: A high performing CI/CD to support software acceleration.
Solution and Results:
We had multiple goals for this project in which we relied on Jenkins.
CI/CD Solutions such as Jenkins have no equivalent on-premise. With Jenkins, you can control everything you do.
The Jenkins capabilities we relied on included:
CI/CD Solutions such as Jenkins have no equivalent on-premise. We need complete control of where the data resides. The most crucial feature of Jenkins is DSL. With Jenkins, you can control everything you do. This has pros and cons; many common things aren't abstracted by default. We created a DSL and imported it automatically to extend Jenkins' capabilities. This way, we had many of our internal protocols factored for our teams.
We are pleased with the performance of our new CI/CD. With it, we were able to accomplish: