Monday, November 9, 2009

Build Automation

Build automation is the act of scripting or automating a wide variety of tasks that software developers 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


* On-Demand automation such as a user running a script at 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


* Improve product quality
* Accelerate the compile and link processing
* Eliminate redundant tasks
* Minimize "bad builds"
* Eliminate dependencies on key personnel
* Have history of builds and releases in order to investigate issues
* Save time and money - because of the reasons listed above.[6]

Requirements of a build system

Basic requirements:

1. Frequent or overnight builds to catch problems early.
2. Support for Source Code Dependency Management
3. Incremental build processing
4. Reporting that traces source to binary matching
5. Build acceleration
6. Extraction and reporting on build compile and link usage

Optional requirements:

1. Generate release notes and other documentation such as help pages
2. Build status reporting
3. Test pass or fail reporting
4. Summary of the features added/modified/deleted with each new build

1 comment:

  1. i'm currently putting together a combination of maven2 / hudson / subversion / git to tie in to RAD and integrate all the way out to the application servers. the tools are out there, you just need to put them together.