Build automation
Template:Short description Template:Sidebar with collapsible lists
Build automation is the practice of building software systems in a relatively unattended fashion. The build is configured to run with minimized or no software developer interaction and without using a developer's personal computer. Build automation encompasses the act of configuring the build system as well the resulting system itself.
Build automation encompasses both sequencing build operations via non-interactive interface tools and running builds on a shared server.[1]
Tools
Build automation tools allow for sequencing the tasks of building software via a non-interactive interface. Existing tools such as Make can be used via custom configuration file or using the command-line. Custom tools such as shell scripts can also be used, although they become increasingly cumbersome as the codebase grows more complex.[2]
Some tools, such as shell scripts, are task-oriented declarative programming. They encode sequences of commands to perform with usually minimal conditional logic.
Some tools, such as Make are product-oriented. They build a product, a.k.a. target, based on configured dependencies.[3]
Servers
A build server is a server setup to run builds. As opposed to a personal computer, a server allows for a more consistent and available build environment.
Traditionally, a build server was a local computer dedicated as a shared resource instead of used as a personal computer. Today, there are many cloud computing, software as a service (SaaS) websites for building.
Without a build server, developers typically rely on their personal computers for building, leading to several drawbacks, such as (but not limited to):
- Developers who know how to build might be unavailable (e.g., on vacation).
- Issues with a developer's machine could prevent building.
- Conflicting software on a developer's machine may hinder proper building.
A continuous integration server is a build server that is setup to build in a relatively frequent way
- REDIRECT Template:En dash
Template:R protected often on each code commit. A build server may also be incorporated into an ARA tool or ALM tool.
Typical build triggering options include:
- On-demand: requested by a user.
- Scheduled: such as a nightly build.
- On-commit: building on every commit to a version control system.
Continuous integration and continuous delivery
Automating the build process is a required step for implementing continuous integration and continuous delivery (CI/CD)
- REDIRECT Template:En dash
Template:R protected all of which considered best practice for software development.[4]Template:How
Advantages
Pluses of build automation include:[5]
- Can save time and money in the long run
- Enables continuous integration, delivery and testing
- More consistent build process
- Can optimize the build process; reducing time and redundant tasks
- Reduces dependency on key personnel and their personal computers
- Can automate collection of build history
See also
<templatestyles src="Div col/styles.css"/>
Script error: No such module "Check for unknown parameters".
References
<templatestyles src="Reflist/styles.css" />
Script error: No such module "Check for unknown parameters".