This page lists notable software
build automation tools
A tool is an object that can extend an individual's ability to modify features of the surrounding environment or help them accomplish a particular task. Although many animals use simple tools, only human beings, whose use of stone tools dates ...
and
systems.
Sequencing
These tools sequence build operations often based on dependencies sometimes running tasks in parallel.
* ; uses
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
format for configuration files
*
*
*
* ; written in Python
* ; written in
Clojure
Clojure (, like ''closure'') is a dynamic programming language, dynamic and functional programming, functional dialect (computing), dialect of the programming language Lisp (programming language), Lisp on the Java (software platform), Java platfo ...
*
Boost boost.build For C++ projects, cross-platform, based on
Perforce Jam
* ; written in Rust, using Starlark (BUILD file syntax) as
Bazel
* ; Python-based
*
*
D Dub Official package and build manager of the D Language
*
* ; with a
Groovy
''Groovy'' (or, less commonly, ''groovie'' or ''groovey'') is a slang colloquialism popular during the 1960s and 1970s. It is roughly synonymous with words such as "excellent", "fashionable", or "amazing", depending on context.
History
The word ...
- and
Kotlin-based
domain specific language
A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging ...
(DSL), combining features of
Apache Ant
Apache Ant is a software tool for automating software build processes for Java applications which originated from the Apache Tomcat project in early 2000 as a replacement for the Make build tool of Unix. It is similar to Make, but is implement ...
and
Apache Maven
Maven is a build automation tool used primarily for Java projects. Maven can also be used to build and manage projects written in C#, Ruby, Scala, and other languages. The Maven project is hosted by The Apache Software Foundation, where it was ...
with more features like a reliable incremental build
*
*
*
* ; for Clojure projects
* ; one of the earliest build automation tools; many variants
*
* ; from
Microsoft
Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
* ; based on Ant
*
*
Perforce Jam Build tool by
Perforce, inspired by Make
*
*
*
* ; Python-based
*
* ; Python-based
Meta build
Called ''meta-build'' tools, these generate configuration files for other build tools such as those listed above.
* ; very popular; integrated with
IDEs such as
Qt Creator
Qt Creator is a cross-platform C++, JavaScript, Python and QML integrated development environment (IDE) which simplifies GUI application development. It is part of the SDK for the Qt GUI application development framework and uses the Q ...
,
KDevelop and
GNOME Builder
*
* ; superseded by GN which generates files for
ninja
A , or was a spy and infiltrator in pre-modern Japan. The functions of a ninja included siege and infiltration, ambush, reconnaissance, espionage, deception, and later bodyguarding.Kawakami, pp. 21–22 Antecedents may have existed as ear ...
and other tools
*
*
OpenMake Software Meister
* ; integrated with
GNOME Builder
* ; written in
Lua
*
Continuous integration
Continuous integration
Continuous integration (CI) is the practice of integrating source code changes frequently and ensuring that the integrated codebase is in a workable state.
Typically, developers Merge (version control), merge changes to an Branching (revisio ...
systems automate build operations at a relatively high level via features including: scheduling and triggering builds, storing build log and output files and integrating with
version control
Version control (also known as revision control, source control, and source code management) is the software engineering practice of controlling, organizing, and tracking different versions in history of computer files; primarily source code t ...
systems.
*
*
*
Bitbucket Pipelines and Deployments Continuous integration for Bitbucket hosted repositories
[https://confluence.atlassian.com/bitbucket/build-test-and-deploy-with-pipelines-792496469.html Cross-platform]
*
*
*
Go continuous delivery Open source, cross-platform
*
GitLab
GitLab is a software forge primarily developed by GitLab Inc. It is available as a community edition and a commercial edition.
History
GitLab was created in 2011 by Ukrainian programmer Dmitriy Zaporozhets as a side project written in Rub ...
Runner Continuous integration
*
GitHub
GitHub () is a Proprietary software, proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug trackin ...
Actions Free continuous integration service for open-source projects
*
* ; Hudson
fork
*
Spinnaker
A spinnaker is a sail designed specifically for sailing off the wind on courses between a Point of sail#Reaching, reach (wind at 90° to the course) to Point of sail#Running downwind, downwind (course in the same direction as the wind). Spinna ...
Open source multi-cloud continuous delivery service from Netflix and Google
*
*
Others
*
*
Licensing
See also
*
*
*
*
Make variants Tools based on or very similar to Unix make
*
References
{{reflist
Build automation
build automation