sr / bob forked from integrity/bob
- Source
- Commits
- Network (2)
- Downloads (2)
- Wiki (1)
- Graphs
-
Tag:
v0.1
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Sun Apr 12 11:56:53 -0700 2009 | |
| |
LICENSE | Sun Apr 12 12:24:44 -0700 2009 | |
| |
README.rdoc | ||
| |
Rakefile | ||
| |
bob-the-builder.gemspec | ||
| |
lib/ | ||
| |
test/ |
Bob the Builder
Given a Buildable object with the following public API:
- buildable.kind
Should return a Symbol with whatever kind of repository the buildable’s code is in (:git, :svn, etc).
- buildable.uri
Returns a string like "git://github.com/integrity/bob.git", pointing to the code repository.
- buildable.branch
What branch of the repository should we build?
- buildable.build_script
Returns a string containing the build script to be run when "building".
- buildable.start_building(commit_id)
`commit_id` is a String that contains whatever is appropriate for the repo type, so it would be a SHA1 hash for git repos, or a numeric id for svn, etc. This is a callback so the buildable can determine how long it takes to build. It doesn’t need to return anything.
- buildable.finish_building(commit_id, build_status, build_output)
Callback for when the build finishes. It doesn’t need to return anything. It will receive a string with the commit identifier, a boolean for the build exit status (true for successful builds, false fore failed ones) and a string with the build output (both STDOUT and STDERR).
A successful build is one where the build script returns a zero status code.
Bob will, when called like:
Bob.build(buildable, commit_id)
- Checkout the buildable on the specified commit
- Call buildable.start_building
- Run the script provided in build_script in the buildable.
- When the build process finishes, it will call 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).
Do I need this?
Probably not. Check out integrity for a full fledged automated CI server, which is what most people need.
Credits
| Authors: | Nicolas Sanguinetti (foca) and Simon Rozet (sr) |
| License: | MIT (Check LICENSE for details) |

