This page provides definitions of phrases and terminology used in Chromium's continuous integration infrastructure.
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 section below.)
Chromium's CQ: The set of trybots required for any Chromium CL to pass before submission. These are mandatory for nearly every CL.
Mega CQ
buttons in Gerrit. See CQ docs for more info.Builderless: A Swarming dimension (see below for definition of a dimension) that simply indicates the Swarming bot doesn‘t exclusively run builds for a dedicated set of builders. Instead, it belongs to a generic pool of bots (colloquially known as the “builderless pool”) that’s shared across a large group of builders. Any builder that runs builds in said pool is also referred to as being “builderless.”
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:
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. Named after the Pokemon Milotic.
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.
os:Mac-13
.) A task can then include certain dimensions in its request, and only bots that match all requested dimensions will execute the task.