Top 10 Build Automation Tools
The tools and workflows you choose can make or break your project. In this article, I’ll walk you through the top ten build automation tools on the market today, so you can choose solutions that will help you best optimize your projects.
What Is Build Automation?
Building is the process of turning your code into an executable piece of software. It can include the conversion of code to a binary, the packaging of assets, compression, signing with a certificate, testing, and more. If you’ve ever written a build script, you’ve automated a build.
Today, there’s a huge range of tools available to make life even easier for you, handling each step and leaving you free to focus on other things. All you have to do is click—and perhaps not even that.
Why is build automation important for engineering teams?
It takes a lot to get a project compiled, built, and packaged. Creating high-quality output is tougher than it sounds, and anyone that’s delivered a software project will be familiar with the various extras needed to get your project over the line.
Automated tools make that process faster, easier, and more reliable. And picking the best will optimize the gains you can make.
What factors are you using to evaluate tools?
I’ll assess these tools in a few areas. First, I’ll discuss features, so you can accurately determine their utility. If you’re considering a switch for your team, it’s especially important to understand how much work is needed to set up a new tool.
Next I’ll talk about any specific limitations or drawbacks each build tool has, so you can avoid any that aren’t a good fit. Finally, I’ll talk about the price, so you can judge whether it’s worth your investment.
Top 10 Build Automation Tools
1. Jenkins
Jenkins is an automation server offering continuous integration and delivery. With over 200,000 known installations it is the most widely deployed tool of its type. It is open source and has a wealth of extensions for customization.
Setting up Jenkins is a straightforward, step-by-step process that varies between platforms. It is mostly command line based, though Windows has a wizard.
Jenkins provides useful feedback on failed commits and also allows you to distribute builds. Note that the UI can be unintuitive, and its user management makes it hard to track who is doing what.
Jenkins is free and open source.
Features
- Many plugins
- Highly configurable
- Works with Ant, Maven, sbt, and scripts
- Version control
2. CircleCI
CircleCI is a continuous integration platform that aims for speed and complete flexibility, promising to work with any language that builds on Windows, Mac, or Linux.
Its YAML configuration can take time, but offers advantages over tools like Jenkins as it lets you keep tasks in a single document. It also runs in the cloud, though you can discuss self-hosting with its sales team.
The UI is regularly updated, which keeps it modern, but it can be hard to keep up with.
CircleCI is free but limits you to one job at a time. Paid plans start at $30 per month, including three users, then you can add further users at $15 per month. You need to pay for credits, too. Note that if you go beyond the free tier, the per user cost is potentially high.
Features
- Automated testing
- Failure notifications
- Advanced caching options
3. Azure DevOps Server
Azure DevOps Server’s project and release management tools can help you stay organized, while its automation and reporting features improve your build processes. It integrates well with other tools, letting you pick and choose features, making it a great choice if you want to work it into your existing setup.
It’s a complicated on-premises product, and will take work to set up properly to get the most out of it. Finding your way around its many features can be challenging.
The Azure DevOps Server starts at $51 per user per month, including a Visual Studio subscription. You can also pay for different services individually.
Features
- Release management
- Built automation
- Integration with other tools and services
- Continuous integration
- Project management features
- Reporting
4. Travis CI
Travis CI is a continuous integration tool that aims for simplicity. It has over 700,000 users and is a great choice if you want something straightforward you can set up quickly. Its presets allow rapid configuration, but it doesn’t have as many plugins or configuration options as tools like Jenkins.
Its clean builds run from a fresh environment each time, avoiding awkward issues that can be hard to diagnose and fix.
Travis CI has a free plan, but it doesn’t give you much time. Its paid plans range from $69–$249 per month, depending on the number of concurrent users.
Features
- Supports over thirty languages
- Pull request testing
- Clean build VMs
- Multiplatform
- Connects to GitHub and Bitbucket
5. Apache Maven
Maven is one of the longest running build automation tools, and still one of the best. It is the most popular build tool for Java. It can handle a range of tasks and is easy for coders to configure and set up thanks to its straightforward documentation.
You can set it up from the command line or use it from within Eclipse. Note that it’s mainly for Java. It can be used for other languages, but this may require plugins and community support will be more limited.
Apache Maven is free and open source. Its reproducible, model-based builds make it fast and efficient for developers working on multiple projects.
Features
- Strong dependency management
- Reproducible builds
- Highly extensible
- Model-based builds, requiring minimal input to set up
- Release management
6. TeamCity
TeamCity is a build automation tool from JetBrains pitched at DevOps-focused teams. It has over 30,000 customers, including Ferrari, Citibank and Ubisoft. It integrates well with many other tools, including JetBrains’ own IntelliJ IDEA and ReSharper, which are bundled with it.
It is easy to download and install, and runs in a browser-based interface. Once you create an account, you can get right into your first project. TeamCity can be tricky to upgrade or update. It also installs services that block port 80 by default.
TeamCity comes in several versions. The free version limits you to three build agents and 100 build configurations. You can add new build agents for $340 each. Its Enterprise plan, with premium email support and unlimited build configurations, starts at $2,300 with three build agents, rising to $25,000 for over 100 agents.
Features
- Continuous integration and code reuse
- Integrates with other tools like Docker and Maven, as well as several cloud services
- User and build history management
7. Bamboo
Bamboo is a continuous integration tool by Australian software giant Atlassian. It’s clients include Nasa and Splunk. It has a strong UI and features many extensions for working with other platforms. It runs locally in the browser.
There is a bit of a learning curve, as it does take some work to install and configure, but nothing too strenuous. Connecting to other tools can be tricky, and user permissions could be more granular.
Bamboo’s small team plan is $10, with limited jobs. Its unlimited edition starts at $1,500 for the first agent. There’s a thirty-day free trial.
Features
- Impressive testing features, including automated and parallel tests
- Hundreds of extensions
- Works with all languages and tech such as Ant, Docker, and Amazon S3
- Deployment projects
- Automated build triggers
- Branch detection
8. CodeShip
CodeShip is an easy-to-use continuous integration tool that lets you deploy and test quickly via its web-based interface. It’s quick to set up and run, but there are some UI gripes in the community, such as trouble switching projects. It has limited open-source support.
CodeShip’s free plan gives you 100 builds per month, with one concurrent build and a parallel test pipeline. At $49 per month, you get unlimited builds, and prices increase from there if you want more concurrency, pipelines, or better instance performance.
Features
- Simple web interface
- Single click deployment
- Team management features
9. JRebel
JRebel is a Java automation tool that promises to let you deploy immediately after you change your code. You can download it from the Eclipse marketplace, get a license, and be good to go quickly. Note that it is Java only, but works with a comprehensive selection of Java frameworks and tools.
JRebel is quote based, with a ten-day free trial. Research suggests that $500 per year is typical.
Features
- Real time change visibility
- Integrates with over 100 Java frameworks and tools
- Works from the IDE
10. JFrog Pipelines
JFrog Pipelines is a next-gen continuous integration product that aims to manage the various tools you use in one place. It lets you orchestrate your workflows and control the elements of your toolchain. JFrog has many high profile customers, including Microsoft, Facebook and Netflix.
It takes some technical knowledge to get started with JFrog—you’ll need to be familiar with the command line and there are several steps to work through. The documentation is detailed, but not for the faint of heart.
JFrog Pipelines has a free plan, but note that storage and transfer are limited to 2 GB and 10 GB. For $98 per month, those limits double, and for $689, you get 125 GB of storage and 200 GB of transfer. With unlimited users on every plan, JFrog does offer excellent value for teams working on small projects and can quickly scale as you grow.
Features
- YAML-based workflow definitions
- A wide range of integrations with other tools
- Tool and workflow orchestration
Conclusion
There’s no shortage of choice when it comes to picking a tool to automate your project’s build. Obviously, that makes picking the right one tough.
Be sure to consider your whole process when making a choice, examine the features available for each tool, and see what would have the most impact on your team, both good and bad. Most of these tools are free, or have a free trial, so there’s nothing to stop you from testing them out to see how they fit your workflows.
If a certain aspect of your build process is taking more time than you’d like, see if there’s something in this list that can help. After all, better builds means better projects.
It’s Really not that Complicated.
You can actually understand what’s going on inside your live applications.