1.8 KiB
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.