Continuous Integration (Circle CI vs Travis CI)

What is Continuous Integration (CI) ?

Continuous Integration represent the process of automatically testing and building the code after every new change to the current version control. CI offers developers an option to share their code and unit tests by merging their changes into a shared version control repository after every small task completion. After every code commit there is trigger that automatically build system to grab the latest code from the shared repository and to test, validate, and build  master branch. By integrating regularly, you can detect errors quickly, and locate them more easily. With Continuous integration your organization can benefit from: catching issues early, Increase visibility, spend less time debugging and more time adding features, stop waiting to find out if your code’s going to work etc.

Travis

Travis CI was the first CI as a Service tool, introducing the new approach of building code in the cloud. Travis allows users to sign up, link their repository, and start building and testing their app. Travis integrates quite easily with the common cloud repositories GitHub and BitBucket and by simplifying the build process, it allows inexperienced users to easily start building their code, discover project types and structures automatically, and most importantly open-source projects for free.

Travis pros and features:

  • Comes with free cloud-based hosting that requires no maintenance or administration.
  • Capable of running tests on Linux and Mac OS X simultaneously.
  • Supports the following languages: Android, C, C#, C++, Clojure, Crystal, D, Dart, Erlang, Elixir, F#, Go, Groovy, Haskell, Haxe, Java, JavaScript (with Node.js), Julia, Objective-C, Perl, Perl6, PHP, Python, R, Ruby, Rust, Scala, Smalltalk and Visual Basic.
  • Lightweight and easy to set up.
  • Free for open source projects.
  • No dedicated server needed.
  • Build matrix feature.

Circle CI

Circle CI continuous integration and delivery platform helps software teams rapidly release code with confidence by automating the build, test, and deploy process. CircleCI offers a modern software development platform that lets teams ramp quickly, scale easily, and build confidently every day.

Circle CI pros and features:

  • CircleCI is a cloud-based system — no dedicated server required, and you do not need to administer it. However, it also offers an on-prem solution that allows you to run it in your private cloud or data center.
  • It has a free plan even for a business account.
  • Rest API — you have an access to projects, build and artifacts The result of the build is going to be an artifact or the group of artifacts. Artifacts could be a compiled application or executable files (e.g. android APK) or metadata (e.g. information about the tests`success).
  • CircleCI caches requirements installation. It checks 3rd party dependencies instead of constant installations of the environments needed.
  • You can trigger SSH mode to access container and make your own investigation (in case of any problems appear).
  • That’s a complete out of a box solution that needs minimal configuration\adjustments.
  • Languages: Python, Node.js, Ruby, Java, Go.
  • It’s compatible with: Ubuntu (12.04, 14.04), Mac OS X (paid accounts), Github, Bitbucket, AWS, Azure, Heroku, Docker, dedicated server ,Jira, HipChat, Slack.
  • 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.

Summary

Both could be setup with YAML file in source repository.

Travis officially support 29 languages, Circle CI officially support 9.

Travis is free for open-source and paid otherwise, while Circle has free single slot available and discount for open-source projects for higher tiers

Both are are cloud-based and have support of Docker to run tests

Awesome List of Continuous Integration services