docs/infra/naming_chromium_builders.md
[TOC]
Name builders as:
target ("-" build_descriptor)* "-" build_type ("-" purpose_descriptor)*
Examples: win64-rel, win64-msvc-rel , linux-chromeos-rel,
ios-blink-rel-fyi
Chromium's continuous integration infrastructure is organized around builders. Builders provide a specification for what code to check out, what targets to build, compile arguments to use, and which tests to run. This document provides a naming convention for builders to improve consistency and clarity.
This document only applies to the chromium/chrome projects and their respective branch projects (including perf, memory, etc.); this does not include other projects like Skia, ChromeOS, V8, etc. or the infra projects.
- to separate parts of a name.[a-z][a-z0-9_] subset that
is a legal identifier in C, Java, C++, Go and Python). We should use the dash
character to separate identifiers.target ("-" build_descriptor)* "-" build_type ("-" purpose_descriptor)*
This can be broken down as:
chrome/linux-chromium-rel - Here we specify
chromium build, however, if the bucket were chromium, we would just call
the builder linux-rel.rel, dbg, official.
fyi, rel-ready).
{target} + {build_descriptor} +
{build_type}fyi (for your information) thus
denoting the builder is probably not a gardened builder that is used to
provide data.linux-rel: From a quick glance we can see that descriptors cft and
no-external-ip are same builders as linux-rel but one builds and tests use
Chrome for Testing and another controls the ability for linux-rel builders to
show an external ip address.
linux-rel: Linux builder with a release build type. The omitted descriptor
indicates no special configuration.linux-rel-cft: A linux-rel builder with the cft (Chrome for testing)
purpose descriptor.linux-rel-no-external-ip: A linux-rel builder that runs in an environment
with no external IP address. Here we can see that no-external-ip changes
the nature of the builder but does not fall under build_type, target, or
build_descriptor thus it falls under purpose_descriptor.linux-chromeos: This grouping is easy to understand. We start off with a
Linux builder that runs tests for Chrome on ChromeOs. Note, this differs from
real CrOS builds. Information on why it's different here.
The use of easy to understand descriptors (code-coverage, annotator,
archive) tells us information that help us distinguish linux-chromeos builders
at a quick glance.
linux-chromeos-rel: A builder for the linux-chromeos target with a
release build.linux-chromeos-dbg: A builder for the linux-chromeos target with a debug
build.linux-chromeos-annotator-rel: A linux-chromeos release builder with the
annotator descriptor.linux-chromeos-archive-rel: A linux-chromeos release builder that
additionally archives the build.linux-chromeos-code-coverage: A linux-chromeos builder for code coverage.win-rel: Notice strong base name win-rel. It is easy to have a regex find
all builders related to win-rel with descriptors being concise and clear.
win-rel: Windows builder with a release build.win-msvc-rel: A win-rel builder that uses the Microsoft Visual C
compiler.win-msvc-dbg: A Windows builder that uses the Microsoft Visual C compiler
and has a debug build type.Testers are builders that are triggered by another builder. The tester will run tests that were built by the triggering builder.
builder_name ("-" descriptor)* "-tests"
Examples:
android-cronet-arm-rel-kitkat-testsandroid-cronet-arm-rel-lollipop-testsmac-arm64-rel-testsIf there are multiple testers triggered by a single builder, their names must
be distinct, so all but one will require descriptors. In such a case, it is
recommended that each tester include at least one descriptor unless it is 2
builders and they are differentiated with a boolean descriptor (e.g. noncq).