2015-02-24 19:05:05 +00:00
|
|
|
# Tools
|
|
|
|
|
|
|
|
This page describes the tools we use and infrastructure that is in place for
|
|
|
|
the Docker project.
|
|
|
|
|
|
|
|
### CI
|
|
|
|
|
2015-06-03 19:08:40 +00:00
|
|
|
The Docker project uses [Jenkins](https://jenkins.dockerproject.org/) as our
|
2015-02-24 19:05:05 +00:00
|
|
|
continuous integration server. Each Pull Request to Docker is tested by running the
|
|
|
|
equivalent of `make all`. We chose Jenkins because we can host it ourselves and
|
|
|
|
we run Docker in Docker to test.
|
|
|
|
|
|
|
|
#### Leeroy
|
|
|
|
|
|
|
|
Leeroy is a Go application which integrates Jenkins with
|
|
|
|
GitHub pull requests. Leeroy uses
|
2015-04-11 17:58:09 +00:00
|
|
|
[GitHub hooks](https://developer.github.com/v3/repos/hooks/)
|
2015-02-24 19:05:05 +00:00
|
|
|
to listen for pull request notifications and starts jobs on your Jenkins
|
2016-01-27 15:33:20 +00:00
|
|
|
server. Using the Jenkins
|
2016-11-21 08:19:32 +00:00
|
|
|
[notification plugin](https://wiki.jenkins-ci.org/display/JENKINS/Notification+Plugin),
|
2016-01-27 15:33:20 +00:00
|
|
|
Leeroy updates the pull request using GitHub's
|
2015-04-11 17:58:09 +00:00
|
|
|
[status API](https://developer.github.com/v3/repos/statuses/)
|
2015-02-24 19:05:05 +00:00
|
|
|
with pending, success, failure, or error statuses.
|
|
|
|
|
|
|
|
The leeroy repository is maintained at
|
2015-07-22 19:57:13 +00:00
|
|
|
[github.com/docker/leeroy](https://github.com/docker/leeroy).
|
2015-02-24 19:05:05 +00:00
|
|
|
|
|
|
|
#### GordonTheTurtle IRC Bot
|
|
|
|
|
|
|
|
The GordonTheTurtle IRC Bot lives in the
|
|
|
|
[#docker-maintainers](https://botbot.me/freenode/docker-maintainers/) channel
|
|
|
|
on Freenode. He is built in Go and is based off the project at
|
|
|
|
[github.com/fabioxgn/go-bot](https://github.com/fabioxgn/go-bot).
|
|
|
|
|
|
|
|
His main command is `!rebuild`, which rebuilds a given Pull Request for a repository.
|
|
|
|
This command works by integrating with Leroy. He has a few other commands too, such
|
|
|
|
as `!gif` or `!godoc`, but we are always looking for more fun commands to add.
|
|
|
|
|
|
|
|
The gordon-bot repository is maintained at
|
2016-01-26 18:15:47 +00:00
|
|
|
[github.com/docker/gordon-bot](https://github.com/docker/gordon-bot)
|
2015-02-24 19:05:05 +00:00
|
|
|
|
|
|
|
### NSQ
|
|
|
|
|
|
|
|
We use [NSQ](https://github.com/bitly/nsq) for various aspects of the project
|
2016-02-11 23:21:52 +00:00
|
|
|
infrastructure.
|
2015-02-24 19:05:05 +00:00
|
|
|
|
|
|
|
#### Hooks
|
|
|
|
|
|
|
|
The hooks project,
|
|
|
|
[github.com/crosbymichael/hooks](https://github.com/crosbymichael/hooks),
|
|
|
|
is a small Go application that manages web hooks from github, hub.docker.com, or
|
|
|
|
other third party services.
|
|
|
|
|
|
|
|
It can be used for listening to github webhooks & pushing them to a queue,
|
|
|
|
archiving hooks to rethinkdb for processing, and broadcasting hooks to various
|
|
|
|
jobs.
|
|
|
|
|
|
|
|
#### Docker Master Binaries
|
|
|
|
|
|
|
|
One of the things queued from the Hooks are the building of the Master
|
|
|
|
Binaries. This happens on every push to the master branch of Docker. The
|
|
|
|
repository for this is maintained at
|
2016-01-26 18:15:47 +00:00
|
|
|
[github.com/docker/docker-bb](https://github.com/docker/docker-bb).
|