This is the 21st day of my participation in the August More Text Challenge
The DevOps community has a lot of great tools, so choosing the right tool for you will not only make it easier to use, but also make it more productive.
Jenkins, Travis CI and Circle CI are the three most popular tools in the community. Next, I will compare the three tools and choose the one that suits me best
First take a look at the NPM download numbers and Stats comparison chart
Jenkins
Jenkins, formerly Hudson but changed to its current name in 2011, is an open source software tool for continuous integration. Official website: Jenkins-ci.org/
Jenkins monitors integration errors in real time, provides detailed log files and alerts, and visualizes the trend and stability of project builds in the form of charts.
Jenkins features:
- Easy to install: Jenkins is a standalone Java-based program ready to run and contains software packages for Windows, Mac OS X and other Unix-like operating systems. Just a java-jar jenkins.war, download the file from the official website and run it directly without additional installation, let alone database installation;
- Easy configuration: provides a friendly GUI configuration interface;
- Change support: Jenkins can fetch and generate a list of code updates from the code repository (Subversion/CVS) and output it to the compiled output.
- Permalink support: Jenkins is accessed via the Web, and these web pages are linked to permalink addresses, so you can use the link directly in various documents;
- ** Integration E-mail /RSS/IM: ** These tools tell you the integration results in real time when an integration is complete (as FAR as I know, building an integration takes a while, with this feature you can do other things while waiting for the results);
- JUnit/TestNG test reporting: that is, providing detailed test reporting functionality in the form of charts, etc.
- Support distributed build: Jenkins can distribute the work of integration build to multiple computers to complete;
- Fingerprint information: Jenkins keeps the build records of which integration builds produced which jars, which integration builds used which version of jars, etc.
- Support for third party plugins: Makes Jenkins more powerful With hundreds of plug-ins in the Update center, Jenkins has integrated almost every tool in the continuous integration and continuous delivery tool chain.
- Rest API – Access to control the amount of data you fetch, get/update config.xml, delete jobs, retrieve all builds, get/update job descriptions, perform builds, disable/enable jobs
Jenkins advantages:
- Price (free)
- custom
- Plug-in system
- Complete control system
Jenkins faults:
- A dedicated server (or multiple servers) is required. This results in additional costs. For the server itself, DevOps etc…
- Time required for configuration/customization
Travis CI
Travis CI is a hosted continuous integration service for building and testing software projects hosted on GitHub.
Travis CI is a hosted continuous integration service used to build and test software projects hosted at GitHub
Travis CI features:
-
Cloud-based: TravisCI is a cloud-based system – no dedicated servers are required and you don’t need to manage it.
-
Support for Docker running tests
-
Use YAML files for configuration
-
You can optionally run tests on Linux and Mac OSX at the same time
-
Supported languages out of the box
Android, C, C #, C ++, Clojure, Crystal, D, Dart, Erlang, Elixir, F#, Go, Groovy, Haskell, Haxe, Java, JavaScript (using node.js), Julia, Objective-c, Perl, Perl6, PHP, Python, R, Ruby, Rust, Scala, Smalltalk, Visual Basic
-
Support for multiple environment build matrices: Python 2.7, 3.4, 3.5 + Django 1.8, 1.9, 1.10
A build matrix is a tool that allows you to run tests with different versions of languages and packages. You can customize it in different ways. For example, the failure of some environments can trigger notifications but does not cause all builds to fail (which is helpful for development versions of packages)
Travis CI advantages:
- Build the matrix out of the box
- Quick start
- Lightweight YAML configuration
- Free plans for open source projects
- No dedicated server required
Travis CI disadvantages:
- Compared to CircleCI, the price is higher and there is no free corporate plan
- Customization (for something you need a third party)
Circle CI
After the software repository on GitHub or Bitbucket is licensed and added as a project to circleci.com, each code change triggers automated testing in a clean container or VM.
CircleCI was named a Continuous integration Leader by Forrester in 2017 and has been named on multiple lists of best DevOps tools. CircleCI was founded in 2011 and is headquartered in San Francisco with a global workforce of remote employees, led by Scale Venture Partners, DFJ, Baseline Ventures, Top Tier Capital, Industry Ventures, Venture Capital is provided by Heavybit and Harrison Metal Capital.
Circle CI features:
- Cloud & Localization: CircleCI is a cloud-based system – no dedicated server is required and you do not need to manage it. However, it also provides an on-premise solution that allows you to run it in a private cloud or data center.
- Business & Free: Even for business accounts, it comes with a free plan
- Rest API – You can access projects, builds, and artifacts. The result of the build will be an artifact or a group of artifacts. Artifacts can be compiled applications or executables (for example, Android APK) or metadata (for example, information about test ‘success)
- On-demand installation: CircleCI cache required installation. It checks for third-party dependencies rather than continuously installing the required environment
- SSH mode: You can trigger SSH mode to access the container and do your own investigation (if anything goes wrong)
- Minimal configuration: This is a complete out of the box solution that requires minimal configuration \ adjustments
CircleCI advantages:
- Quick start
- CircleCI has a free corporate program
- It’s easy and quick to start
- Lightweight, easy-to-read YAML configuration
- You don’t need any dedicated servers to run CircleCI
CircleCI faults:
-
CircleCI only supports 2 versions of Ubuntu free (12.04 and 14.04) and MacOS as paid
-
Although CircleCI can use and run all languages, TT only supports the following programming languages “out of the box” : Go (Golang), Haskell, Java, PHP, Python, Ruby/Rails, Scala
-
If you want to customize, some problems may arise: you may need some third-party software to make these adjustments
-
Also, while being a cloud-based system is an advantage for one side, it can also stop supporting any software that you will not be able to stop
To sum up:
classification | Jenkins | Travis CI | Circle CI |
---|---|---|---|
Local deployment | support | Does not support | support |
REST API | support | support | support |
configuration | Complex and highly configurable | YAML files | YAML files |
According to the need to install | is | no | is |
Cross-platform support | is | Linux + MacOS | Linux + MacOS(paid) |
Multiple servers | is | On demand | no |
To quickly build | Manual configuration complex | Fast (need to write configuration file) | The fastest |
Basic environment | Java | The cloud | The cloud |
cost | free | Specific free (69$/c) | Specific free ($50 /c) |