Continuous Integration (CI) tools help you stick to your team's quality standards by running tests every time you push a new commit and reporting the results to a pull request. Combined with continuous delivery (CD) tools, you can also test your code on multiple configurations, run additional performance tests, and automate every step until production.
There are several CI and CD tools that integrate with GitHub, some of which you can install in a few clicks from GitHub Marketplace. With so many options, you can pick the best tool for the job—even if it's not the one that comes pre-integrated with your system.
The tools that will work best for you depends on many factors, including:
- Programming language and application architecture
- Operating system and browsers you plan to support
- Your team's experience and skills
- Scaling capabilities and plans for growth
- Geographic distribution of dependent systems and the people who use them
- Packaging and delivery goals
Of course, it isn't possible to optimize your CI tool for all of these scenarios. The people who build them have to choose which use cases to serve best—and when to prioritize complexity over simplicity. For example, if you like to test small applications written in a particular programming language for one platform, you won't need the complexity of a tool that tests embedded software controllers on dozens of platforms with a broad mix of programming languages and frameworks.
If you need a little inspiration for which CI tool might work best, take a look at popular GitHub projects. Many show the status of their integrated CI/CD tools as badges in their README.md. We've also analyzed the use of CI tools across more than 50 million repositories in the GitHub community, and found a lot of variety. The following diagram shows the relative percentage of the top 10 CI tools used with GitHub.com, based on the most used commit status contexts used within our pull requests.
Our analysis also showed that many teams use more than one CI tool in their projects, allowing them to emphasize what each tool does best.
If you'd like to check them out, here are the top 10 tools teams use:
It's tempting to just pick the default, pre-integrated tool without taking the time to research and choose the best one for the job, but there are plenty of excellent choices built for your specific use cases. And if you change your mind later, no problem. When you choose the best tool for a specific situation, you're guaranteeing tailored performance and the freedom of interchangability when it no longer fits.
Ready to see how CI tools can fit into your workflow?