Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 113 lines (73 sloc) 3.101 kb
28e583a Chris Wanstrath first commit
defunkt authored
1 CI Joe
2 ======
3
38e7a23 Chris Wanstrath brief overview
defunkt authored
4 Joe is a "Continuous
5 Integration":http://en.wikipedia.org/wiki/Continuous_integration
6 server that'll run your tests on demand and report on their pass/fail status.
7
28e583a Chris Wanstrath first commit
defunkt authored
8 Because knowing is half the battle.
9
55873d4 Chris Wanstrath the battle
defunkt authored
10 ![The Battle](http://img.skitch.com/20090805-g4a2qhttwij8n2jr9t552efn3k.png)
24ba8d4 Chris Wanstrath readme
defunkt authored
11
12 Quickstart
13 ----------
14
15 $ rip install git://github.com/defunkt/cijoe.git
16 $ git clone git://github.com/you/yourrepo.git
17 $ cijoe yourrepo
18
19 Basically you need to run `cijoe` and hand it the path to a git
ac83f52 Chris Wanstrath readme tweak
defunkt authored
20 repo. Make sure this isn't a shared repo: Joe needs to own it.
24ba8d4 Chris Wanstrath readme
defunkt authored
21
0827683 Chris Wanstrath explain how to configure the runner
defunkt authored
22 Joe looks for various git config settings in the repo you hand it. For
23 instance, you can tell Joe what command to run by setting
24 `cijoe.runner`:
25
26 $ git config --add cijoe.runner "rake -s test:units"
27
28 Joe doesn't care about Ruby, Python, or whatever. As long as the
29 runner returns a non-zero exit status on fail and a zero on success,
30 everyone is happy.
31
24ba8d4 Chris Wanstrath readme
defunkt authored
32 Need to do some massaging of your repo before the tests run, like
33 maybe swapping in a new database.yml? No problem - Joe will try to
fddd093 Chris Wanstrath Add build-failed / build-worked hooks
defunkt authored
34 run `.git/hooks/after-reset` if it exists before each build phase.
35 Do it in there. Just make sure it's executable.
36
37 Want to notify IRC or email on test pass or failure? Joe will run
38 `.git/hooks/build-failed` or `.git/hooks/build-worked` if they exist
39 and are executable on build pass / fail. They're just shell scripts -
40 put whatever you want in there.
41
42 Tip: your repo's `HEAD` will point to the commit used to run the
a6d26b5 Chris Wanstrath too many bad boys
defunkt authored
43 build. Pull any metadata you want out of that scro.
24ba8d4 Chris Wanstrath readme
defunkt authored
44
45
46 Campfire
47 --------
48
fddd093 Chris Wanstrath Add build-failed / build-worked hooks
defunkt authored
49 Campfire notification is included, because it's what we use. Want Joe
50 notify your Campfire? Put this in your repo's `.git/config`:
24ba8d4 Chris Wanstrath readme
defunkt authored
51
52 [campfire]
53 user = your@campfire.email
54 pass = passw0rd
55 subdomain = whatever
56 room = Awesomeness
57
58 Or do it the old fashion way:
59
60 $ cd yourrepo
61 $ git config --add campfire.user chris@ozmm.org
62 $ git config --add campfire.domain github
897313b Chris Wanstrath add http basic auth support
defunkt authored
63 etc.
24ba8d4 Chris Wanstrath readme
defunkt authored
64
65
66 Multiple Projects
67 -----------------
68
897313b Chris Wanstrath add http basic auth support
defunkt authored
69 Want CI for multiple projects? Just start multiple instances of Joe!
70 He can run on any port - try `cijoe -h` for more options.
71
72
73 HTTP Auth
74 ---------
75
76 Worried about people triggering your builds? Setup HTTP auth:
24ba8d4 Chris Wanstrath readme
defunkt authored
77
897313b Chris Wanstrath add http basic auth support
defunkt authored
78 $ git config --add cijoe.user chris
79 $ git config --add cijoe.pass secret
24ba8d4 Chris Wanstrath readme
defunkt authored
80
55873d4 Chris Wanstrath the battle
defunkt authored
81
af2fa9c Chris Wanstrath flesh out GitHub integration
defunkt authored
82 GitHub Integration
83 ------------------
84
85 Any POST to Joe will trigger a build. If you are hiding Joe behind
86 HTTP auth, that's okay - GitHub knows how to authenticate properly.
87
88 ![Post-Receive URL](http://img.skitch.com/20090806-d2bxrk733gqu8m11tf4kyir5d8.png)
89
90 You can find the Post-Receive option under the 'Service Hooks' subtab
91 of your project's "Admin" tab.
92
93
9ad653a Chris Wanstrath nohup
defunkt authored
94 Daemonize
95 ---------
96
97 Want to run Joe as a daemon? Use `nohup`:
98
99 $ nohup cijoe -p 4444 repo &
100
101
17dd309 Chris Wanstrath other ci servers
defunkt authored
102 Other CI Servers
103 ----------------
104
105 Need more features? More notifiers? Check out one of these bad boys:
106
107 * [Cerberus](http://cerberus.rubyforge.org/)
108 * [Integrity](http://integrityapp.com/)
109 * [CruiseControl.rb](http://cruisecontrolrb.thoughtworks.com/)
110 * [BuildBot](http://buildbot.net/trac)
111
28e583a Chris Wanstrath first commit
defunkt authored
112 ( Chris Wanstrath :: chris@ozmm.org )
Something went wrong with that request. Please try again.