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)