Browse code

add tools doc

Docker-DCO-1.1-Signed-off-by: Jessie Frazelle <hugs@docker.com> (github: jfrazelle)

Jessica Frazelle authored on 2015/02/25 04:05:05
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,74 @@
0
+# Tools
1
+
2
+This page describes the tools we use and infrastructure that is in place for
3
+the Docker project.
4
+
5
+### CI
6
+
7
+The Docker project uses [Jenkins](https://jenkins.dockerproject.com/) as our
8
+continuous integration server. Each Pull Request to Docker is tested by running the 
9
+equivalent of `make all`. We chose Jenkins because we can host it ourselves and
10
+we run Docker in Docker to test.
11
+
12
+#### Leeroy
13
+
14
+Leeroy is a Go application which integrates Jenkins with 
15
+GitHub pull requests. Leeroy uses 
16
+[GitHub hooks](http://developer.github.com/v3/repos/hooks/) 
17
+to listen for pull request notifications and starts jobs on your Jenkins 
18
+server.  Using the Jenkins [notification plugin][jnp], Leeroy updates the 
19
+pull request using GitHub's 
20
+[status API](http://developer.github.com/v3/repos/statuses/)
21
+with pending, success, failure, or error statuses.
22
+
23
+The leeroy repository is maintained at
24
+[github.com/jfrazelle/leeroy](https://github.com/jfrazelle/leeroy).
25
+
26
+#### GordonTheTurtle IRC Bot
27
+
28
+The GordonTheTurtle IRC Bot lives in the
29
+[#docker-maintainers](https://botbot.me/freenode/docker-maintainers/) channel
30
+on Freenode. He is built in Go and is based off the project at
31
+[github.com/fabioxgn/go-bot](https://github.com/fabioxgn/go-bot). 
32
+
33
+His main command is `!rebuild`, which rebuilds a given Pull Request for a repository.
34
+This command works by integrating with Leroy. He has a few other commands too, such 
35
+as `!gif` or `!godoc`, but we are always looking for more fun commands to add.
36
+
37
+The gordon-bot repository is maintained at
38
+[github.com/jfrazelle/gordon-bot](https://github.com/jfrazelle/gordon-bot)
39
+
40
+### NSQ
41
+
42
+We use [NSQ](https://github.com/bitly/nsq) for various aspects of the project
43
+infrastucture.
44
+
45
+#### Hooks
46
+
47
+The hooks project,
48
+[github.com/crosbymichael/hooks](https://github.com/crosbymichael/hooks),
49
+is a small Go application that manages web hooks from github, hub.docker.com, or
50
+other third party services.
51
+
52
+It can be used for listening to github webhooks & pushing them to a queue,
53
+archiving hooks to rethinkdb for processing, and broadcasting hooks to various
54
+jobs.
55
+
56
+#### Docker Master Binaries
57
+
58
+One of the things queued from the Hooks are the building of the Master
59
+Binaries. This happens on every push to the master branch of Docker. The
60
+repository for this is maintained at
61
+[github.com/jfrazelle/docker-bb](https://github.com/jfrazelle/docker-bb).
62
+
63
+#### Docker Master Docs
64
+
65
+The master build of the docs gets queued from the Hooks as well. They are built
66
+using [github.com/jfrazelle/nsqexec](https://github.com/jfrazelle/nsqexec).
67
+
68
+#### Patch Parser Bot
69
+
70
+The bot, also named GordonTheTurtle, that labels and comments on Pull Requests
71
+listens on Hooks as well. He is capable of knowing if a Pull Request needs to
72
+be signed, or gofmt'd, as well as rebased. The repository for this is maintained at
73
+[github.com/jfrazelle/gh-patch-parser](https://github.com/jfrazelle/gh-patch-parser).