Bob the Builder
Given a Buildable object with a determined API (described in it's documentation), Bob will, when called like:
Bob.build(buildable, commit_id) # or Bob.build(buildable, [commit_id, commit_id, ...])
or from your buildable (if you are using the Bob::Buildable mixin provided) as:
buildable.build(commit_id) # or buildable.build([commit_id, commit_id, ...])
- Checkout the buildable on the specified commit
- Call Buildable#start_building
- Run the script provided in Buildable#build_script in the buildable.
- When the build process finishes, it will call Buildable#finish_building with the commit_id, the build status (true if the script returns a status code of 0, false otherwise), and a string with the build output (both STDOUT and STDERR).
If you pass an array of commits, the steps 1-4 will be repeated for each commit provided, in order.
Do I need this?
Probably not. Check out integrity for a full fledged automated CI server, which is what most people need.