An Introduction to CI, with Comparison of 17 Major CI Tools in 2020, and How to Choose the best CI
--
First of all, I want to start with an apology — for such a long title. I couldn’t do better (in fact I could, but it would leave important information out).
In this article, I would start with CI, with Jenkins, with what isn’t ideal with Jenkins in 2020, and then try to find out the best choice (for me and for you) by comparing 17 major CI tool-chains.
Let’s start.
Definition of CI
Continuous integration (CI) is the practice of merging all developers’ working copies to shared mainline several times a day.
We will cover this again later, but it seems CI doesn’t really do much, it integrates and automates a series of tasks so that all devs work can be merged on a daily, if not hourly, basis.
What’s Wrong with Jenkins
This is the elephant in the room: you kind of have to talk about Jenkins when you are talking about CI.
A quick recap on the beginning part of the history of Jenkins for new DevOps guys:
Jenkins was originally developed as the Hudson project. Hudson’s creation started in summer of 2004 at Sun Microsystems. It was first released in java.net in Feb. 2005.
Around 2007 Hudson became known as a better alternative to Cruise Control and other open-source build-servers. At the JavaOne conference in May 2008 the software won the Duke’s Choice Award in the Developer Solutions category.
During November 2010, after the acquisition of Sun Microsystems by Oracle, an issue arose in the Hudson community with respect to the infrastructure used, which grew to encompass questions over the stewardship and control by Oracle. Negotiations between the principal project contributors and Oracle took place, and although there were many areas of agreement a key…