Three categories of jobs run on ci.bazel.io: bootstrap/maintenance, projects, and hidden jobs.
Four jobs control the bootstrap and maintenance of Bazel:
Github-Trigger
: A job that is automatically triggered (by a GitHub webhook) every time someone or something pushes commits to the GitHub master branch, to a GitHub release branch, or to a GitHub release tag. This job then triggers the Global/pipeline
job.Bazel-Benchmark
and Bazel-Push-Benchmark-Output
: jobs running continously to produce benchmarks of Bazel published at perf.bazel.build.Global/pipeline
: a job that handles the global tests as well as the release processAll those jobs have custom configuration files that can be found in jenkins/jobs/*.xml.tpl
.
All the other jobs are defined by the bazel_github_job
template that simply run Bazel on a github repository. The templates are in jenkins/*.tpl
and the definitions in jenkins/jobs/BUILD
and jenkins/jobs/jobs.bzl
.
The JOBS
definition in jenkins/jobs/jobs.bzl
is the list of jobs actually running on ci.bazel.io. On the staging, to make the full build faster, we use the STAGING_JOBS
definition, which is a strip down version of the JOBS
definition.
CR/gerrit-verifier
is a job to detect pending reviews on Gerrit that need validation (that have been marked as Presubmit-Ready
).PR/_project_
is a copy of the job for project that validates a GitHub pull request on project with the latest release of Bazel.CR/_project_
is the same as PR-_project_
but for validating Gerrit review request.Global/_project_
is another copy of the job but for use by the global presubmit test.