docker-ci.rst 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. docker-ci
  2. =========
  3. docker-ci is our buildbot continuous integration server,
  4. building and testing docker, hosted on EC2 and reachable at
  5. http://docker-ci.dotcloud.com
  6. Deployment
  7. ==========
  8. # Load AWS credentials
  9. export AWS_ACCESS_KEY_ID=''
  10. export AWS_SECRET_ACCESS_KEY=''
  11. export AWS_KEYPAIR_NAME=''
  12. export AWS_SSH_PRIVKEY=''
  13. # Load buildbot credentials and config
  14. export BUILDBOT_PWD=''
  15. export IRC_PWD=''
  16. export IRC_CHANNEL='docker-dev'
  17. export SMTP_USER=''
  18. export SMTP_PWD=''
  19. export EMAIL_RCP=''
  20. # Load registry test credentials
  21. export REGISTRY_USER=''
  22. export REGISTRY_PWD=''
  23. cd docker/testing
  24. vagrant up --provider=aws
  25. github pull request
  26. ===================
  27. The entire docker pull request test workflow is event driven by github. Its
  28. usage is fully automatic and the results are logged in docker-ci.dotcloud.com
  29. Each time there is a pull request on docker's github project, github connects
  30. to docker-ci using github's rest API documented in http://developer.github.com/v3/repos/hooks
  31. The issued command to program github's notification PR event was:
  32. 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
  33. buildbot (0.8.7p1) was patched using ./testing/buildbot/github.py, so it
  34. can understand the PR data github sends to it. Originally PR #1603 (ee64e099e0)
  35. implemented this capability. Also we added a new scheduler to exclusively filter
  36. PRs. and the 'pullrequest' builder to rebase the PR on top of master and test it.
  37. nighthly release
  38. ================
  39. The nightly release process is done by buildbot, running a DinD container that downloads
  40. the docker repository and builds the release container. The resulting docker
  41. binary is then tested, and if everything is fine, the release is done.