github.com/lmars/docker@v1.6.0-rc2/project/TOOLS.md (about)

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