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 automate things when new changes are made. Do you know which is better for your needs? Do you know the differences between Travis CI vs Jenkins?
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. Travis CI is 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. Travis CI is currently only available for GitHub and BitBucket.
Configuration
Travis CI can be configured by 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. Steps to set up Travis CI with BitBucket are found here.
Pricing
Travis CI is 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
Travis CI supports a wide variety of programming languages. They support 32 different languages that are listed here and here. You can find the docs for how to submit support for a new language here.
Jenkins
Jenkins first started back in 2005 which makes it one of the oldest CI/CD platforms available. It has been installed millions of times. This makes it one of the most, if not THE most, popular CI/CD platforms in use today. It has over 1500 plugins to choose from to customize your CI/CD needs. Jenkins is open-source and does not cost anything for the software itself. The cost of infrastructure needed to run it is the only cost.
Jenkins is only available on-premise except through third-party providers. They do not have a Jenkins-hosted cloud-based CI/CD service that you can subscribe to. There are some offerings such as Google Cloud’s Jenkins Cloud offering and Cloudbees Jenkins Platform that allow you to use a cloud-based Jenkins solution, however.
Jenkins allows for simultaneous builds running concurrently by default if you have the infrastructure to support it. Numerous large companies use Jenkins for their CI/CD needs.
Although Jenkins does not have a cloud-based offering directly from Jenkins, there are a few hosting providers that offer such an offering. However, one of the major draws of Jenkins for users is the customizability of using the multitude of plugins available.
Pros and Cons
Travis CI Pros
The benefits of Travis CI over Jenkins are the following:
- Cloud-based offering
- No need to pay for, configure or maintain your own infrastructure
- Build Matrices
Travis CI Cons
- In order to get multiple concurrent builds, the monthly price can get expensive quickly
- No completely free account for projects with private repositories
- Not as many plugins available that can simplify the customization of CI/CD flow compared to Jenkins
- Only available for repositories stored in GitHub or BitBucket
Jenkins Pros
- Open-source software, well-vetted
- Over 1,500 plugins to help simplify and customize CI/CD flow
- Completely free software, only need to pay for the infrastructure you want to allocate
- More widely used than Travis CI and thus more community-based support
- More SCMs than just GitHub and BitBucket
Jenkins Cons
- No cloud-based subscription offering directly from vendors themselves. Requires third-party platforms hosting Jenkins in the cloud
- Have to pay for, configure, and maintain your own infrastructure to run Jenkins
- With the multitude of plugins available, it can be a bit of a learning curve when learning which ones are best for your particular situation
Conclusion
The best platform for you all depends on your specific needs. If you do not have a large monthly budget or extra man-hours to spend on infrastructure issues, then a cloud-based provider such as Travis CI will be a better choice. Just note that Travis CI only integrates with GitHub and Bitbucket as I write this (June 2020).
If you are building projects that contain repositories stored somewhere other than GitHub or BitBucket, you would probably be better off using Jenkins for now until Travis CI expands its SCM integrations. If you are on a budget, try one of the third-party cloud-based Jenkins offerings I referenced earlier in this story.
You can also check out my post comparing Travis CI vs CircleCI and my comparison between CircleCI vs Jenkins.
Please let me know which platform you think is better or that you prefer using and why in the comments!