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.
Probably not. Check out integrity for a full fledged automated CI server, which is what most people need.