Bazel uses Buildkite for continuous integration. The user interface and the orchestration of CI builds is fully managed by Buildkite, but Bazel brings its own CI machines. The buildkite folder contains all the scripts and configuration files necessary to setup Bazel's CI on Buildkite.
Buildkite currently does not support public viewing of build and test results (it‘s actively being worked on) and for now requires one to be logged in. In the meantime, we have set up a separate mechanism to view build and test results of pull requests and so as a contributor to Bazel you typically don’t need access to Buildkite. However, if you are a maintainer of a repository under the @bazelbuild organisation or a Bazel team member with sheriffing duties you probably do need access. Please ping either @buchgr, @philwo or @fweikert if you don't have access to Bazel on Buildkite but think you should have.
When you first log into Buildkite you are presented with a list of pipelines. A pipeline consists of steps that are executed either in sequence or in parallel and that all need to succeed in order for the pipeline to succeed. The Bazel organisation has dozens of pipelines. Here are a selected few:
HEAD
every four hours.Bazel accepts contributions via pull requests. Contributions by members of the bazelbuild organisation as well as members of individual repositories (i.e. rule maintainers) are whitelisted automatically and will immediately be build and tested on Buildkite.
An external contribution, however, first needs to be verified by a project member and therefore will display a pending status named Verify Pull Request.
A member can verify the pull request by clicking on Details, followed by Verify Pull Request
Please vet external contributions carefully as they can execute arbitrary code on our CI machines
After a pull request has been built and tested, the results will be displayed as a status message on the pull request. A detailed view is available when clicking on the corresponding Details link. Click here for an example.