Build automation is the act of scripting or automating a wide variety of tasks that a software developer will do in their day-to-day activities including things like:
- compiling computer source code into binary code
- packaging binary code
- running tests
- deployment to production systems
- creating documentation and or release notes
This automated build is in contrast to a manual build process where a person has to perform multiple, often tedious and error prone tasks. The goal of this automation is to create a one-step process for turning source code into a working system. This is done to save time and to reduce errors.
Contents |
[edit] Advantages of build automation
- Improve product quality
- Reduce boring jobs
- Eliminate dependencies on key people
- Have history of builds and releases in order to investigate issues
- Save time and money - Because of the reasons listed above. [1]
[edit] Types of automation
- Commanded automation such as a user running a script on the command line
- Scheduled automation such as a continuous integration server running a nightly build
- Triggered automation such as a continuous integration server running a build on every commit to a version control system.
[edit] Makefile
One specific form of build automation is the automatic generation of Makefiles. This is accomplished by tools like
[edit] Requirements of a build system
Basic requirements:
Optional requirements:[5]
- Generate release notes and or other documentation such as HTML help pages.
- Build status reporting
- Test pass or fail reporting
- Summary of the features added/modified/deleted with each new build
[edit] Build automation software
[edit] References
- Mike Clark: Pragmatic Project Automation, The Pragmatic Programmers ISBN:0-9745140-3-9
[edit] See also
- BuildBot
- Continuous integration
- Product Family Engineering
- Release engineering
- Scripting language
- Unit testing