Three categories of jobs run on ci.bazel.io: bootstrap/maintenance, projects, and hidden jobs.
Several jobs control the bootstrap and maintenance of Bazel, they are mostly under the maintenance
and bazel
folders:
benchmark
: job running continously to produce benchmarks of Bazel published at perf.bazel.build.maintenance/install-bazel
: job that install Bazel release on all the slaves.maintenance/gerrit-verifier
: job to detect pending reviews on Gerrit that need validation (that have been marked as Presubmit-Ready
).bazel/nightly
: job that handles the global tests, it runs every night.bazel/release
: copy of bazel/nightly
that runs for the release, it also handle publishing the release artifacts.bazel/presubmit
: copy of bazel/nightly
that is triggered when someone set Presubmit-Ready+2
on Gerrit.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.
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.