- Build automation
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 computersource code into binary code
* packaging binary code
* running tests
* deployment to production systems
* creating documentation and or release notesThis 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.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. [ http://www.denverjug.org/meetings/files/200410_automation.pdf ]Types of automation
* Commanded automation such as a user running a script on the
command line
* Scheduled automation such as acontinuous integration server running anightly build
* Triggered automation such as acontinuous integration server running a build on every commit to aversion control system.Makefile
One specific form of build automation is the automatic generation of
Makefile s. This is accomplished by tools like
*GNU Automake
*CMake
*imake
*qmake
*Apache Ant Requirements of a build system
Basic requirements:
# Frequent or overnight builds to catch problems early [ http://freshmeat.net/articles/view/392/ ] [ http://www.ibm.com/developerworks/java/library/j-junitmail/ ] [ http://buildbot.net/trac ] .Optional requirements: [ http://www.cmcrossroads.com/content/view/12525/120/ ]
# 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 buildBuild automation software
References
*
Mike Clark : "Pragmatic Project Automation", The Pragmatic Programmers ISBN:0-9745140-3-9ee also
*
BuildBot
*Continuous integration
*Release engineering
*Unit testing External links
* [http://horizonguy.wordpress.com/2008/06/30/best-practice-checklist-for-build-automation/ Best practices in build automation]
* [http://www.viewtier.com/support/articles/build_server_capacity_planning.htm Capacity Planning]
Wikimedia Foundation. 2010.