This document describes how the Chromium Commit Queue (CQ) is structured and managed. This is specific for the Chromium CQ. Questions about other CQs should be directed to email@example.com.
The Chromium CQ exists to test developer changes before they land into chromium/src. It runs all the test suites which a given CL affects, and ensures that they all pass.
You can mark a CL with this if you are working on experimental code and do not want to risk accidentally submitting it via the CQ. The CQ will immediately stop processing the change if it contains this option.
This flag allows you to specify some additional bots to run for this CL, in addition to the default bots. The format for the list of trybots is “bucket:trybot1,trybot2;bucket2:trybot3”.
If you want to skip the presubmit check, you can add this line, and the commit queue won‘t run the presubmit for your change. This should only be used when there’s a bug in the PRESUBMIT scripts. Please check that there‘s a bug filed against the bad script, and if there isn’t, file one.
Add this line if you want to skip the tree status checks. This means the CQ will commit a CL even if the tree is closed. Obviously this is strongly discouraged, since the tree is usually closed for a reason. However, in rare cases this is acceptable, primarily to fix build breakages (i.e., your CL will help in reopening the tree).
This should only be used for reverts to green the tree, since it skips try bots and might therefore break the tree. You shouldn't use this otherwise.
See policy of when it's acceptable to use TBR (“To be reviewed”). If a change has a TBR line with a valid reviewer, the CQ will skip checks for LGTMs.
Some of these jobs are experimental. This means they are executed on a percentage of CQ builds, and the outcome of the build doesn't affect if the CL can land or not. See the schema linked at the top of the file for more information on what the fields in the config do.
Please follow these general guidelines:
bot_update) are failing, or you have reason to believe the CQ itself is broken, or you can‘t really tell what’s wrong, please file a trooper bug.
In both cases, when filing bugs, please include links to the build and/or CL (including relevant patchset information) in question.
There are several requirements for a builder to be added to the Commit Queue.
Please email firstname.lastname@example.org, who will approve new build configurations.
The CQ can sometimes be flaky. Flakiness is when a test on the CQ fails, but should have passed (commonly known as a false negative). There are a few common causes of flaky tests on the CQ:
CQ handles flakiness mainly by retrying tests. It retries at a few different levels:
Per test retries.
Most test suites have test retries built into them, which retry failed tests a few times.
Per build retries.
After a test suite fails in a build, the build will retry the test suite again, both without patch, and with the patch applied.
Per CQ run retries.
If a build fails, CQ will retry the individual trybot which failed.