blob: fb909db55b7ebf06336c4994b257b79d0875a4b8 [file] [log] [blame] [view]
# Jobs
Three categories of jobs run on ci.bazel.io: bootstrap/maintenance,
projects, and hidden jobs.
## Bootstrap and maintenance
Five 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](https://perf.bazel.build).
* `Global/pipeline`: a job that handles the global tests as well as the release process
* `install-bazel`: a job that install Bazel release on all the slaves.
All those jobs have custom configuration files that can be found in `jenkins/jobs/*.xml.tpl`.
## Projects
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.
## Hidden jobs
* `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.