CircleCI vs Jenkins vs Travis

Shama Ahlawat
3 min readOct 18, 2020

What is CI/CD and why should I use CI/CD

CI/CD stands for continuous integration and continuous delivery.

  • Continuous Integration is the process in which all code changes from multiple developers are automatically merged into a single shared repository. Then each integration is verified by an automated tool that checks for code style and runs tests before each build.
  • Continuous Delivery expands upon Continuous Integration by deploying all code changes to a testing environment and/or production environment after the build stage. In order words, all-new features, bug fixes, … will be delivered to the hand of testers/users frequently.

Note — This practice of CI/CD significantly reduces the cost of manual operation for developers, hence improve productivity and shorten deployment time.

When to choose CircleCI over Jenkins and Travis(and other alternatives)

What CI system to chose? That depends on your needs and the way you are planning to use it.

CircleCI is recommended for small projects, where the main goal is to start the integration as fast as possible.

Travis CI is recommended for cases when you are working on the open-source projects, that should be tested in different environments.

Jenkins is recommended for the big projects, where you need a lot of customizations that can be done by usage of various plugins. You may change almost everything here, still this process may take a while. If you are planning the quickest start with the CI system Jenkins might not be your choice.

Most distinct difference between Jenkins and CircleCI is that you need a server to host Jenkins there, which requires administration knowledge and a considerable amount of time for configuration/customization. Meanwhile, CircleCI is a cloud-native platform, which means you do not need to set up any server, it just runs out of the box.

Jenkins’s interface is rather old and unintuitive, whereas CircleCI’s design is very friendly. When it comes to configuration, with CircleCI, the yml syntax is clear and easy for developers to read.

In conclusion, CircleCI is a lightweight CI/CD platform which supports almost every programming languages out of the box. Developers can also deploy to AWS, Azure, Google Cloud, Heroku, and many other clouds hosting services.

The practical scenario for CircleCI:

  • A group of developers working on a NodeJS and React project
  • All code changes from developers are pushed to a GitHub repository
  • With each commit pushed to the repository, CircleCI will be triggered. It will check out the latest code, install dependencies and run tests
  • After all, tests are passed, CircleCI deploy code to a remote server via SSH

CircleCI is compatible with:

  • Python, Node.js, Ruby, Java, Go, etc
  • Ubuntu (12.04, 14.04), Mac OS X (paid accounts)
  • Github, Bitbucket
  • AWS, Azure, Heroku, Docker, dedicated server
  • Jira, HipChat, Slack

CircleCI Pros:

  • Fast start
  • CircleCI has a free plan for enterprise projects
  • It’s easy and fast to start
  • Lightweight, easily readable YAML config
  • You do not need any dedicated server to run CircleCI

CircleCI Cons:

  • CircleCI supports only 2 versions of Ubuntu for free (12.04 и 14.04) and MacOS as a paid part
  • Despite the fact CircleCI do work with and run on all languages tt supports only the following programming languages “out of the box”:

Go (Golang), Haskell, Java, PHP, Python, Ruby/Rails, Scala

  • Some problems may appear in case you would like to make customizations: you may need some 3rd party software to make those adjustments
  • Also, while being a cloud-based system is a plus from one side, it can also stop supporting any software, and you won’t be able to prevent that

--

--

Shama Ahlawat

I am Software Developer and i am working for startup ecosystem. Fashion is my passion.I want to contribute to the world before I die.