CARVIEW |
defunkt / cijoe
- Source
- Commits
- Network (39)
- Issues (2)
- Graphs
-
Branch:
master
click here to add a description
click here to add a homepage
Pledgie Donations
Once activated, we'll place the following badge in your repository's detail box:
CI Joe is a simple Continuous Integration server. — Read more
name | age | message | |
---|---|---|---|
![]() |
.gitignore | Sun Nov 08 05:54:01 -0800 2009 | pgk,tmp and textmate projects should be ignored [phuesler] |
![]() |
LICENSE | Wed Aug 05 20:05:34 -0700 2009 | mit [defunkt] |
![]() |
README.markdown | Wed Jan 20 18:18:45 -0800 2010 | Add a /ping resource and a few CIJoe::Server te... [jbarnette] |
![]() |
Rakefile | Wed Jan 20 18:18:45 -0800 2010 | Add a /ping resource and a few CIJoe::Server te... [jbarnette] |
![]() |
bin/ | Wed Aug 05 19:18:00 -0700 2009 | not convinced -e does anything [defunkt] |
![]() |
deps.rip | Sun Nov 08 12:10:38 -0800 2009 | - Runner uses IO.popen instead of open4. I coul... [phuesler] |
![]() |
examples/ | Wed Nov 11 10:34:21 -0800 2009 | example rackup config file: cijoe.ru [rtomayko] |
![]() |
lib/ | Fri Feb 12 10:21:59 -0800 2010 | Add duration to Build, show on finished builds [dies-el] |
![]() |
test/ | Wed Jan 20 18:18:45 -0800 2010 | Add a /ping resource and a few CIJoe::Server te... [jbarnette] |
CI Joe
Joe is a Continuous Integration server that'll run your tests on demand and report their pass/fail status.
Because knowing is half the battle.
Quickstart
Rip:
$ rip install git://github.com/defunkt/cijoe.git
$ git clone git://github.com/you/yourrepo.git
$ cijoe yourrepo
Gemcutter:
$ gem install cijoe
$ git clone git://github.com/you/yourrepo.git
$ cijoe yourrepo
Boom. Navigate to https://localhost:4567 to see Joe in action.
Check cijoe -h
for other options.
Basically you need to run cijoe
and hand it the path to a git
repo. Make sure this isn't a shared repo: Joe needs to own it.
Joe looks for various git config settings in the repo you hand it. For
instance, you can tell Joe what command to run by setting
cijoe.runner
:
$ git config --add cijoe.runner "rake -s test:units"
Joe doesn't care about Ruby, Python, or whatever. As long as the runner returns a non-zero exit status on fail and a zero on success, everyone is happy.
Need to do some massaging of your repo before the tests run, like
maybe swapping in a new database.yml? No problem - Joe will try to
run .git/hooks/after-reset
if it exists before each build phase.
Do it in there. Just make sure it's executable.
Want to notify IRC or email on test pass or failure? Joe will run
.git/hooks/build-failed
or .git/hooks/build-worked
if they exist
and are executable on build pass / fail. They're just shell scripts -
put whatever you want in there.
Tip: your repo's HEAD
will point to the commit used to run the
build. Pull any metadata you want out of that scro.
Other Branches
Want joe to run against a branch other than master
? No problem:
$ git config --add cijoe.branch deploy
Campfire
Campfire notification is included, because it's what we use. Want Joe
notify your Campfire? Put this in your repo's .git/config
:
[campfire]
user = your@campfire.email
pass = passw0rd
subdomain = whatever
room = Awesomeness
ssl = false
Or do it the old fashion way:
$ cd yourrepo
$ git config --add campfire.user chris@ozmm.org
$ git config --add campfire.subdomain github
etc.
Checkin' Status
Want to see how your build's doing without any of this fancy UI crap? Ping Joe for the lowdown:
curl https://localhost:4567/ping
Joe will return 200 OK
if all is quiet on the Western Front. If
Joe's busy building or your last build failed, you'll get 412
PRECONDITION FAILED
.
Multiple Projects
Want CI for multiple projects? Just start multiple instances of Joe!
He can run on any port - try cijoe -h
for more options.
HTTP Auth
Worried about people triggering your builds? Setup HTTP auth:
$ git config --add cijoe.user chris
$ git config --add cijoe.pass secret
GitHub Integration
Any POST to Joe will trigger a build. If you are hiding Joe behind HTTP auth, that's okay - GitHub knows how to authenticate properly.
You can find the Post-Receive option under the 'Service Hooks' subtab of your project's "Admin" tab.
Daemonize
Want to run Joe as a daemon? Use nohup
:
$ nohup cijoe -p 4444 repo &
Other CI Servers
Need more features? More notifiers? Check out one of these bad boys:
Screenshots
Questions? Concerns?
( Chris Wanstrath :: chris@ozmm.org )