Build automation is a vital tool for devops, sysadmins, and developers. It is nothing but scripting or automating the process of compiling source code into binary. Sysadmins can use build tools to manage and update config files. Following is a list of awesome open source and popular tools associated with automating build processes on Linux or Unix-like system.

Build automation tools.

1: GNU make and co – One of the most popular automation build tool

GNU make command used to maintain, compile and build programs on Linux and Unix-like system. It is one of the most popular automation build tool for and uses a TEXT file format:

  1. Managing config files
  2. Updating config files
  3. Compile and build simple to complex programs or libraries

By default the TEXT file is named Makefile. Make has many clones and rewrites. Here are some of the popular options:

  • BSD make – Popular on FreeBSD/NetBSD/OpenBSD and clones.
  • make – A classic Unix build tool.
  • SunPro make – A Solaris Unix build tool.
  • GNU Make – The standard implementation of make for Linux and OS X and *BSD.

If you ever run a command like “./configure && make && make install“, you used one of the make tools to build software on your platform.Usually above tools are installed as part of operating system.

A simple GNU Makefile

Type: Build automation
Written in: C
Platform: Linux, MacOS X, *BSD and Unix-like
License: GPL v3
Download: (GNU Make)

2: Apache Ant – Popular for Java platform development

Another very popular automation build tool, similar to make, written in Java and uses an XML file format. Naturally, it is entirely suited to building Java-based software. By default the XML file is called build.xml.

A sample build.xml

Type: Build automation
Written in: Java
Platform: Java SE
License: Apache License 2.0

3: Gradle – Yet another open source tool

Gradel is a free and open source build automation system. It extends upon the Apache Ant and Maven. It used DSL (“domain-specific language”) instead of the XML format used by Maven/Ant. Another addition is DAG (“directed acyclic graph”) to find the correct order in which tasks can be build and run.

Type: Build Tool
Written in: Java, Groovy
Platform: Cross-platform
License: Apache License 2.0

4: Apache Maven – Yet another build automation tool for Java

Apache Maven is a free and open source build automation system. It does dependency management and builds and mostly used for Java projects. However, you are not limited to Java based projects; you can use any other programming language such as Ruby, Python, C#, Scala and other computer programming languages.

A sample Maven pom.xml file

Type: Build tool
Written in: Java
Platform: Cross-platform
License: Apache License 2.0

5: Grunt – Build too for front-end web development

Grunt is very popular among Javascript front end developers as a JavaScript task runner. It is a free and open-source project. It uses a Gruntfile for unit testing, minification of code, compilation and much more.

A sample Gruntfile written in JavaScript

Type: Task Runner, Build tool
Written in: Node.js
Platform: Linux, Windows, OS X
License: MIT License [

6: Gulp.js – Yet another build tool for front-end web development

gulp.js is a free and open-source JavaScript toolkit and mostly as a build system in front-end web development. Here is a sample gulpfile.js:

var gulp = require('gulp');
var pug = require('gulp-pug');
var less = require('gulp-less');
var minifyCSS = require('gulp-csso');
gulp.task('html', function(){
  return gulp.src('client/templates/*.pug')
gulp.task('css', function(){
  return gulp.src('client/templates/*.less')
gulp.task('default', [ 'html', 'css' ]);

What is gulp?

  1. Automation – gulp is a toolkit that helps you automate painful or time-consuming tasks in your development workflow.
  2. Platform-agnostic – Integrations are built into all major IDEs and people are using gulp with PHP, .NET, Node.js, Java, and other platforms.
  3. Strong Ecosystem – Use npm modules to do anything you want + over 2000 curated plugins for streaming file transformations
  4. Simple – By providing only a minimal API surface, gulp is easy to learn and simple to use
Type: Toolkit for automating tasks
Written in: Node.js
Platform: Cross-platform
License: MIT License

7: Rake – A make-like build utility for Ruby

Rake is a free and open-source build automation software. It is a Make-like tool but created in Ruby. You can specify all build tasks and deps in Ruby syntax. It uses the TEXT file called Rakefiles to build your software. Rake is part of the Ruby version 1.9+.

An example of a simple Rake script to build a C Hello World program.

Type: Task management and build automation tool
Written in: Ruby
Platform: Cross-platform
License: MIT License

🐧 Get the latest tutorials on Linux, Open Source & DevOps via RSS feed or Weekly email newsletter.

🐧 8 comments so far... add one

CategoryList of Unix and Linux commands
Disk space analyzersncdu pydf
File Managementcat
FirewallAlpine Awall CentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Network UtilitiesNetHogs dig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg jobs killall kill pidof pstree pwdx time
Searchinggrep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNAlpine CentOS 8 Debian 10 Firewall Ubuntu 20.04
8 comments… add one
  • sedlav Feb 23, 2017 @ 13:11

    phing ( for php projects

  • Patrick Feb 23, 2017 @ 13:36

    I think you made a typo on “TXET file”

    • 🐧 Vivek Gite Feb 23, 2017 @ 16:33

      Thanks for the heads up!

      • MirceaC Feb 24, 2017 @ 8:11

        Another small (and funny;) one:
        Yea another build… -> Yet another build…

  • Liju Feb 25, 2017 @ 5:01

    What about Ansible ?

  • xisop Apr 3, 2017 @ 0:47

    another one alternative is Formake
    It is in development still. The goal is portability, no dependencies except standard shell, simplicity

  • DevOps tools best practices Apr 7, 2017 @ 11:06

    Thank you for your article it looks good and providing some valuable information about the DevOps tools

Leave a Reply

Your email address will not be published.

Use HTML <pre>...</pre> for code samples. Still have questions? Post it on our forum