Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 172 lines (106 sloc) 4.727 kb
28e583af »
2009-08-05 first commit
1 CI Joe
2 ======
3
c0602b01 »
2009-08-06 markdown, not textile
4 Joe is a [Continuous
5 Integration](http://en.wikipedia.org/wiki/Continuous_integration)
56ec46cf »
2009-08-06 on
6 server that'll run your tests on demand and report their pass/fail status.
38e7a235 »
2009-08-06 brief overview
7
28e583af »
2009-08-05 first commit
8 Because knowing is half the battle.
9
e86477f8 »
2010-09-30 Link to The Battle t-shirt
10 [![The Battle](http://img.skitch.com/20090805-g4a2qhttwij8n2jr9t552efn3k.png)](http://nerduo.com/thebattle/)
11
16dcce33 »
2010-09-30 More linkage
12 ([Buy the shirt](http://nerduo.com/thebattle/))
5e27cbab »
2009-10-14 whitespace
13
24ba8d4e »
2009-08-05 readme
14 Quickstart
15 ----------
f9883767 »
2009-10-03 add gem install to readme
16
e9d2795c »
2010-03-31 Link to Passenger blog post
17 RubyGems:
5e27cbab »
2009-10-14 whitespace
18
f9883767 »
2009-10-03 add gem install to readme
19 $ gem install cijoe
24ba8d4e »
2009-08-05 readme
20 $ git clone git://github.com/you/yourrepo.git
21 $ cijoe yourrepo
22
e9d2795c »
2010-03-31 Link to Passenger blog post
23 Boom. Navigate to <http://localhost:4567> to see Joe in action.
68c2a66b »
2009-08-06 the boom
24 Check `cijoe -h` for other options.
25
5e27cbab »
2009-10-14 whitespace
26 Basically you need to run `cijoe` and hand it the path to a git
ac83f526 »
2009-08-06 readme tweak
27 repo. Make sure this isn't a shared repo: Joe needs to own it.
24ba8d4e »
2009-08-05 readme
28
08276837 »
2009-08-06 explain how to configure the runner
29 Joe looks for various git config settings in the repo you hand it. For
30 instance, you can tell Joe what command to run by setting
31 `cijoe.runner`:
32
33 $ git config --add cijoe.runner "rake -s test:units"
5e27cbab »
2009-10-14 whitespace
34
08276837 »
2009-08-06 explain how to configure the runner
35 Joe doesn't care about Ruby, Python, or whatever. As long as the
36 runner returns a non-zero exit status on fail and a zero on success,
37 everyone is happy.
38
24ba8d4e »
2009-08-05 readme
39 Need to do some massaging of your repo before the tests run, like
40 maybe swapping in a new database.yml? No problem - Joe will try to
5e27cbab »
2009-10-14 whitespace
41 run `.git/hooks/after-reset` if it exists before each build phase.
fddd093a »
2009-08-06 Add build-failed / build-worked hooks
42 Do it in there. Just make sure it's executable.
43
44 Want to notify IRC or email on test pass or failure? Joe will run
45 `.git/hooks/build-failed` or `.git/hooks/build-worked` if they exist
46 and are executable on build pass / fail. They're just shell scripts -
47 put whatever you want in there.
48
49 Tip: your repo's `HEAD` will point to the commit used to run the
a6d26b58 »
2009-08-06 too many bad boys
50 build. Pull any metadata you want out of that scro.
24ba8d4e »
2009-08-05 readme
51
52
d21e389a »
2009-08-28 Add cijoe.branch info to README
53 Other Branches
e9d2795c »
2010-03-31 Link to Passenger blog post
54 ----------------------
d21e389a »
2009-08-28 Add cijoe.branch info to README
55
56 Want joe to run against a branch other than `master`? No problem:
57
58 $ git config --add cijoe.branch deploy
59
60
78d6004e »
2010-04-07 Add build queueing
61 Concurrent Push's - a kind of "queueing"
62 ----------------------------------------
63
64 Joe runs just one build at the time. If you expect concurrent push's
65 to your repo and want joe to build each in a kind of queue, just set:
66
67 $ git config --add cijoe.buildallfile tmp/cijoe.txt
68
69 Joe will save requests while another build runs. If more than one push
70 hits joe, he just picks the last after finishing the prior.
71
72
24ba8d4e »
2009-08-05 readme
73 Campfire
e9d2795c »
2010-03-31 Link to Passenger blog post
74 -------------
24ba8d4e »
2009-08-05 readme
75
fddd093a »
2009-08-06 Add build-failed / build-worked hooks
76 Campfire notification is included, because it's what we use. Want Joe
77 notify your Campfire? Put this in your repo's `.git/config`:
24ba8d4e »
2009-08-05 readme
78
79 [campfire]
80 user = your@campfire.email
81 pass = passw0rd
82 subdomain = whatever
83 room = Awesomeness
03b58ade »
2009-09-18 Fix campfire config formatting
84 ssl = false
24ba8d4e »
2009-08-05 readme
85
86 Or do it the old fashion way:
87
88 $ cd yourrepo
89 $ git config --add campfire.user chris@ozmm.org
1f3e1c47 »
2009-09-12 typo in readme (thanks npverni!) fixes #5
90 $ git config --add campfire.subdomain github
897313b0 »
2009-08-06 add http basic auth support
91 etc.
24ba8d4e »
2009-08-05 readme
92
93
5d14c7ea »
2010-01-19 Add a /ping resource and a few CIJoe::Server tests.
94 Checkin' Status
e9d2795c »
2010-03-31 Link to Passenger blog post
95 ----------------------
5d14c7ea »
2010-01-19 Add a /ping resource and a few CIJoe::Server tests.
96
97 Want to see how your build's doing without any of this fancy UI crap?
98 Ping Joe for the lowdown:
99
100 curl http://localhost:4567/ping
101
102 Joe will return `200 OK` if all is quiet on the Western Front. If
103 Joe's busy building or your last build failed, you'll get `412
104 PRECONDITION FAILED`.
105
e9d2795c »
2010-03-31 Link to Passenger blog post
106
24ba8d4e »
2009-08-05 readme
107 Multiple Projects
e9d2795c »
2010-03-31 Link to Passenger blog post
108 ------------------------
24ba8d4e »
2009-08-05 readme
109
5e27cbab »
2009-10-14 whitespace
110 Want CI for multiple projects? Just start multiple instances of Joe!
897313b0 »
2009-08-06 add http basic auth support
111 He can run on any port - try `cijoe -h` for more options.
112
e9d2795c »
2010-03-31 Link to Passenger blog post
113 If you're using Passenger, see [this blog post](http://chrismdp.github.com/2010/03/multiple-ci-joes-with-rack-and-passenger/).
114
897313b0 »
2009-08-06 add http basic auth support
115
116 HTTP Auth
e9d2795c »
2010-03-31 Link to Passenger blog post
117 ----------------
897313b0 »
2009-08-06 add http basic auth support
118
119 Worried about people triggering your builds? Setup HTTP auth:
24ba8d4e »
2009-08-05 readme
120
897313b0 »
2009-08-06 add http basic auth support
121 $ git config --add cijoe.user chris
122 $ git config --add cijoe.pass secret
24ba8d4e »
2009-08-05 readme
123
55873d40 »
2009-08-05 the battle
124
af2fa9c4 »
2009-08-06 flesh out GitHub integration
125 GitHub Integration
e9d2795c »
2010-03-31 Link to Passenger blog post
126 --------------------------
af2fa9c4 »
2009-08-06 flesh out GitHub integration
127
128 Any POST to Joe will trigger a build. If you are hiding Joe behind
129 HTTP auth, that's okay - GitHub knows how to authenticate properly.
130
131 ![Post-Receive URL](http://img.skitch.com/20090806-d2bxrk733gqu8m11tf4kyir5d8.png)
5e27cbab »
2009-10-14 whitespace
132
af2fa9c4 »
2009-08-06 flesh out GitHub integration
133 You can find the Post-Receive option under the 'Service Hooks' subtab
134 of your project's "Admin" tab.
135
136
9ad653a3 »
2009-08-06 nohup
137 Daemonize
e9d2795c »
2010-03-31 Link to Passenger blog post
138 ----------------
9ad653a3 »
2009-08-06 nohup
139
140 Want to run Joe as a daemon? Use `nohup`:
141
142 $ nohup cijoe -p 4444 repo &
143
144
17dd3097 »
2009-08-06 other ci servers
145 Other CI Servers
e9d2795c »
2010-03-31 Link to Passenger blog post
146 ------------------------
17dd3097 »
2009-08-06 other ci servers
147
148 Need more features? More notifiers? Check out one of these bad boys:
149
150 * [Cerberus](http://cerberus.rubyforge.org/)
151 * [Integrity](http://integrityapp.com/)
152 * [CruiseControl.rb](http://cruisecontrolrb.thoughtworks.com/)
153 * [BuildBot](http://buildbot.net/trac)
e8ac68e7 »
2010-04-02 Added Signal to the bad boys :)
154 * [Signal](http://www.github.com/dcrec1/signal)
17dd3097 »
2009-08-06 other ci servers
155
219a1041 »
2009-08-06 screenshots
156
157 Screenshots
e9d2795c »
2010-03-31 Link to Passenger blog post
158 ------------------
219a1041 »
2009-08-06 screenshots
159
160 ![Building](http://img.skitch.com/20090806-ryw34ksi5ixnrdwxcptqy28iy7.png)
161
162 ![Built](http://img.skitch.com/20090806-f7j3r65yecaq13hdcxqwtc5krd.)
163
164
9859f9e3 »
2009-08-06 questions? concerns?
165 Questions? Concerns?
e9d2795c »
2010-03-31 Link to Passenger blog post
166 ---------------------------------
9859f9e3 »
2009-08-06 questions? concerns?
167
d272f7eb »
2009-08-06 too much textile
168 [Issues](http://github.com/defunkt/cijoe/issues) or [the mailing list](http://groups.google.com/group/cijoe).
9859f9e3 »
2009-08-06 questions? concerns?
169
170
f9883767 »
2009-10-03 add gem install to readme
171 ( Chris Wanstrath :: chris@ozmm.org )
Something went wrong with that request. Please try again.