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

[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:

  1. Frequent or overnight builds to catch problems early [2] [3] [4].

Optional requirements:[5]

  1. Generate release notes and or other documentation such as HTML help pages.
  2. Build status reporting
  3. Test pass or fail reporting
  4. 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

[edit] External links