Chromium OS‎ > ‎Chromium OS Build‎ > ‎

Per-repo configuration of CQ and pre-CQ

Bypassing tests on a per-project basis

Some repositories (e.g. firmware repositories) contain code that is very unlikely to break hardware tests. When these tests fail, CLs in these repositories would normally be rejected unfairly. To prevent this unfair treatment, it is now possible to configure what tests should be bypassed in a COMMIT-QUEUE.ini file.

COMMIT-QUEUE.ini files should be created in the root directory of your repository. Here is an example COMMIT-QUEUE.ini file for the coreboot repository, which lives in src/third_party/coreboot/COMMIT-QUEUE.ini:

# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Per-project Commit Queue settings.
# Documentation: http://goo.gl/5J7oND

[GENERAL]

# Stages to ignore in the commit queue. If these steps break, your CL will be
# submitted anyway. Use with caution.
ignored-stages: HWTest VMTest

In the case where the HWTest or VMTest steps fail, cbuildbot will ignore the failure and submit the CLs anyway.

What stages can be ignored?

Currently, the following stages can be ignored:

  • UnitTest: Run unit tests for all packages.
  • VMTest: Run the ChromeOS smoke suite in a virtual machine
  • HWTest: Run the ChromeOS BVT in a virtual machine
  • UploadPrebuilts: Upload prebuilt binaries for all changes.
  • Archive: Miscellaneous steps for building and archiving artifacts, including building factory images, firmware tarballs, and recovery images.

Specifying the configs that the pre-CQ should use

Some repositories (e.g. board specific overlays) contain code that only affects a particular board or small set of boards. These repos can use be tested in the pre-cq using a targeted set of configs, rather than the general pre-cq-group. This behavior is configured with COMMIT-QUEUE.ini as below.


# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Per-project Commit Queue settings.
# Documentation: http://goo.gl/5J7oND

[GENERAL]

# Board-specific pre-cq
pre-cq-configs: lumpy-pre-cq stumpy-pre-cq

In this case, the pre-cq would test changes to this repo by launching lumpy-pre-cq and stumpy-pre-cq tryjobs in parallel. Note, configs that are specified in this list must have their config attribute pre_cq = True in order to work. Once this config option is specified, it will take effect in the pre-cq after the pre-cq-launcher is restarted.


Comments