| docker-ci |
| ========= |
| |
| docker-ci is our buildbot continuous integration server, |
| building and testing docker, hosted on EC2 and reachable at |
| http://docker-ci.dotcloud.com |
| |
| |
| Deployment |
| ========== |
| |
| # Load AWS credentials |
| export AWS_ACCESS_KEY_ID='' |
| export AWS_SECRET_ACCESS_KEY='' |
| export AWS_KEYPAIR_NAME='' |
| export AWS_SSH_PRIVKEY='' |
| |
| # Load buildbot credentials and config |
| export BUILDBOT_PWD='' |
| export IRC_PWD='' |
| export IRC_CHANNEL='docker-dev' |
| export SMTP_USER='' |
| export SMTP_PWD='' |
| export EMAIL_RCP='' |
| |
| # Load registry test credentials |
| export REGISTRY_USER='' |
| export REGISTRY_PWD='' |
| |
| cd docker/testing |
| vagrant up --provider=aws |
| |
| |
| github pull request |
| =================== |
| |
| The entire docker pull request test workflow is event driven by github. Its |
| usage is fully automatic and the results are logged in docker-ci.dotcloud.com |
| |
| Each time there is a pull request on docker's github project, github connects |
| to docker-ci using github's rest API documented in http://developer.github.com/v3/repos/hooks |
| The issued command to program github's notification PR event was: |
| curl -u GITHUB_USER:GITHUB_PASSWORD -d '{"name":"web","active":true,"events":["pull_request"],"config":{"url":"http://docker-ci.dotcloud.com:8011/change_hook/github?project=docker"}}' https://api.github.com/repos/dotcloud/docker/hooks |
| |
| buildbot (0.8.7p1) was patched using ./testing/buildbot/github.py, so it |
| can understand the PR data github sends to it. Originally PR #1603 (ee64e099e0) |
| implemented this capability. Also we added a new scheduler to exclusively filter |
| PRs. and the 'pullrequest' builder to rebase the PR on top of master and test it. |
| |
| |
| nighthly release |
| ================ |
| |
| The nightly release process is done by buildbot, running a DinD container that downloads |
| the docker repository and builds the release container. The resulting docker |
| binary is then tested, and if everything is fine, the release is done. |