build
What is a build?
In a programming context, a build is a version of a program that, as a rule, is a pre-release version and is identified by a build number rather than by a release number.
Simply put, a software build is a set of executable code that is ready for use by customers. The DevOps team compiles the source code, such as code in Java or C++, into binaries to make sure it's functional and test code quality before committing it.
Software is updated regularly until the maker decides to discontinue supporting it. This may entail a series of builds and many software releases to the public.
Iterative (repeated) builds, otherwise known as continuous integration, are an essential part of an optimal development process where application components are collected and repeatedly compiled for testing purposes to ensure a reliable final product.
Additionally, build tools enable developers to automate some programming tasks to further streamline the process.
Types of builds
There are two types of software builds to be aware of:
- A full build. This build process is performed from scratch, whereby the source code files are compiled and checked for the first time.
- An incremental build. As the name suggests, this build process stacks on the previous build. The source codes and dependencies are checked based on the changes to the build.
Build processes
The process for a build consists of a collection of operations that differs depending on the programming language and operating system used, but the underlying notion remains the same.
Here is an example of the process followed by a software development team when building software:
- Find the source code from an Open Source repository such as GitHub.
- Use a build tool like Ant, Maven or Gradle to compile the code.
- Debug the code and check for dependencies.
- Run different versions of the build and conduct unit tests.
- Link the relevant files and send notifications to the stakeholders.
See also: build tool, software development, object-oriented programming, structured programming, reactive programming, declarative programming, routine and compiler.