Software development and automation of the process have advanced a great deal in recent years. There are now many different platforms you can utilize to automate your software development workflow. Utilizing one of these CI (Continuous Integration) and CD (Continuous Delivery) tools is a best practice for the software development lifecycle. It helps to automate things when new changes are added. Do you know which is better for your needs? Do you know the differences between Travis CI vs Circle CI?
In this post, I will compare the two platforms and lay out the differences between each, and provide a list of what I believe are the pros and cons of each. Let’s get started!
Check out our related YouTube video:
Travis CI
Founded in 2011, Travis CI is the oldest and most mature cloud-hosted CI/CD provider. They are based in Berlin, Germany. They are among the most popular CI/CD platforms for open source projects. It has support for a variety of languages with multiple pricing plans available to suit most peoples’ needs. It is currently only available for GitHub and BitBucket.
Configuration
Configuration is as easy as just creating a file in the root of your SCM repo called .travis.yml
. You can find details on how to configure this file and all the available options here. This allows for the ability to copy the configuration file to multiple repositories and just edit the relevant details specific to that repo and everything will work.
Some CI/CD tools require setting up the process manually to start with, and each time you create another project, you have to go through those same steps to set it up each time. That is not really ideal as some steps could be overlooked or missed from time to time. This can cause some of your automated processes to not work correctly, and thus possibly cause issues down the road if it goes unnoticed.
You can find steps to set up Travis CI with GitHub here and steps to set up with BitBucket here.
Pricing
Always free for open-source projects. For projects with private repositories, your first 100 builds are free in order to allow you to try it out even for private repositories. For unlimited builds for projects with private repos, there are a variety of plans for developers and teams of all sizes starting at $65/month as of this writing (June 2020). You can find the full list of plan options for private repositories here.
Supported Languages
They support a wide variety of programming languages. They support 32 different languages that can be found here and here. You can find the docs on how to submit support for a new language here.
They does not charge extra for access to macOS build environments. Circle CI does not charge “extra” per se, but requires more “credits” per minute than Linux build environments and thus can eat through your credits much faster than expected.
Circle CI
Also started in 2011, Circle CI has been around as long as Travis CI. They do not have quite as large of a customer base as Travis CI but are an equally powerful CI/CD platform that is based in San Francisco, CA. It also has support for a variety of languages with multiple pricing plans available to suit most peoples’ needs just as Travis CI does. Circle CI also is currently only available for GitHub and BitBucket.
Configuration
Configuration for Circle CI is just as easy by creating a directory in the root of your SCM repo called .circleci
. Inside this directory, you create a file config.yml
. You can find details on how to configure this file and all the available options here. This allows for the ability to copy the configuration file to multiple repositories and just edit the relevant details specific to that repo and everything will work just like Travis CI.
You can find steps to set up Circle CI with GitHub here. Steps to set up Circle CI with BitBucket are found here.
Pricing
Circle CI is always free for open-source projects. For projects with private repositories, you have multiple plans available with a Free plan available with limited credits each week. So if you have a project that doesn’t require a lot of changes and thus not many builds each week, this could be a permanent free solution.
Unlike Travis CI where you buy different plans which are all unlimited builds and build minutes but only differ by the number of concurrent builds, Circle CI plans are based on “credits”. This can allow you to auto-scale to the capacity of concurrent builds as needed by using more credits for each additional concurrent build. Pricing starts at $30/month which includes 3 users and 25,000 credits with each additional 25,000 credits costing $15 and an additional $15 per additional user.
Circle Ci charges more credits per minute for macOS builds than for the Linux Docker builds. The differences between normal Linux VM and macOS are minimal.
Supported Languages
Circle CI also supports a wide variety of programming languages. You can find information on Circle CI’s supported languages here.
Pros and Cons
Travis CI Pros
- Unlimited builds for each paid plan
- More languages supported by default
- Build Matrices
Travis CI Cons
- Higher starting price point for paid plans
- No completely free account for projects with private repos
- No concurrent builds until you pay more per month for higher-priced plans
Circle CI Pros
- Completely free account for projects with private repos with limited build minutes each week
- Cheaper starting price point for paid plans
- Can automatically have multiple concurrent builds at the lowest price point
Circle CI Cons
- Paid plans are based on “credits”. Credits are spent for each minute of build time
- Credits are used at different rates depending on OS and VM size. Thus if you are building on Windows or macOS, you spend more credits per minute than Docker or Linux VM builds.
Conclusion
The best platform for you all depends on your specific needs. If you are only building projects that only have open source repositories, then either platform will be free. Thus, it’s all based on personal preference.
If you are building projects that contain private repositories and are heavily utilizing Windows or macOS VMs, it would most likely be cheaper, in the long run, to go with Travis CI. Circle CI will be cheaper if you have projects that are not updated very frequently and can be built on Linux, or if you can mostly utilize Circle Ci’s Docker Linux builds.
The other major thing to consider is the language being used for your projects. If one platform offers it and the other platform doesn’t, then the platform that does offer it would probably suit your needs better.
You can also check out my comparison between Travis CI and Jenkins or Circle CI and Jenkins.
Please let me know which platform you think is better and why in the comments!