tree: c180cc7dad87ac98ebc0002a6a5a6d8402433448 [path history] [tgz]
  1. 3rdparty/
  2. base/
  3. buildkite/
  4. docs/
  5. gce/
  6. gcr/
  7. gerrit-github-sync/
  8. jenkins/
  9. mac/
  10. templating/
  11. .gitignore
  12. AUTHORS
  13. BUILD
  14. CONTRIBUTING.md
  15. CONTRIBUTORS
  16. dependencies.yaml
  17. LICENSE.txt
  18. README.md
  19. WORKSPACE
README.md

Bazel continous integration setup

This workspace contains the setup for the continuous integration system of Bazel. This setup is based on docker images built by bazel.

For users of Bazel continuous integration system

If you are a user of the CI system, you might be interested in the following document:

  • owner: explains how to add a job for a repository owner.
  • user: explains how to use the CI system for a Bazel contributor.

For maintainers of Bazel continuous integration system

Make sure you have a Bazel installed with a recent enough version of it. Also make sure gcloud and docker are correctly configured on your machine. Only docker version 1.10 or later is supported.

Finally, our docker rules needs authentication which is configured with the credential helper:

gcloud components install docker-credential-gcr
export DOCKER_CONFIG="$(docker-credential-gcr configure-docker | sed -E 's|/config.json .*$||')"

You might want to permanently set your DOCKER_CONFIG environment, e.g. in your ~/.bash_profile:

echo "export DOCKER_CONFIG='${DOCKER_CONFIG}'" >> ~/.bash_profile

More documentation:

  • init.sh: initializes the whole CI platform. This may delete VMs and do other irreversible changes, so handle with care.
  • vm.sh: lets you control the machines (e.g. start/stop them, create/delete/reimage them), including the Jenkins controller and the executor nodes.
  • workflow: explains the CI workflow
  • jobs: explains what jobs are running on the CI