Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: Add a //docs/infra/glossary.md
Chromium's infra has grown its own lexicon, and some phrases have ambiguous definitions depending on whom you ask. So this glossary is an attempt at unifying on single definitions for common phrases. Can also help nooglers spinning up on Chrome infra, or even just Chrome. Bug: None Change-Id: Ib9deaf0489b3829cee24ff2bd4f458d5141793bc Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3802848 Reviewed-by: Garrett Beaty <gbeaty@google.com> Reviewed-by: Erik Staab <estaab@chromium.org> Commit-Queue: Ben Pastene <bpastene@chromium.org> Cr-Commit-Position: refs/heads/main@{#1031562}
- Loading branch information
Showing
1 changed file
with
112 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,112 @@ | ||
# Glossary | ||
|
||
This page provides definitions of phrases and terminology used in Chromium's | ||
[continuous integration](https://en.wikipedia.org/wiki/Continuous_integration) | ||
infrastructure. | ||
|
||
|
||
## Builds | ||
|
||
* __Build__: A Buildbucket job that runs a single CI-specific task. Composed of | ||
multiple steps rendered in Milo (e.g. a step for 'fetching the source', a step | ||
for 'compile', etc.). A build is associated with a single Builder. | ||
As of writing (Q3 2022), all Buildbucket builds are themselves Swarming tasks. | ||
|
||
* __Builder__: A named configuration (or grouping) of builds in Buildbucket. All | ||
builds of a builder share the same config. For the most part, this means they | ||
run the same recipe and have largely the same set of steps. A builder may also | ||
be referred to as a __bot__, but that term is ambiguous and should be avoided | ||
since it can be confused with a __Swarming bot__. (See the [LUCI](#luci) | ||
section below.) | ||
* __Builder/Tester Split__: At the end of their builds, some builders may | ||
trigger builds on other builders. When the parent build only compiles and | ||
the child build only runs tests, we call this model a "builder/tester | ||
split". The child is referred to as the tester, and the parent (confusingly) | ||
referred to as the builder. | ||
* __CI Builder__ or __Post-submit Builder__: A builder that compiles/tests a | ||
branch of Chromium. Often triggered when changes to the branch are | ||
submitted, these post-submit builders run on a continuous basis. | ||
* __FYI Builder__: A CI builder with reduced priority and impact. Ideally | ||
used only for experiments or for temporary build/test configs. May also be | ||
referred to as an "informational" builder. | ||
* __Trybot__ or __Trybuilder__ or __Pre-submit Builder__: A builder that | ||
compiles/tests a pending CL before submission. | ||
* __Tryjob__: A single build of a trybot. | ||
|
||
* __Chromium's CQ__: The set of trybots required for any Chromium CL to pass | ||
before submission. These are mandatory for nearly every CL. | ||
* __CQ Builder__: One of the mandatory trybots. See | ||
[here](../../infra/config/generated/cq-builders.md#required-builders) for | ||
the full list. | ||
* __Optional Trybot__: A trybot that's not a default CQ builder. These can | ||
be triggered manually by a developer. Or they can be required by the CQ | ||
if the CL includes changes to a specific file path. See | ||
[here](../../infra/config/generated/cq-builders.md#optional-builders) for a | ||
list of the optional trybots and the filepaths that require them. Trybots | ||
that fall into that latter category can also be referred to as | ||
__path-based trybots__. | ||
|
||
* __Builder Group__: A logical grouping of builders. For example, the | ||
"chromium.linux" builder group is a set of builders that test basic | ||
functionality of Chromium on Linux. | ||
|
||
* __Waterfall__: A largely historical term that often refers to a particular | ||
grouping of Builders or Builder Groups. Examples include: | ||
* __The Perf Waterfall__: Builders in the | ||
[chrome.perf](https://ci.chromium.org/p/chrome/g/chrome.perf) builder group. | ||
* __The Main Waterfall__: Another historical term. Often refers to the set of | ||
builders whose failures close the | ||
[Chromium tree](https://chromium-status.appspot.com/). Spans multiple | ||
builder groups. | ||
|
||
## LUCI | ||
|
||
LUCI is a collection of continuous integration services running on Google Cloud. | ||
These services largely make-up the backbone of Chromium's CI. | ||
|
||
* __Buildbucket__: A LUCI service that tracks builds, and queues them into | ||
Builders. | ||
|
||
* __Change Verifier__ or __CV__: A LUCI service that triggers and manages the | ||
builds a CL must pass before the CL is submitted into the repository's trunk. | ||
These builds are known as "pre-submit", and the full set of required builds | ||
that CV enforces for a repo are that repo's "CQ". (See above for a description | ||
of Chromium's particular CQ.) | ||
|
||
* __CIPD__: A LUCI service for hosting and distributing packages. Packages | ||
stored in CIPD are arbitrary sets of files. Practically, these are often SDKs, | ||
toolchains, and other various binaries not suitable for being checked-into a | ||
Git repo directly. | ||
|
||
* __Milo__: A LUCI service that renders Builds in a web-browser UI. Hosted on | ||
https://ci.chromium.org. Alliases also include https://build.chromium.org and | ||
https://luci-milo.appspot.com. | ||
|
||
* __Recipe__: A LUCI technology that defines what steps a build runs. Written in | ||
a domain-specific language embedded in Python. Nearly all builds run a recipe. | ||
(The alternative to recipes being a binary that implements the luciexe | ||
protocol. As of Q3 2022, non-recipe luciexe binaries have limited use in | ||
Chromium's infra.) | ||
|
||
* __Swarming__: A LUCI service that runs arbitrary tasks across a fleet of | ||
workers knows as Swarming bots. | ||
* __Swarming bot__: A single worker that communicates with the Swarming server | ||
and executes Swarming tasks. The worker often, but not necessarily, runs on | ||
a Linux, Mac, or Win VM. A bot belongs to one or more Swarming pools. | ||
* __Swarming pool__: A collection of Swarming bots. A pool acts as a security | ||
boundary, enforcing who can view and trigger tasks on its bots. | ||
* __Swarming task__: A single workload request. A task defines a command to | ||
run, and is associated to a single Swarming pool. | ||
|
||
## Misc | ||
|
||
* __CAS__: Content Addresses Storage, a service for storing binary blobs. Used | ||
on Chromium's infra to store and transfer test inputs from the builder that | ||
compiles the tests to the Swarming bots that run them. May also be referred | ||
to by its predecessor's name: "isolate". | ||
* __Gerrit__: The code-review tool for changes to Google-hosted Git | ||
repositoris. See chromium/src.git's Gerrit instance | ||
[here](https://chromium-review.googlesource.com/). | ||
* __Gitiles__: The web-browser UI for Google-hosted Git repositories. See | ||
chromium/src.git on gitiles | ||
[here](https://chromium.googlesource.com/chromium/src/+/HEAD). |