xref: /aosp_15_r20/external/autotest/utils/frozen_chromite/lib/constants.py (revision 9c5db1993ded3edbeafc8092d69fe5de2ee02df7)
1*9c5db199SXin Li# -*- coding: utf-8 -*-
2*9c5db199SXin Li# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
3*9c5db199SXin Li# Use of this source code is governed by a BSD-style license that can be
4*9c5db199SXin Li# found in the LICENSE file.
5*9c5db199SXin Li
6*9c5db199SXin Li"""This module contains constants used by cbuildbot and related code."""
7*9c5db199SXin Li
8*9c5db199SXin Lifrom __future__ import print_function
9*9c5db199SXin Li
10*9c5db199SXin Liimport itertools
11*9c5db199SXin Liimport os
12*9c5db199SXin Li
13*9c5db199SXin Lidef _FindSourceRoot():
14*9c5db199SXin Li    """Try and find the root check out of the chromiumos tree"""
15*9c5db199SXin Li    source_root = path = os.path.realpath(
16*9c5db199SXin Li            os.path.join(os.path.abspath(__file__), '..', '..', '..'))
17*9c5db199SXin Li    while True:
18*9c5db199SXin Li        if os.path.isdir(os.path.join(path, '.repo')):
19*9c5db199SXin Li            return path
20*9c5db199SXin Li        elif path == '/':
21*9c5db199SXin Li            break
22*9c5db199SXin Li        path = os.path.dirname(path)
23*9c5db199SXin Li    return source_root
24*9c5db199SXin Li
25*9c5db199SXin Li
26*9c5db199SXin LiSOURCE_ROOT = _FindSourceRoot()
27*9c5db199SXin LiCHROOT_SOURCE_ROOT = '/mnt/host/source'
28*9c5db199SXin LiCHROOT_CACHE_ROOT = '/var/cache/chromeos-cache'
29*9c5db199SXin LiDEPOT_TOOLS_SUBPATH = 'src/chromium/depot_tools'
30*9c5db199SXin Li
31*9c5db199SXin LiCROSUTILS_DIR = os.path.join(SOURCE_ROOT, 'src/scripts')
32*9c5db199SXin LiCHROMITE_DIR = os.path.realpath(os.path.join(
33*9c5db199SXin Li    os.path.abspath(__file__), '..', '..'))
34*9c5db199SXin LiBOOTSTRAP_DIR = os.path.join(CHROMITE_DIR, 'bootstrap')
35*9c5db199SXin LiDEPOT_TOOLS_DIR = os.path.join(SOURCE_ROOT, DEPOT_TOOLS_SUBPATH)
36*9c5db199SXin LiCHROMITE_BIN_SUBDIR = 'chromite/bin'
37*9c5db199SXin LiCHROMITE_BIN_DIR = os.path.join(CHROMITE_DIR, 'bin')
38*9c5db199SXin LiCHROMITE_SCRIPTS_DIR = os.path.join(CHROMITE_DIR, 'scripts')
39*9c5db199SXin LiPATH_TO_CBUILDBOT = os.path.join(CHROMITE_BIN_SUBDIR, 'cbuildbot')
40*9c5db199SXin LiDEFAULT_CHROOT_DIR = 'chroot'
41*9c5db199SXin LiDEFAULT_CHROOT_PATH = os.path.join(SOURCE_ROOT, DEFAULT_CHROOT_DIR)
42*9c5db199SXin LiTERMINA_TOOLS_DIR = os.path.join(
43*9c5db199SXin Li    SOURCE_ROOT, 'src/platform/container-guest-tools/termina')
44*9c5db199SXin Li
45*9c5db199SXin LiSTATEFUL_DIR = '/mnt/stateful_partition'
46*9c5db199SXin Li
47*9c5db199SXin Li# These constants are defined and used in the die_hook that logs failed
48*9c5db199SXin Li# packages: 'cros_log_failed_packages' in profiles/base/profile.bashrc in
49*9c5db199SXin Li# chromiumos-overlay. The status file is generated in CROS_METRICS_DIR, and
50*9c5db199SXin Li# only if that environment variable is defined.
51*9c5db199SXin LiCROS_METRICS_DIR_ENVVAR = 'CROS_METRICS_DIR'
52*9c5db199SXin LiDIE_HOOK_STATUS_FILE_NAME = 'FAILED_PACKAGES'
53*9c5db199SXin Li
54*9c5db199SXin LiCHROMEOS_CONFIG_FILE = os.path.join(CHROMITE_DIR, 'config', 'config_dump.json')
55*9c5db199SXin LiWATERFALL_CONFIG_FILE = os.path.join(
56*9c5db199SXin Li    CHROMITE_DIR, 'config', 'waterfall_layout_dump.txt')
57*9c5db199SXin LiLUCI_SCHEDULER_CONFIG_FILE = os.path.join(
58*9c5db199SXin Li    CHROMITE_DIR, 'config', 'luci-scheduler.cfg')
59*9c5db199SXin Li
60*9c5db199SXin LiGE_BUILD_CONFIG_FILE = os.path.join(
61*9c5db199SXin Li    CHROMITE_DIR, 'config', 'ge_build_config.json')
62*9c5db199SXin Li
63*9c5db199SXin Li# The following define the location for storing toolchain packages and
64*9c5db199SXin Li# SDK overlay tarballs created during SDK builder runs. The paths are relative
65*9c5db199SXin Li# to the build root's chroot, which guarantees that they are reachable from it
66*9c5db199SXin Li# and get cleaned up when it is removed.
67*9c5db199SXin LiSDK_TOOLCHAINS_OUTPUT = 'tmp/toolchain-pkgs'
68*9c5db199SXin LiSDK_OVERLAYS_OUTPUT = 'tmp/sdk-overlays'
69*9c5db199SXin Li
70*9c5db199SXin LiAUTOTEST_BUILD_PATH = 'usr/local/build/autotest'
71*9c5db199SXin LiUNITTEST_PKG_PATH = 'test-packages'
72*9c5db199SXin Li
73*9c5db199SXin Li# Only used for testing pinned images on test images.
74*9c5db199SXin LiGUEST_IMAGES_PINS_PATH = 'usr/local/opt/google/containers/pins'
75*9c5db199SXin LiPIN_KEY_FILENAME = 'filename'
76*9c5db199SXin LiPIN_KEY_GSURI = 'gsuri'
77*9c5db199SXin Li
78*9c5db199SXin Li# Path to the lsb-release file on the device.
79*9c5db199SXin LiLSB_RELEASE_PATH = '/etc/lsb-release'
80*9c5db199SXin Li
81*9c5db199SXin LiHOME_DIRECTORY = os.path.expanduser('~')
82*9c5db199SXin Li
83*9c5db199SXin Li# If cbuiltbot is running on a bot, then the cidb access credentials will be
84*9c5db199SXin Li# available here. This directory will not exist otherwise.
85*9c5db199SXin LiCIDB_PROD_BOT_CREDS = os.path.join(HOME_DIRECTORY, '.cidb_creds',
86*9c5db199SXin Li                                   'prod_cidb_bot')
87*9c5db199SXin LiCIDB_DEBUG_BOT_CREDS = os.path.join(HOME_DIRECTORY, '.cidb_creds',
88*9c5db199SXin Li                                    'debug_cidb_bot')
89*9c5db199SXin Li
90*9c5db199SXin Li# Crash Server upload API key.
91*9c5db199SXin LiCRASH_API_KEY = os.path.join('/', 'creds', 'api_keys',
92*9c5db199SXin Li                             'api_key-chromeos-crash-uploader')
93*9c5db199SXin Li
94*9c5db199SXin Li# Buildbucket build status
95*9c5db199SXin LiBUILDBUCKET_BUILDER_STATUS_SCHEDULED = 'SCHEDULED'
96*9c5db199SXin LiBUILDBUCKET_BUILDER_STATUS_STARTED = 'STARTED'
97*9c5db199SXin LiBUILDBUCKET_BUILDER_STATUS_COMPLETED = 'COMPLETED'
98*9c5db199SXin Li
99*9c5db199SXin LiBUILDBUCKET_BUILDER_STATUSES = (BUILDBUCKET_BUILDER_STATUS_SCHEDULED,
100*9c5db199SXin Li                                BUILDBUCKET_BUILDER_STATUS_STARTED,
101*9c5db199SXin Li                                BUILDBUCKET_BUILDER_STATUS_COMPLETED)
102*9c5db199SXin Li
103*9c5db199SXin LiBUILDBUCKET_BUILDER_RESULT_SUCCESS = 'SUCCESS'
104*9c5db199SXin LiBUILDBUCKET_BUILDER_RESULT_FAILURE = 'FAILURE'
105*9c5db199SXin LiBUILDBUCKET_BUILDER_RESULT_CANCELED = 'CANCELED'
106*9c5db199SXin Li
107*9c5db199SXin Li# Builder status strings
108*9c5db199SXin LiBUILDER_STATUS_FAILED = 'fail'
109*9c5db199SXin LiBUILDER_STATUS_PASSED = 'pass'
110*9c5db199SXin LiBUILDER_STATUS_INFLIGHT = 'inflight'
111*9c5db199SXin LiBUILDER_STATUS_MISSING = 'missing'
112*9c5db199SXin LiBUILDER_STATUS_ABORTED = 'aborted'
113*9c5db199SXin Li# The following statuses are currently only used for build stages.
114*9c5db199SXin LiBUILDER_STATUS_PLANNED = 'planned'
115*9c5db199SXin LiBUILDER_STATUS_WAITING = 'waiting'
116*9c5db199SXin LiBUILDER_STATUS_SKIPPED = 'skipped'
117*9c5db199SXin LiBUILDER_STATUS_FORGIVEN = 'forgiven'
118*9c5db199SXin LiBUILDER_COMPLETED_STATUSES = (BUILDER_STATUS_PASSED,
119*9c5db199SXin Li                              BUILDER_STATUS_FAILED,
120*9c5db199SXin Li                              BUILDER_STATUS_ABORTED,
121*9c5db199SXin Li                              BUILDER_STATUS_SKIPPED,
122*9c5db199SXin Li                              BUILDER_STATUS_FORGIVEN)
123*9c5db199SXin LiBUILDER_ALL_STATUSES = (BUILDER_STATUS_FAILED,
124*9c5db199SXin Li                        BUILDER_STATUS_PASSED,
125*9c5db199SXin Li                        BUILDER_STATUS_INFLIGHT,
126*9c5db199SXin Li                        BUILDER_STATUS_MISSING,
127*9c5db199SXin Li                        BUILDER_STATUS_ABORTED,
128*9c5db199SXin Li                        BUILDER_STATUS_WAITING,
129*9c5db199SXin Li                        BUILDER_STATUS_PLANNED,
130*9c5db199SXin Li                        BUILDER_STATUS_SKIPPED,
131*9c5db199SXin Li                        BUILDER_STATUS_FORGIVEN)
132*9c5db199SXin LiBUILDER_NON_FAILURE_STATUSES = (BUILDER_STATUS_PLANNED,
133*9c5db199SXin Li                                BUILDER_STATUS_PASSED,
134*9c5db199SXin Li                                BUILDER_STATUS_SKIPPED,
135*9c5db199SXin Li                                # Quick fix for Buildbucket race problems.
136*9c5db199SXin Li                                BUILDER_STATUS_INFLIGHT,
137*9c5db199SXin Li                                BUILDER_STATUS_FORGIVEN)
138*9c5db199SXin Li
139*9c5db199SXin Li# Partition labels
140*9c5db199SXin LiCROS_PART_STATEFUL = 'STATE'
141*9c5db199SXin Li
142*9c5db199SXin Li# Signer status strings
143*9c5db199SXin LiSIGNER_STATUS_PASSED = 'passed'
144*9c5db199SXin LiSIGNER_STATUS_FAILED = 'failed'
145*9c5db199SXin Li
146*9c5db199SXin Li# Change sources
147*9c5db199SXin LiCHANGE_SOURCE_INTERNAL = 'internal'
148*9c5db199SXin LiCHANGE_SOURCE_EXTERNAL = 'external'
149*9c5db199SXin Li
150*9c5db199SXin Li# Exception categories, as recorded in cidb
151*9c5db199SXin LiEXCEPTION_CATEGORY_UNKNOWN = 'unknown'
152*9c5db199SXin LiEXCEPTION_CATEGORY_BUILD = 'build'
153*9c5db199SXin LiEXCEPTION_CATEGORY_TEST = 'test'
154*9c5db199SXin LiEXCEPTION_CATEGORY_INFRA = 'infra'
155*9c5db199SXin LiEXCEPTION_CATEGORY_LAB = 'lab'
156*9c5db199SXin Li
157*9c5db199SXin LiEXCEPTION_CATEGORY_ALL_CATEGORIES = (
158*9c5db199SXin Li    EXCEPTION_CATEGORY_UNKNOWN,
159*9c5db199SXin Li    EXCEPTION_CATEGORY_BUILD,
160*9c5db199SXin Li    EXCEPTION_CATEGORY_TEST,
161*9c5db199SXin Li    EXCEPTION_CATEGORY_INFRA,
162*9c5db199SXin Li    EXCEPTION_CATEGORY_LAB,
163*9c5db199SXin Li)
164*9c5db199SXin Li
165*9c5db199SXin Li# Monarch metric names
166*9c5db199SXin LiMON_LAST_SLAVE = 'chromeos/cbuildbot/last_completed_slave'
167*9c5db199SXin LiMON_BUILD_COMP_COUNT = 'chromeos/cbuildbot/build/completed_count'
168*9c5db199SXin LiMON_BUILD_DURATION = 'chromeos/cbuildbot/build/durations'
169*9c5db199SXin LiMON_STAGE_COMP_COUNT = 'chromeos/cbuildbot/stage/completed_count'
170*9c5db199SXin LiMON_STAGE_DURATION = 'chromeos/cbuildbot/stage/durations'
171*9c5db199SXin LiMON_STAGE_INSTANCE_DURATION = 'chromeos/cbuildbot/stage/instance_durations'
172*9c5db199SXin LiMON_STAGE_FAILURE_COUNT = 'chromeos/cbuildbot/stage/failure_count'
173*9c5db199SXin LiMON_FAILED_STAGE = 'chromeos/chromite/cbuildbot_launch/failed_stage'
174*9c5db199SXin LiMON_CHROOT_USED = 'chromeos/cbuildbot/chroot_at_version'
175*9c5db199SXin LiMON_REPO_SYNC_COUNT = 'chromeos/cbuildbot/repo/sync_count'
176*9c5db199SXin LiMON_REPO_SYNC_RETRY_COUNT = 'chromeos/cbuildbot/repo/sync_retry_count'
177*9c5db199SXin LiMON_REPO_SELFUPDATE_FAILURE_COUNT = ('chromeos/cbuildbot/repo/'
178*9c5db199SXin Li                                     'selfupdate_failure_count')
179*9c5db199SXin LiMON_REPO_INIT_RETRY_COUNT = 'chromeos/cbuildbot/repo/init_retry_count'
180*9c5db199SXin LiMON_REPO_MANIFEST_FAILURE_COUNT = ('chromeos/cbuildbot/repo/'
181*9c5db199SXin Li                                   'manifest_failure_count')
182*9c5db199SXin LiMON_BB_RETRY_BUILD_COUNT = ('chromeos/cbuildbot/buildbucket/'
183*9c5db199SXin Li                            'retry_build_count')
184*9c5db199SXin LiMON_BB_CANCEL_BATCH_BUILDS_COUNT = ('chromeos/cbuildbot/buildbucket/'
185*9c5db199SXin Li                                    'cancel_batch_builds_count')
186*9c5db199SXin LiMON_EXPORT_TO_GCLOUD = 'chromeos/cbuildbot/export_to_gcloud'
187*9c5db199SXin Li
188*9c5db199SXin Li# Stage Categorization for failed stages metric.
189*9c5db199SXin LiUNCATEGORIZED_STAGE = 'Uncategorized'
190*9c5db199SXin LiCI_INFRA_STAGE = 'CI-Infra'
191*9c5db199SXin LiTEST_INFRA_STAGE = 'Test-Infra'
192*9c5db199SXin LiPRODUCT_OS_STAGE = 'Product-OS'
193*9c5db199SXin LiPRODUCT_ANDROID_STAGE = 'Product-Android'
194*9c5db199SXin LiPRODUCT_CHROME_STAGE = 'Product-Chrome'
195*9c5db199SXin LiPRODUCT_TOOLCHAIN_STAGE = 'Product-Toolchain'
196*9c5db199SXin Li
197*9c5db199SXin Li
198*9c5db199SXin Li# Re-execution API constants.
199*9c5db199SXin Li# Used by --resume and --bootstrap to decipher which options they
200*9c5db199SXin Li# can pass to the target cbuildbot (since it may not have that
201*9c5db199SXin Li# option).
202*9c5db199SXin Li# Format is Major.Minor.  Minor is used for tracking new options added
203*9c5db199SXin Li# that aren't critical to the older version if it's not ran.
204*9c5db199SXin Li# Major is used for tracking heavy API breakage- for example, no longer
205*9c5db199SXin Li# supporting the --resume option.
206*9c5db199SXin LiREEXEC_API_MAJOR = 0
207*9c5db199SXin LiREEXEC_API_MINOR = 12
208*9c5db199SXin LiREEXEC_API_VERSION = '%i.%i' % (REEXEC_API_MAJOR, REEXEC_API_MINOR)
209*9c5db199SXin Li
210*9c5db199SXin Li# Support --master-build-id
211*9c5db199SXin LiREEXEC_API_MASTER_BUILD_ID = 3
212*9c5db199SXin Li# Support --git-cache-dir
213*9c5db199SXin LiREEXEC_API_GIT_CACHE_DIR = 4
214*9c5db199SXin Li# Support --goma_dir and --goma_client_json
215*9c5db199SXin LiREEXEC_API_GOMA = 5
216*9c5db199SXin Li# Support --ts-mon-task-num
217*9c5db199SXin LiREEXEC_API_TSMON_TASK_NUM = 6
218*9c5db199SXin Li# Support --sanity-check-build
219*9c5db199SXin LiREEXEC_API_SANITY_CHECK_BUILD = 7
220*9c5db199SXin Li# Support --previous-build-state
221*9c5db199SXin LiREEXEC_API_PREVIOUS_BUILD_STATE = 8
222*9c5db199SXin Li# Support --workspace
223*9c5db199SXin LiREEXEC_API_WORKSPACE = 9
224*9c5db199SXin Li# Support --master-buildbucket-id
225*9c5db199SXin LiREEXEC_API_MASTER_BUILDBUCKET_ID = 10
226*9c5db199SXin Li# Support --chromeos_goma_dir
227*9c5db199SXin LiREEXEC_API_CHROMEOS_GOMA_DIR = 11
228*9c5db199SXin Li# Support --chrome-preload-dir
229*9c5db199SXin LiREEXEC_API_CHROME_PRELOAD_DIR = 12
230*9c5db199SXin Li
231*9c5db199SXin Li# We rely on the (waterfall, builder name, build number) to uniquely identify
232*9c5db199SXin Li# a build. However, future migrations or state wipes of the buildbot master may
233*9c5db199SXin Li# cause it to reset its build number counter. When that happens, this value
234*9c5db199SXin Li# should be incremented, ensuring that (waterfall, builder name, build number,
235*9c5db199SXin Li# buildbot generation) is a unique identifier of builds.
236*9c5db199SXin LiBUILDBOT_GENERATION = 1
237*9c5db199SXin Li
238*9c5db199SXin LiISOLATESERVER = 'https://isolateserver.appspot.com'
239*9c5db199SXin Li
240*9c5db199SXin LiGOOGLE_EMAIL = '@google.com'
241*9c5db199SXin LiCHROMIUM_EMAIL = '@chromium.org'
242*9c5db199SXin Li
243*9c5db199SXin LiCORP_DOMAIN = 'corp.google.com'
244*9c5db199SXin LiGOLO_DOMAIN = 'golo.chromium.org'
245*9c5db199SXin LiCHROME_DOMAIN = 'chrome.' + CORP_DOMAIN
246*9c5db199SXin LiCHROMEOS_BOT_INTERNAL = 'chromeos-bot.internal'
247*9c5db199SXin Li
248*9c5db199SXin LiGOB_HOST = '%s.googlesource.com'
249*9c5db199SXin Li
250*9c5db199SXin LiEXTERNAL_GOB_INSTANCE = 'chromium'
251*9c5db199SXin LiEXTERNAL_GERRIT_INSTANCE = 'chromium-review'
252*9c5db199SXin LiEXTERNAL_GOB_HOST = GOB_HOST % EXTERNAL_GOB_INSTANCE
253*9c5db199SXin LiEXTERNAL_GERRIT_HOST = GOB_HOST % EXTERNAL_GERRIT_INSTANCE
254*9c5db199SXin LiEXTERNAL_GOB_URL = 'https://%s' % EXTERNAL_GOB_HOST
255*9c5db199SXin LiEXTERNAL_GERRIT_URL = 'https://%s' % EXTERNAL_GERRIT_HOST
256*9c5db199SXin Li
257*9c5db199SXin LiINTERNAL_GOB_INSTANCE = 'chrome-internal'
258*9c5db199SXin LiINTERNAL_GERRIT_INSTANCE = 'chrome-internal-review'
259*9c5db199SXin LiINTERNAL_GOB_HOST = GOB_HOST % INTERNAL_GOB_INSTANCE
260*9c5db199SXin LiINTERNAL_GERRIT_HOST = GOB_HOST % INTERNAL_GERRIT_INSTANCE
261*9c5db199SXin LiINTERNAL_GOB_URL = 'https://%s' % INTERNAL_GOB_HOST
262*9c5db199SXin LiINTERNAL_GERRIT_URL = 'https://%s' % INTERNAL_GERRIT_HOST
263*9c5db199SXin Li
264*9c5db199SXin Li# Tests without 'cheets_CTS_', 'cheets_GTS.' prefix will not considered
265*9c5db199SXin Li# as CTS/GTS test in chromite.lib.cts_helper
266*9c5db199SXin LiDEFAULT_CTS_TEST_XML_MAP = {
267*9c5db199SXin Li    'cheets_CTS_': 'test_result.xml',
268*9c5db199SXin Li    'cheets_GTS.': 'test_result.xml',
269*9c5db199SXin Li    'cheets_GTS_': 'test_result.xml',
270*9c5db199SXin Li}
271*9c5db199SXin Li# Google Storage bucket URI to store results in.
272*9c5db199SXin LiDEFAULT_CTS_RESULTS_GSURI = 'gs://chromeos-cts-results/'
273*9c5db199SXin LiDEFAULT_CTS_APFE_GSURI = 'gs://chromeos-cts-apfe/'
274*9c5db199SXin Li
275*9c5db199SXin LiANDROID_CONTAINER_PACKAGE_KEYWORD = 'android-container'
276*9c5db199SXin LiANDROID_VM_PACKAGE_KEYWORD = 'android-vm'
277*9c5db199SXin Li
278*9c5db199SXin LiANDROID_BUCKET_URL = 'gs://android-build-chromeos/builds'
279*9c5db199SXin LiANDROID_PI_BUILD_BRANCH = 'git_pi-arc'
280*9c5db199SXin LiANDROID_VMRVC_BUILD_BRANCH = 'git_rvc-arc-dev'
281*9c5db199SXin LiANDROID_VMMST_BUILD_BRANCH = 'git_master-arc-dev'
282*9c5db199SXin Li
283*9c5db199SXin LiANDROID_PI_BUILD_TARGETS = {
284*9c5db199SXin Li    # Roll XkbToKcmConverter with system image. It's a host executable and
285*9c5db199SXin Li    # doesn't depend on the target as long as it's pi-arc branch. The converter
286*9c5db199SXin Li    # is ARC specific and not a part of Android SDK. Having a custom target like
287*9c5db199SXin Li    # SDK_TOOLS might be better in the long term, but let's use one from ARM or
288*9c5db199SXin Li    # X86 target as there's no other similar executables right now.
289*9c5db199SXin Li    # We put it in two buckets because we have separate ACLs for arm and x86.
290*9c5db199SXin Li    # http://b/128405786
291*9c5db199SXin Li    'APPS': ('linux-apps', 'org.chromium.arc.cachebuilder.jar'),
292*9c5db199SXin Li    'ARM': ('linux-cheets_arm-user', r'(\.zip|/XkbToKcmConverter)$'),
293*9c5db199SXin Li    'ARM64': ('linux-cheets_arm64-user', r'(\.zip|/XkbToKcmConverter)$'),
294*9c5db199SXin Li    'X86': ('linux-cheets_x86-user', r'(\.zip|/XkbToKcmConverter)$'),
295*9c5db199SXin Li    'X86_64': ('linux-cheets_x86_64-user', r'\.zip$'),
296*9c5db199SXin Li    'ARM_USERDEBUG': ('linux-cheets_arm-userdebug', r'\.zip$'),
297*9c5db199SXin Li    'ARM64_USERDEBUG': ('linux-cheets_arm64-userdebug', r'\.zip$'),
298*9c5db199SXin Li    'X86_USERDEBUG': ('linux-cheets_x86-userdebug', r'\.zip$'),
299*9c5db199SXin Li    'X86_64_USERDEBUG': ('linux-cheets_x86_64-userdebug', r'\.zip$'),
300*9c5db199SXin Li    'SDK_GOOGLE_X86_USERDEBUG': ('linux-sdk_cheets_x86-userdebug', r'\.zip$'),
301*9c5db199SXin Li    'SDK_GOOGLE_X86_64_USERDEBUG': ('linux-sdk_cheets_x86_64-userdebug',
302*9c5db199SXin Li                                    r'\.zip$'),
303*9c5db199SXin Li}
304*9c5db199SXin LiANDROID_VMMST_BUILD_TARGETS = {
305*9c5db199SXin Li    # For XkbToKcmConverter, see the comment in ANDROID_PI_BUILD_TARGETS.
306*9c5db199SXin Li    'X86_64_USERDEBUG': ('linux-bertha_x86_64-userdebug',
307*9c5db199SXin Li                         r'(\.zip|/XkbToKcmConverter)$'),
308*9c5db199SXin Li}
309*9c5db199SXin LiANDROID_VMRVC_BUILD_TARGETS = {
310*9c5db199SXin Li    # For XkbToKcmConverter, see the comment in ANDROID_PI_BUILD_TARGETS.
311*9c5db199SXin Li    'APPS': ('linux-apps', 'org.chromium.arc.cachebuilder.jar'),
312*9c5db199SXin Li    'ARM64': ('linux-bertha_arm64-user', r'(\.zip|/XkbToKcmConverter)$'),
313*9c5db199SXin Li    'X86_64': ('linux-bertha_x86_64-user', r'(\.zip|/XkbToKcmConverter)$'),
314*9c5db199SXin Li    'ARM64_USERDEBUG': ('linux-bertha_arm64-userdebug',
315*9c5db199SXin Li                        r'(\.zip|/XkbToKcmConverter)$'),
316*9c5db199SXin Li    'X86_64_USERDEBUG': ('linux-bertha_x86_64-userdebug',
317*9c5db199SXin Li                         r'(\.zip|/XkbToKcmConverter)$'),
318*9c5db199SXin Li}
319*9c5db199SXin Li
320*9c5db199SXin Li# These refer to *_TARGET variables in Android ebuild files, used when
321*9c5db199SXin Li# parsing ebuilds to determine the corresponding Android branch.
322*9c5db199SXin Li# NOTE: We may use `|` operator to union dict keys after we completely go
323*9c5db199SXin Li# Python 3.
324*9c5db199SXin LiANDROID_ALL_BUILD_TARGETS = frozenset(
325*9c5db199SXin Li    x + '_TARGET' for x in itertools.chain(
326*9c5db199SXin Li        ANDROID_PI_BUILD_TARGETS,
327*9c5db199SXin Li        ANDROID_VMMST_BUILD_TARGETS,
328*9c5db199SXin Li        ANDROID_VMRVC_BUILD_TARGETS,
329*9c5db199SXin Li    )
330*9c5db199SXin Li)
331*9c5db199SXin Li
332*9c5db199SXin LiARC_BUCKET_URL = 'gs://chromeos-arc-images/builds'
333*9c5db199SXin LiARC_BUCKET_ACLS = {
334*9c5db199SXin Li    'APPS': 'googlestorage_acl_public.txt',
335*9c5db199SXin Li    'ARM': 'googlestorage_acl_arm.txt',
336*9c5db199SXin Li    'ARM64': 'googlestorage_acl_arm.txt',
337*9c5db199SXin Li    'X86': 'googlestorage_acl_x86.txt',
338*9c5db199SXin Li    'X86_64': 'googlestorage_acl_x86.txt',
339*9c5db199SXin Li    'ARM_USERDEBUG': 'googlestorage_acl_arm.txt',
340*9c5db199SXin Li    'ARM64_USERDEBUG': 'googlestorage_acl_arm.txt',
341*9c5db199SXin Li    'X86_USERDEBUG': 'googlestorage_acl_x86.txt',
342*9c5db199SXin Li    'X86_64_USERDEBUG': 'googlestorage_acl_x86.txt',
343*9c5db199SXin Li    'SDK_GOOGLE_X86_USERDEBUG': 'googlestorage_acl_x86.txt',
344*9c5db199SXin Li    'SDK_GOOGLE_X86_64_USERDEBUG': 'googlestorage_acl_x86.txt',
345*9c5db199SXin Li}
346*9c5db199SXin LiANDROID_SYMBOLS_URL_TEMPLATE = (
347*9c5db199SXin Li    ARC_BUCKET_URL +
348*9c5db199SXin Li    '/%(branch)s-linux-%(target)s_%(arch)s-%(variant)s/%(version)s'
349*9c5db199SXin Li    '/%(target)s_%(arch)s%(suffix)s-symbols-%(version)s.zip')
350*9c5db199SXin LiANDROID_SYMBOLS_FILE = 'android-symbols.zip'
351*9c5db199SXin Li# x86-user, x86-userdebug and x86-eng builders create build artifacts with the
352*9c5db199SXin Li# same name, e.g. cheets_x86-target_files-${VERSION}.zip. ChromeOS builders
353*9c5db199SXin Li# that need to select x86-user or x86-userdebug artifacts at emerge time need
354*9c5db199SXin Li# the artifacts to have different filenames to avoid checksum failures. These
355*9c5db199SXin Li# targets will have their artifacts renamed when the PFQ copies them from the
356*9c5db199SXin Li# the Android bucket to the ARC++ bucket (b/33072485).
357*9c5db199SXin LiARC_BUILDS_NEED_ARTIFACTS_RENAMED = {
358*9c5db199SXin Li    'ARM_USERDEBUG',
359*9c5db199SXin Li    'ARM64_USERDEBUG',
360*9c5db199SXin Li    'X86_USERDEBUG',
361*9c5db199SXin Li    'X86_64_USERDEBUG',
362*9c5db199SXin Li    'SDK_GOOGLE_X86_USERDEBUG',
363*9c5db199SXin Li    'SDK_GOOGLE_X86_64_USERDEBUG',
364*9c5db199SXin Li}
365*9c5db199SXin Li# All builds will have the same name without target prefix.
366*9c5db199SXin Li# Emerge checksum failures will be workarounded by ebuild rename symbol (->).
367*9c5db199SXin LiARC_ARTIFACTS_RENAME_NOT_NEEDED = [
368*9c5db199SXin Li    'push_to_device.zip',
369*9c5db199SXin Li    'sepolicy.zip',
370*9c5db199SXin Li    'XkbToKcmConverter',
371*9c5db199SXin Li]
372*9c5db199SXin Li
373*9c5db199SXin LiGOB_COOKIE_PATH = os.path.expanduser('~/.git-credential-cache/cookie')
374*9c5db199SXin LiGITCOOKIES_PATH = os.path.expanduser('~/.gitcookies')
375*9c5db199SXin Li
376*9c5db199SXin Li# Timestamps in the JSON from GoB's web interface is of the form 'Tue
377*9c5db199SXin Li# Dec 02 17:48:06 2014' and is assumed to be in UTC.
378*9c5db199SXin LiGOB_COMMIT_TIME_FORMAT = '%a %b %d %H:%M:%S %Y'
379*9c5db199SXin Li
380*9c5db199SXin LiCHROMITE_PROJECT = 'chromiumos/chromite'
381*9c5db199SXin LiCHROMITE_URL = '%s/%s' % (EXTERNAL_GOB_URL, CHROMITE_PROJECT)
382*9c5db199SXin LiCHROMIUM_SRC_PROJECT = 'chromium/src'
383*9c5db199SXin LiCHROMIUM_GOB_URL = '%s/%s.git' % (EXTERNAL_GOB_URL, CHROMIUM_SRC_PROJECT)
384*9c5db199SXin LiCHROME_INTERNAL_PROJECT = 'chrome/src-internal'
385*9c5db199SXin LiCHROME_INTERNAL_GOB_URL = '%s/%s.git' % (
386*9c5db199SXin Li    INTERNAL_GOB_URL, CHROME_INTERNAL_PROJECT)
387*9c5db199SXin Li
388*9c5db199SXin LiDEFAULT_MANIFEST = 'default.xml'
389*9c5db199SXin LiOFFICIAL_MANIFEST = 'official.xml'
390*9c5db199SXin LiLKGM_MANIFEST = 'LKGM/lkgm.xml'
391*9c5db199SXin Li
392*9c5db199SXin LiSHARED_CACHE_ENVVAR = 'CROS_CACHEDIR'
393*9c5db199SXin LiPARALLEL_EMERGE_STATUS_FILE_ENVVAR = 'PARALLEL_EMERGE_STATUS_FILE'
394*9c5db199SXin Li
395*9c5db199SXin Li# These projects can be responsible for infra failures.
396*9c5db199SXin LiINFRA_PROJECTS = (CHROMITE_PROJECT,)
397*9c5db199SXin Li
398*9c5db199SXin Li# The manifest contains extra attributes in the 'project' nodes to determine our
399*9c5db199SXin Li# branching strategy for the project.
400*9c5db199SXin Li#   create: Create a new branch on the project repo for the new CrOS branch.
401*9c5db199SXin Li#           This is the default.
402*9c5db199SXin Li#   pin: On the CrOS branch, pin the project to the current revision.
403*9c5db199SXin Li#   tot: On the CrOS branch, the project still tracks ToT.
404*9c5db199SXin LiMANIFEST_ATTR_BRANCHING = 'branch-mode'
405*9c5db199SXin LiMANIFEST_ATTR_BRANCHING_CREATE = 'create'
406*9c5db199SXin LiMANIFEST_ATTR_BRANCHING_PIN = 'pin'
407*9c5db199SXin LiMANIFEST_ATTR_BRANCHING_TOT = 'tot'
408*9c5db199SXin LiMANIFEST_ATTR_BRANCHING_ALL = (
409*9c5db199SXin Li    MANIFEST_ATTR_BRANCHING_CREATE,
410*9c5db199SXin Li    MANIFEST_ATTR_BRANCHING_PIN,
411*9c5db199SXin Li    MANIFEST_ATTR_BRANCHING_TOT,
412*9c5db199SXin Li)
413*9c5db199SXin Li
414*9c5db199SXin LiSTREAK_COUNTERS = 'streak_counters'
415*9c5db199SXin Li
416*9c5db199SXin LiPATCH_BRANCH = 'patch_branch'
417*9c5db199SXin LiSTABLE_EBUILD_BRANCH = 'stabilizing_branch'
418*9c5db199SXin LiMERGE_BRANCH = 'merge_branch'
419*9c5db199SXin Li
420*9c5db199SXin Li# These branches are deleted at the beginning of every buildbot run.
421*9c5db199SXin LiCREATED_BRANCHES = [
422*9c5db199SXin Li    PATCH_BRANCH,
423*9c5db199SXin Li    STABLE_EBUILD_BRANCH,
424*9c5db199SXin Li    MERGE_BRANCH
425*9c5db199SXin Li]
426*9c5db199SXin Li
427*9c5db199SXin Li# Default OS target packages.
428*9c5db199SXin LiTARGET_OS_PKG = 'virtual/target-os'
429*9c5db199SXin LiTARGET_OS_DEV_PKG = 'virtual/target-os-dev'
430*9c5db199SXin LiTARGET_OS_TEST_PKG = 'virtual/target-os-test'
431*9c5db199SXin LiTARGET_OS_FACTORY_PKG = 'virtual/target-os-factory'
432*9c5db199SXin Li
433*9c5db199SXin Li# Constants for uprevving Chrome
434*9c5db199SXin Li
435*9c5db199SXin LiCHROMEOS_BASE = 'chromeos-base'
436*9c5db199SXin Li
437*9c5db199SXin Li# Portage category and package name for Chrome.
438*9c5db199SXin LiCHROME_CN = CHROMEOS_BASE
439*9c5db199SXin LiCHROME_PN = 'chromeos-chrome'
440*9c5db199SXin LiCHROME_CP = '%s/%s' % (CHROME_CN, CHROME_PN)
441*9c5db199SXin Li
442*9c5db199SXin Li# Other packages to uprev while uprevving Chrome.
443*9c5db199SXin LiOTHER_CHROME_PACKAGES = ['chromeos-base/chromium-source',
444*9c5db199SXin Li                         'chromeos-base/chrome-icu']
445*9c5db199SXin Li
446*9c5db199SXin Li# Chrome use flags
447*9c5db199SXin LiUSE_CHROME_INTERNAL = 'chrome_internal'
448*9c5db199SXin LiUSE_AFDO_USE = 'afdo_use'
449*9c5db199SXin Li
450*9c5db199SXin Li
451*9c5db199SXin Li# Builds and validates _alpha ebuilds.  These builds sync to the latest
452*9c5db199SXin Li# revsion of the Chromium src tree and build with that checkout.
453*9c5db199SXin LiCHROME_REV_TOT = 'tot'
454*9c5db199SXin Li
455*9c5db199SXin Li# Builds and validates chrome at a given revision through cbuildbot
456*9c5db199SXin Li# --chrome_version
457*9c5db199SXin LiCHROME_REV_SPEC = 'spec'
458*9c5db199SXin Li
459*9c5db199SXin Li# Builds and validates the latest Chromium release as defined by
460*9c5db199SXin Li# ~/trunk/releases in the Chrome src tree.  These ebuilds are suffixed with rc.
461*9c5db199SXin LiCHROME_REV_LATEST = 'latest_release'
462*9c5db199SXin Li
463*9c5db199SXin Li# Builds and validates the latest Chromium release for a specific Chromium
464*9c5db199SXin Li# branch that we want to watch.  These ebuilds are suffixed with rc.
465*9c5db199SXin LiCHROME_REV_STICKY = 'stable_release'
466*9c5db199SXin Li
467*9c5db199SXin Li# Builds and validates Chromium for a pre-populated directory.
468*9c5db199SXin Li# Also uses _alpha, since portage doesn't have anything lower.
469*9c5db199SXin LiCHROME_REV_LOCAL = 'local'
470*9c5db199SXin LiVALID_CHROME_REVISIONS = [CHROME_REV_TOT, CHROME_REV_LATEST,
471*9c5db199SXin Li                          CHROME_REV_STICKY, CHROME_REV_LOCAL, CHROME_REV_SPEC]
472*9c5db199SXin Li
473*9c5db199SXin Li
474*9c5db199SXin Li# Constants for uprevving Android.
475*9c5db199SXin Li
476*9c5db199SXin Li# Portage package name for Android container.
477*9c5db199SXin LiANDROID_PACKAGE_NAME = 'android-container'
478*9c5db199SXin Li
479*9c5db199SXin Li# Builds and validates the latest Android release.
480*9c5db199SXin LiANDROID_REV_LATEST = 'latest_release'
481*9c5db199SXin LiVALID_ANDROID_REVISIONS = [ANDROID_REV_LATEST]
482*9c5db199SXin Li
483*9c5db199SXin Li# Build types supported.
484*9c5db199SXin Li
485*9c5db199SXin Li# TODO(sosa): Deprecate PFQ type.
486*9c5db199SXin Li# Incremental builds that are built using binary packages when available.
487*9c5db199SXin Li# These builds have less validation than other build types.
488*9c5db199SXin LiINCREMENTAL_TYPE = 'binary'
489*9c5db199SXin Li
490*9c5db199SXin Li# These builds serve as PFQ builders.  This is being deprecated.
491*9c5db199SXin LiPFQ_TYPE = 'pfq'
492*9c5db199SXin Li
493*9c5db199SXin Li# Android PFQ type.  Builds and validates new versions of Android.
494*9c5db199SXin LiANDROID_PFQ_TYPE = 'android'
495*9c5db199SXin Li
496*9c5db199SXin Li# Builds from source and non-incremental.  This builds fully wipe their
497*9c5db199SXin Li# chroot before the start of every build and no not use a BINHOST.
498*9c5db199SXin LiFULL_TYPE = 'full'
499*9c5db199SXin Li
500*9c5db199SXin Li# Full but with versioned logic.
501*9c5db199SXin LiCANARY_TYPE = 'canary'
502*9c5db199SXin Li
503*9c5db199SXin Li# Generate payloads for an already built build/version.
504*9c5db199SXin LiPAYLOADS_TYPE = 'payloads'
505*9c5db199SXin Li
506*9c5db199SXin Li# Similar behavior to canary, but used to validate toolchain changes.
507*9c5db199SXin LiTOOLCHAIN_TYPE = 'toolchain'
508*9c5db199SXin Li
509*9c5db199SXin Li# Generic type of tryjob only build configs.
510*9c5db199SXin LiTRYJOB_TYPE = 'tryjob'
511*9c5db199SXin Li
512*9c5db199SXin Li# Special build type for Chroot builders.  These builds focus on building
513*9c5db199SXin Li# toolchains and validate that they work.
514*9c5db199SXin LiCHROOT_BUILDER_TYPE = 'chroot'
515*9c5db199SXin LiCHROOT_BUILDER_BOARD = 'amd64-host'
516*9c5db199SXin Li
517*9c5db199SXin Li# Use for builds that don't requite a type.
518*9c5db199SXin LiGENERIC_TYPE = 'generic'
519*9c5db199SXin Li
520*9c5db199SXin LiVALID_BUILD_TYPES = (
521*9c5db199SXin Li    INCREMENTAL_TYPE,
522*9c5db199SXin Li    FULL_TYPE,
523*9c5db199SXin Li    CANARY_TYPE,
524*9c5db199SXin Li    CHROOT_BUILDER_TYPE,
525*9c5db199SXin Li    CHROOT_BUILDER_BOARD,
526*9c5db199SXin Li    ANDROID_PFQ_TYPE,
527*9c5db199SXin Li    PFQ_TYPE,
528*9c5db199SXin Li    PAYLOADS_TYPE,
529*9c5db199SXin Li    TOOLCHAIN_TYPE,
530*9c5db199SXin Li    TRYJOB_TYPE,
531*9c5db199SXin Li    GENERIC_TYPE,
532*9c5db199SXin Li)
533*9c5db199SXin Li
534*9c5db199SXin LiHWTEST_TRYBOT_NUM = 3
535*9c5db199SXin LiHWTEST_QUOTA_POOL = 'quota'
536*9c5db199SXin Li
537*9c5db199SXin LiHWTEST_QUOTA_ACCOUNT_BVT = 'legacypool-bvt'
538*9c5db199SXin LiHWTEST_QUOTA_ACCOUNT_BVT_SYNC = 'bvt-sync'
539*9c5db199SXin LiHWTEST_QUOTA_ACCOUNT_PFQ = 'pfq'
540*9c5db199SXin LiHWTEST_QUOTA_ACCOUNT_SUITES = 'legacypool-suites'
541*9c5db199SXin LiHWTEST_QUOTA_ACCOUNT_TOOLCHAIN = 'toolchain'
542*9c5db199SXin Li
543*9c5db199SXin Li# How many total test retries should be done for a suite.
544*9c5db199SXin LiHWTEST_MAX_RETRIES = 5
545*9c5db199SXin Li
546*9c5db199SXin Li# Defines for the various hardware test suites:
547*9c5db199SXin Li#   BVT:  Basic blocking suite to be run against any build that
548*9c5db199SXin Li#       requires a HWTest phase.
549*9c5db199SXin Li#   COMMIT:  Suite of basic tests required for commits to the source
550*9c5db199SXin Li#       tree.  Runs as a blocking suite on the CQ and PFQ; runs as
551*9c5db199SXin Li#       a non-blocking suite on canaries.
552*9c5db199SXin Li#   CANARY:  Non-blocking suite run only against the canaries.
553*9c5db199SXin Li#   AFDO:  Non-blocking suite run only AFDO builders.
554*9c5db199SXin Li#   MOBLAB: Blocking Suite run only on *_moblab builders.
555*9c5db199SXin Li#   INSTALLER: Blocking suite run against all canaries; tests basic installer
556*9c5db199SXin Li#              functionality.
557*9c5db199SXin LiHWTEST_ARC_COMMIT_SUITE = 'bvt-arc'
558*9c5db199SXin LiHWTEST_BVT_SUITE = 'bvt-inline'
559*9c5db199SXin LiHWTEST_COMMIT_SUITE = 'bvt-cq'
560*9c5db199SXin LiHWTEST_CANARY_SUITE = 'bvt-perbuild'
561*9c5db199SXin LiHWTEST_INSTALLER_SUITE = 'bvt-installer'
562*9c5db199SXin Li# Runs all non-informational Tast tests (exercising any of OS, Chrome, and ARC).
563*9c5db199SXin LiHWTEST_TAST_CQ_SUITE = 'bvt-tast-cq'
564*9c5db199SXin Li# Runs non-informational Tast tests exercising either Chrome or ARC.
565*9c5db199SXin LiHWTEST_TAST_CHROME_PFQ_SUITE = 'bvt-tast-chrome-pfq'
566*9c5db199SXin Li# Runs non-informational Tast tests exercising ARC.
567*9c5db199SXin LiHWTEST_TAST_ANDROID_PFQ_SUITE = 'bvt-tast-android-pfq'
568*9c5db199SXin Li# Runs all Tast informational tests.
569*9c5db199SXin LiHWTEST_TAST_INFORMATIONAL_SUITE = 'bvt-tast-informational'
570*9c5db199SXin LiHWTEST_AFDO_SUITE = 'AFDO_record'
571*9c5db199SXin LiHWTEST_JETSTREAM_COMMIT_SUITE = 'jetstream_cq'
572*9c5db199SXin LiHWTEST_MOBLAB_SUITE = 'moblab'
573*9c5db199SXin LiHWTEST_MOBLAB_QUICK_SUITE = 'moblab_quick'
574*9c5db199SXin LiHWTEST_SANITY_SUITE = 'sanity'
575*9c5db199SXin LiHWTEST_TOOLCHAIN_SUITE = 'toolchain-tests'
576*9c5db199SXin Li# Non-blocking informational hardware tests for Chrome, run throughout the
577*9c5db199SXin Li# day on tip-of-trunk Chrome rather than on the daily Chrome branch.
578*9c5db199SXin LiHWTEST_CHROME_INFORMATIONAL = 'chrome-informational'
579*9c5db199SXin Li
580*9c5db199SXin Li# Additional timeout to wait for autotest to abort a suite if the test takes
581*9c5db199SXin Li# too long to run. This is meant to be overly conservative as a timeout may
582*9c5db199SXin Li# indicate that autotest is at capacity.
583*9c5db199SXin LiHWTEST_TIMEOUT_EXTENSION = 10 * 60
584*9c5db199SXin Li
585*9c5db199SXin LiHWTEST_WEEKLY_PRIORITY = 'Weekly'
586*9c5db199SXin LiHWTEST_CTS_PRIORITY = 'CTS'
587*9c5db199SXin LiHWTEST_GTS_PRIORITY = HWTEST_CTS_PRIORITY
588*9c5db199SXin LiHWTEST_DAILY_PRIORITY = 'Daily'
589*9c5db199SXin LiHWTEST_DEFAULT_PRIORITY = 'DEFAULT'
590*9c5db199SXin LiHWTEST_CQ_PRIORITY = 'CQ'
591*9c5db199SXin LiHWTEST_BUILD_PRIORITY = 'Build'
592*9c5db199SXin LiHWTEST_PFQ_PRIORITY = 'PFQ'
593*9c5db199SXin LiHWTEST_POST_BUILD_PRIORITY = 'PostBuild'
594*9c5db199SXin Li
595*9c5db199SXin Li# Ordered by priority (first item being lowest).
596*9c5db199SXin LiHWTEST_VALID_PRIORITIES = [HWTEST_WEEKLY_PRIORITY,
597*9c5db199SXin Li                           HWTEST_CTS_PRIORITY,
598*9c5db199SXin Li                           HWTEST_DAILY_PRIORITY,
599*9c5db199SXin Li                           HWTEST_POST_BUILD_PRIORITY,
600*9c5db199SXin Li                           HWTEST_DEFAULT_PRIORITY,
601*9c5db199SXin Li                           HWTEST_BUILD_PRIORITY,
602*9c5db199SXin Li                           HWTEST_PFQ_PRIORITY,
603*9c5db199SXin Li                           HWTEST_CQ_PRIORITY]
604*9c5db199SXin Li
605*9c5db199SXin Li# Creates a mapping of priorities to make easy comparsions.
606*9c5db199SXin Li# Use the same priorities mapping as autotest/client/common_lib/priorities.py
607*9c5db199SXin LiHWTEST_PRIORITIES_MAP = {
608*9c5db199SXin Li    HWTEST_WEEKLY_PRIORITY: 10,
609*9c5db199SXin Li    HWTEST_CTS_PRIORITY: 11,
610*9c5db199SXin Li    HWTEST_DAILY_PRIORITY: 20,
611*9c5db199SXin Li    HWTEST_POST_BUILD_PRIORITY: 30,
612*9c5db199SXin Li    HWTEST_DEFAULT_PRIORITY: 40,
613*9c5db199SXin Li    HWTEST_BUILD_PRIORITY: 50,
614*9c5db199SXin Li    HWTEST_PFQ_PRIORITY: 60,
615*9c5db199SXin Li    HWTEST_CQ_PRIORITY: 70}
616*9c5db199SXin Li
617*9c5db199SXin Li# Creates a mapping of priorities for skylab hwtest tasks. In swarming,
618*9c5db199SXin Li# lower number means high priorities. Priority lower than 48 will be special
619*9c5db199SXin Li# tasks. The upper bound of priority is 255.
620*9c5db199SXin Li# Use the same priorities mapping as autotest/venv/skylab_suite/swarming_lib.py
621*9c5db199SXin LiSKYLAB_HWTEST_PRIORITIES_MAP = {
622*9c5db199SXin Li    HWTEST_WEEKLY_PRIORITY: 230,
623*9c5db199SXin Li    HWTEST_CTS_PRIORITY: 215,
624*9c5db199SXin Li    HWTEST_DAILY_PRIORITY: 200,
625*9c5db199SXin Li    HWTEST_POST_BUILD_PRIORITY: 170,
626*9c5db199SXin Li    HWTEST_DEFAULT_PRIORITY: 140,
627*9c5db199SXin Li    HWTEST_BUILD_PRIORITY: 110,
628*9c5db199SXin Li    HWTEST_PFQ_PRIORITY: 80,
629*9c5db199SXin Li    HWTEST_CQ_PRIORITY: 50,
630*9c5db199SXin Li}
631*9c5db199SXin Li
632*9c5db199SXin Li# The environment for executing tests.
633*9c5db199SXin LiENV_SKYLAB = 'skylab'
634*9c5db199SXin LiENV_AUTOTEST = 'autotest'
635*9c5db199SXin Li
636*9c5db199SXin Li# The cipd package for skylab tool
637*9c5db199SXin LiCIPD_SKYLAB_PACKAGE = 'chromiumos/infra/skylab/linux-amd64'
638*9c5db199SXin Li# crbug.com/1108489: The skylab tool CIPD package is pinned to a specific
639*9c5db199SXin Li# version to avoid uncontrolled tool release and so that the tool is effectively
640*9c5db199SXin Li# branched with cbuildbot.
641*9c5db199SXin LiCIPD_SKYLAB_INSTANCE_ID = 'LU2Xmdk1oXyZPuiEfzDQhUWFMXY3jYQNPOzHRkRkZBEC'
642*9c5db199SXin Li
643*9c5db199SXin Li# HWTest result statuses
644*9c5db199SXin LiHWTEST_STATUS_PASS = 'pass'
645*9c5db199SXin LiHWTEST_STATUS_FAIL = 'fail'
646*9c5db199SXin LiHWTEST_STATUS_ABORT = 'abort'
647*9c5db199SXin LiHWTEST_STATUS_OTHER = 'other'
648*9c5db199SXin LiHWTEST_STATUES_NOT_PASSED = frozenset([HWTEST_STATUS_FAIL,
649*9c5db199SXin Li                                       HWTEST_STATUS_ABORT,
650*9c5db199SXin Li                                       HWTEST_STATUS_OTHER])
651*9c5db199SXin Li
652*9c5db199SXin Li# Build messages
653*9c5db199SXin LiMESSAGE_TYPE_IGNORED_REASON = 'ignored_reason'
654*9c5db199SXin LiMESSAGE_TYPE_ANNOTATIONS_FINALIZED = 'annotations_finalized'
655*9c5db199SXin Li# MESSSGE_TYPE_IGNORED_REASON messages store the affected build as
656*9c5db199SXin Li# the CIDB column message_value.
657*9c5db199SXin LiMESSAGE_SUBTYPE_SELF_DESTRUCTION = 'self_destruction'
658*9c5db199SXin Li
659*9c5db199SXin Li# Define HWTEST job_keyvals
660*9c5db199SXin LiJOB_KEYVAL_DATASTORE_PARENT_KEY = 'datastore_parent_key'
661*9c5db199SXin LiJOB_KEYVAL_CIDB_BUILD_ID = 'cidb_build_id'
662*9c5db199SXin LiJOB_KEYVAL_CIDB_BUILD_STAGE_ID = 'cidb_build_stage_id'
663*9c5db199SXin LiJOB_KEYVAL_BUILD_CONFIG = 'build_config'
664*9c5db199SXin LiJOB_KEYVAL_MASTER_BUILD_CONFIG = 'master_build_config'
665*9c5db199SXin LiJOB_KEYVAL_BRANCH = 'branch'
666*9c5db199SXin Li
667*9c5db199SXin Li
668*9c5db199SXin Li# How many total test retries should be done for a suite.
669*9c5db199SXin LiVM_TEST_MAX_RETRIES = 5
670*9c5db199SXin Li# Defines VM Test types.
671*9c5db199SXin LiSIMPLE_AU_TEST_TYPE = 'pfq_suite'
672*9c5db199SXin LiVM_SUITE_TEST_TYPE = 'vm_suite'
673*9c5db199SXin LiGCE_SUITE_TEST_TYPE = 'gce_suite'
674*9c5db199SXin LiCROS_VM_TEST_TYPE = 'cros_vm_test'
675*9c5db199SXin LiDEV_MODE_TEST_TYPE = 'dev_mode_test'
676*9c5db199SXin LiVALID_VM_TEST_TYPES = [
677*9c5db199SXin Li    SIMPLE_AU_TEST_TYPE,
678*9c5db199SXin Li    VM_SUITE_TEST_TYPE,
679*9c5db199SXin Li    GCE_SUITE_TEST_TYPE,
680*9c5db199SXin Li    CROS_VM_TEST_TYPE,
681*9c5db199SXin Li    DEV_MODE_TEST_TYPE
682*9c5db199SXin Li]
683*9c5db199SXin LiVALID_GCE_TEST_SUITES = ['gce-smoke', 'gce-sanity']
684*9c5db199SXin Li# MoblabVM tests are suites of tests used to validate a moblab image via
685*9c5db199SXin Li# VMTests.
686*9c5db199SXin LiMOBLAB_VM_SMOKE_TEST_TYPE = 'moblab_smoke_test'
687*9c5db199SXin Li
688*9c5db199SXin LiCHROMIUMOS_OVERLAY_DIR = 'src/third_party/chromiumos-overlay'
689*9c5db199SXin LiPORTAGE_STABLE_OVERLAY_DIR = 'src/third_party/portage-stable'
690*9c5db199SXin LiECLASS_OVERLAY_DIR = 'src/third_party/eclass-overlay'
691*9c5db199SXin LiCHROMEOS_PARTNER_OVERLAY_DIR = 'src/private-overlays/chromeos-partner-overlay/'
692*9c5db199SXin LiPUBLIC_BINHOST_CONF_DIR = os.path.join(CHROMIUMOS_OVERLAY_DIR,
693*9c5db199SXin Li                                       'chromeos/binhost')
694*9c5db199SXin LiPRIVATE_BINHOST_CONF_DIR = os.path.join(CHROMEOS_PARTNER_OVERLAY_DIR,
695*9c5db199SXin Li                                        'chromeos/binhost')
696*9c5db199SXin Li
697*9c5db199SXin LiVERSION_FILE = os.path.join(CHROMIUMOS_OVERLAY_DIR,
698*9c5db199SXin Li                            'chromeos/config/chromeos_version.sh')
699*9c5db199SXin LiSDK_VERSION_FILE = os.path.join(PUBLIC_BINHOST_CONF_DIR,
700*9c5db199SXin Li                                'host/sdk_version.conf')
701*9c5db199SXin LiSDK_GS_BUCKET = 'chromiumos-sdk'
702*9c5db199SXin Li
703*9c5db199SXin LiPUBLIC = 'public'
704*9c5db199SXin LiPRIVATE = 'private'
705*9c5db199SXin Li
706*9c5db199SXin LiBOTH_OVERLAYS = 'both'
707*9c5db199SXin LiPUBLIC_OVERLAYS = PUBLIC
708*9c5db199SXin LiPRIVATE_OVERLAYS = PRIVATE
709*9c5db199SXin LiVALID_OVERLAYS = [BOTH_OVERLAYS, PUBLIC_OVERLAYS, PRIVATE_OVERLAYS, None]
710*9c5db199SXin Li
711*9c5db199SXin Li# Common default logging settings for use with the logging module.
712*9c5db199SXin LiLOGGER_FMT = '%(asctime)s: %(levelname)s: %(message)s'
713*9c5db199SXin LiLOGGER_DATE_FMT = '%H:%M:%S'
714*9c5db199SXin Li
715*9c5db199SXin Li# Used by remote patch serialization/deserialzation.
716*9c5db199SXin LiINTERNAL_PATCH_TAG = 'i'
717*9c5db199SXin LiEXTERNAL_PATCH_TAG = 'e'
718*9c5db199SXin LiPATCH_TAGS = (INTERNAL_PATCH_TAG, EXTERNAL_PATCH_TAG)
719*9c5db199SXin Li
720*9c5db199SXin LiGERRIT_ON_BORG_LABELS = {
721*9c5db199SXin Li    'Code-Review': 'CRVW',
722*9c5db199SXin Li    'Commit-Queue': 'COMR',
723*9c5db199SXin Li    'Verified': 'VRIF',
724*9c5db199SXin Li}
725*9c5db199SXin Li
726*9c5db199SXin Li# Environment variables that should be exposed to all children processes
727*9c5db199SXin Li# invoked via cros_build_lib.run.
728*9c5db199SXin LiENV_PASSTHRU = ('CROS_SUDO_KEEP_ALIVE', SHARED_CACHE_ENVVAR,
729*9c5db199SXin Li                PARALLEL_EMERGE_STATUS_FILE_ENVVAR)
730*9c5db199SXin Li
731*9c5db199SXin Li# List of variables to proxy into the chroot from the host, and to
732*9c5db199SXin Li# have sudo export if existent. Anytime this list is modified, a new
733*9c5db199SXin Li# chroot_version_hooks.d upgrade script that symlinks to 153_rewrite_sudoers.d
734*9c5db199SXin Li# should be created.
735*9c5db199SXin LiCHROOT_ENVIRONMENT_WHITELIST = (
736*9c5db199SXin Li    'CHROMEOS_OFFICIAL',
737*9c5db199SXin Li    'CHROMEOS_VERSION_AUSERVER',
738*9c5db199SXin Li    'CHROMEOS_VERSION_DEVSERVER',
739*9c5db199SXin Li    'CHROMEOS_VERSION_TRACK',
740*9c5db199SXin Li    'GCC_GITHASH',
741*9c5db199SXin Li    'GIT_AUTHOR_EMAIL',
742*9c5db199SXin Li    'GIT_AUTHOR_NAME',
743*9c5db199SXin Li    'GIT_COMMITTER_EMAIL',
744*9c5db199SXin Li    'GIT_COMMITTER_NAME',
745*9c5db199SXin Li    'GIT_PROXY_COMMAND',
746*9c5db199SXin Li    'GIT_SSH',
747*9c5db199SXin Li    'RSYNC_PROXY',
748*9c5db199SXin Li    'SSH_AGENT_PID',
749*9c5db199SXin Li    'SSH_AUTH_SOCK',
750*9c5db199SXin Li    'TMUX',
751*9c5db199SXin Li    'USE',
752*9c5db199SXin Li    'all_proxy',
753*9c5db199SXin Li    'ftp_proxy',
754*9c5db199SXin Li    'http_proxy',
755*9c5db199SXin Li    'https_proxy',
756*9c5db199SXin Li    'no_proxy',
757*9c5db199SXin Li)
758*9c5db199SXin Li
759*9c5db199SXin Li# Paths for Chrome LKGM which are relative to the Chromium base url.
760*9c5db199SXin LiCHROME_LKGM_FILE = 'CHROMEOS_LKGM'
761*9c5db199SXin LiPATH_TO_CHROME_LKGM = 'chromeos/%s' % CHROME_LKGM_FILE
762*9c5db199SXin Li# Path for the Chrome LKGM's closest OWNERS file.
763*9c5db199SXin LiPATH_TO_CHROME_CHROMEOS_OWNERS = 'chromeos/OWNERS'
764*9c5db199SXin Li
765*9c5db199SXin Li# Cache constants.
766*9c5db199SXin LiCOMMON_CACHE = 'common'
767*9c5db199SXin Li
768*9c5db199SXin Lidef _SlashToUnderscore(string):
769*9c5db199SXin Li    """Artifact constants."""
770*9c5db199SXin Li    return string.replace('/', '_')
771*9c5db199SXin Li
772*9c5db199SXin Li
773*9c5db199SXin Lidef ImageBinToGceTar(image_bin):
774*9c5db199SXin Li    """GCE tar ball constants."""
775*9c5db199SXin Li    assert image_bin.endswith('.bin'), (
776*9c5db199SXin Li            'Filename %s does not end with ".bin"' % image_bin)
777*9c5db199SXin Li    return '%s_gce.tar.gz' % os.path.splitext(image_bin)[0]
778*9c5db199SXin Li
779*9c5db199SXin Li
780*9c5db199SXin LiRELEASE_BUCKET = 'gs://chromeos-releases'
781*9c5db199SXin LiTRASH_BUCKET = 'gs://chromeos-throw-away-bucket'
782*9c5db199SXin LiCHROME_SYSROOT_TAR = 'sysroot_%s.tar.xz' % _SlashToUnderscore(CHROME_CP)
783*9c5db199SXin LiCHROME_ENV_TAR = 'environment_%s.tar.xz' % _SlashToUnderscore(CHROME_CP)
784*9c5db199SXin LiCHROME_ENV_FILE = 'environment'
785*9c5db199SXin LiBASE_IMAGE_NAME = 'chromiumos_base_image'
786*9c5db199SXin LiBASE_IMAGE_TAR = '%s.tar.xz' % BASE_IMAGE_NAME
787*9c5db199SXin LiBASE_IMAGE_BIN = '%s.bin' % BASE_IMAGE_NAME
788*9c5db199SXin LiBASE_IMAGE_GCE_TAR = ImageBinToGceTar(BASE_IMAGE_BIN)
789*9c5db199SXin LiIMAGE_SCRIPTS_NAME = 'image_scripts'
790*9c5db199SXin LiIMAGE_SCRIPTS_TAR = '%s.tar.xz' % IMAGE_SCRIPTS_NAME
791*9c5db199SXin LiTARGET_SYSROOT_TAR = 'sysroot_%s.tar.xz' % _SlashToUnderscore(TARGET_OS_PKG)
792*9c5db199SXin LiVM_IMAGE_NAME = 'chromiumos_qemu_image'
793*9c5db199SXin LiVM_IMAGE_BIN = '%s.bin' % VM_IMAGE_NAME
794*9c5db199SXin LiVM_IMAGE_TAR = '%s.tar.xz' % VM_IMAGE_NAME
795*9c5db199SXin LiVM_DISK_PREFIX = 'chromiumos_qemu_disk.bin'
796*9c5db199SXin LiVM_MEM_PREFIX = 'chromiumos_qemu_mem.bin'
797*9c5db199SXin LiVM_NUM_RETRIES = 0
798*9c5db199SXin Li# Disabling Tast VM retries because of https://crbug.com/1098346.
799*9c5db199SXin LiTAST_VM_NUM_RETRIES = 0
800*9c5db199SXin LiTAST_VM_TEST_RESULTS = 'tast_vm_test_results_%(attempt)s'
801*9c5db199SXin LiBASE_GUEST_VM_DIR = 'guest-vm-base'
802*9c5db199SXin LiTEST_GUEST_VM_DIR = 'guest-vm-test'
803*9c5db199SXin LiBASE_GUEST_VM_TAR = '%s.tar.xz' % BASE_GUEST_VM_DIR
804*9c5db199SXin LiTEST_GUEST_VM_TAR = '%s.tar.xz' % TEST_GUEST_VM_DIR
805*9c5db199SXin Li
806*9c5db199SXin LiTEST_IMAGE_NAME = 'chromiumos_test_image'
807*9c5db199SXin LiTEST_IMAGE_TAR = '%s.tar.xz' % TEST_IMAGE_NAME
808*9c5db199SXin LiTEST_IMAGE_BIN = '%s.bin' % TEST_IMAGE_NAME
809*9c5db199SXin LiTEST_IMAGE_GCE_TAR = ImageBinToGceTar(TEST_IMAGE_BIN)
810*9c5db199SXin LiTEST_KEY_PRIVATE = 'id_rsa'
811*9c5db199SXin LiTEST_KEY_PUBLIC = 'id_rsa.pub'
812*9c5db199SXin Li
813*9c5db199SXin LiDEV_IMAGE_NAME = 'chromiumos_image'
814*9c5db199SXin LiDEV_IMAGE_BIN = '%s.bin' % DEV_IMAGE_NAME
815*9c5db199SXin Li
816*9c5db199SXin LiRECOVERY_IMAGE_NAME = 'recovery_image'
817*9c5db199SXin LiRECOVERY_IMAGE_BIN = '%s.bin' % RECOVERY_IMAGE_NAME
818*9c5db199SXin LiRECOVERY_IMAGE_TAR = '%s.tar.xz' % RECOVERY_IMAGE_NAME
819*9c5db199SXin Li
820*9c5db199SXin Li# Image type constants.
821*9c5db199SXin LiIMAGE_TYPE_BASE = 'base'
822*9c5db199SXin LiIMAGE_TYPE_DEV = 'dev'
823*9c5db199SXin LiIMAGE_TYPE_TEST = 'test'
824*9c5db199SXin LiIMAGE_TYPE_RECOVERY = 'recovery'
825*9c5db199SXin LiIMAGE_TYPE_FACTORY = 'factory'
826*9c5db199SXin LiIMAGE_TYPE_FIRMWARE = 'firmware'
827*9c5db199SXin Li# USB PD accessory microcontroller firmware (e.g. power brick, display dongle).
828*9c5db199SXin LiIMAGE_TYPE_ACCESSORY_USBPD = 'accessory_usbpd'
829*9c5db199SXin Li# Standalone accessory microcontroller firmware (e.g. wireless keyboard).
830*9c5db199SXin LiIMAGE_TYPE_ACCESSORY_RWSIG = 'accessory_rwsig'
831*9c5db199SXin Li# Cr50 Firmware.
832*9c5db199SXin LiIMAGE_TYPE_CR50_FIRMWARE = 'cr50_firmware'
833*9c5db199SXin Li
834*9c5db199SXin LiIMAGE_TYPE_TO_NAME = {
835*9c5db199SXin Li    IMAGE_TYPE_BASE: BASE_IMAGE_BIN,
836*9c5db199SXin Li    IMAGE_TYPE_DEV: DEV_IMAGE_BIN,
837*9c5db199SXin Li    IMAGE_TYPE_RECOVERY: RECOVERY_IMAGE_BIN,
838*9c5db199SXin Li    IMAGE_TYPE_TEST: TEST_IMAGE_BIN,
839*9c5db199SXin Li}
840*9c5db199SXin LiIMAGE_NAME_TO_TYPE = dict((v, k) for k, v in IMAGE_TYPE_TO_NAME.items())
841*9c5db199SXin Li
842*9c5db199SXin LiMETADATA_JSON = 'metadata.json'
843*9c5db199SXin LiPARTIAL_METADATA_JSON = 'partial-metadata.json'
844*9c5db199SXin LiMETADATA_TAGS = 'tags'
845*9c5db199SXin LiDELTA_SYSROOT_TAR = 'delta_sysroot.tar.xz'
846*9c5db199SXin LiDELTA_SYSROOT_BATCH = 'batch'
847*9c5db199SXin Li
848*9c5db199SXin LiFIRMWARE_ARCHIVE_NAME = 'firmware_from_source.tar.bz2'
849*9c5db199SXin Li
850*9c5db199SXin Li# Global configuration constants.
851*9c5db199SXin LiCHROMITE_CONFIG_DIR = os.path.expanduser('~/.chromite')
852*9c5db199SXin LiCHROME_SDK_BASHRC = os.path.join(CHROMITE_CONFIG_DIR, 'chrome_sdk.bashrc')
853*9c5db199SXin LiSYNC_RETRIES = 4
854*9c5db199SXin LiSLEEP_TIMEOUT = 30
855*9c5db199SXin Li
856*9c5db199SXin Li# Lab status url.
857*9c5db199SXin LiLAB_STATUS_URL = 'http://chromiumos-lab.appspot.com/current?format=json'
858*9c5db199SXin Li
859*9c5db199SXin LiGOLO_SMTP_SERVER = 'mail.golo.chromium.org'
860*9c5db199SXin Li
861*9c5db199SXin LiCHROME_GARDENER = 'chrome'
862*9c5db199SXin Li# Email alias to add as reviewer in Gerrit, which GWSQ will then automatically
863*9c5db199SXin Li# assign to the current gardener.
864*9c5db199SXin LiCHROME_GARDENER_REVIEW_EMAIL = '[email protected]'
865*9c5db199SXin Li
866*9c5db199SXin Li# Useful config targets.
867*9c5db199SXin LiCANARY_MASTER = 'master-release'
868*9c5db199SXin LiPFQ_MASTER = 'master-chromium-pfq'
869*9c5db199SXin LiVMMST_ANDROID_PFQ_MASTER = 'master-vmmst-android-pfq'
870*9c5db199SXin LiPI_ANDROID_PFQ_MASTER = 'master-pi-android-pfq'
871*9c5db199SXin LiVMRVC_ANDROID_PFQ_MASTER = 'master-vmrvc-android-pfq'
872*9c5db199SXin LiTOOLCHAIN_MASTTER = 'master-toolchain'
873*9c5db199SXin Li
874*9c5db199SXin Li
875*9c5db199SXin Li# Email validation regex. Not quite fully compliant with RFC 2822, but good
876*9c5db199SXin Li# approximation.
877*9c5db199SXin LiEMAIL_REGEX = r'[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}'
878*9c5db199SXin Li
879*9c5db199SXin Li# Blacklist of files not allowed to be uploaded into the Partner Project Google
880*9c5db199SXin Li# Storage Buckets:
881*9c5db199SXin Li# debug.tgz contains debug symbols.
882*9c5db199SXin Li# manifest.xml exposes all of our repo names.
883*9c5db199SXin Li# vm_test_results can contain symbolicated crash dumps.
884*9c5db199SXin LiEXTRA_BUCKETS_FILES_BLACKLIST = [
885*9c5db199SXin Li    'debug.tgz',
886*9c5db199SXin Li    'manifest.xml',
887*9c5db199SXin Li    'vm_test_results_*'
888*9c5db199SXin Li]
889*9c5db199SXin Li
890*9c5db199SXin Li# AFDO common constants.
891*9c5db199SXin Li# How long does the AFDO_record autotest have to generate the AFDO perf data.
892*9c5db199SXin LiAFDO_GENERATE_TIMEOUT = 120 * 60
893*9c5db199SXin Li
894*9c5db199SXin Li# Gmail Credentials.
895*9c5db199SXin LiGMAIL_TOKEN_CACHE_FILE = os.path.expanduser('~/.gmail_credentials')
896*9c5db199SXin LiGMAIL_TOKEN_JSON_FILE = '/creds/refresh_tokens/chromeos_gmail_alerts'
897*9c5db199SXin Li
898*9c5db199SXin Li# Maximum number of boards per release group builder. This should be
899*9c5db199SXin Li# chosen/adjusted based on expected release build times such that successive
900*9c5db199SXin Li# builds don't overlap and create a backlog.
901*9c5db199SXin LiMAX_RELEASE_GROUP_BOARDS = 4
902*9c5db199SXin Li
903*9c5db199SXin LiCHROMEOS_SERVICE_ACCOUNT = os.path.join('/', 'creds', 'service_accounts',
904*9c5db199SXin Li                                        'service-account-chromeos.json')
905*9c5db199SXin Li
906*9c5db199SXin Li# Buildbucket buckets
907*9c5db199SXin LiCHROMEOS_RELEASE_BUILDBUCKET_BUCKET = 'master.chromeos_release'
908*9c5db199SXin LiCHROMEOS_BUILDBUCKET_BUCKET = 'master.chromeos'
909*9c5db199SXin LiINTERNAL_SWARMING_BUILDBUCKET_BUCKET = 'luci.chromeos.general'
910*9c5db199SXin Li
911*9c5db199SXin LiACTIVE_BUCKETS = [
912*9c5db199SXin Li    CHROMEOS_RELEASE_BUILDBUCKET_BUCKET,
913*9c5db199SXin Li    CHROMEOS_BUILDBUCKET_BUCKET,
914*9c5db199SXin Li    INTERNAL_SWARMING_BUILDBUCKET_BUCKET,
915*9c5db199SXin Li]
916*9c5db199SXin Li
917*9c5db199SXin Li# Build retry limit on buildbucket
918*9c5db199SXin Li#
919*9c5db199SXin Li# 2020-05-13 by engeg@: This is rarely effective, causes confusion,
920*9c5db199SXin Li# higher bot utilization, and if the initial try was past uploading artifacts
921*9c5db199SXin Li# then the retry is destined to fail with a difficult to parse error.
922*9c5db199SXin Li# 2020-05-19 by seanabraham@: Leave this at zero. These retries can break
923*9c5db199SXin Li# Chrome-wide profiling. http://b/156994019
924*9c5db199SXin LiBUILDBUCKET_BUILD_RETRY_LIMIT = 0  # Do not change. Read the above.
925*9c5db199SXin Li
926*9c5db199SXin Li# TODO(nxia): consolidate all run.metadata key constants,
927*9c5db199SXin Li# add a unit test to avoid duplicated keys in run_metadata
928*9c5db199SXin Li
929*9c5db199SXin Li# Builder_run metadata keys
930*9c5db199SXin LiMETADATA_SCHEDULED_IMPORTANT_SLAVES = 'scheduled_important_slaves'
931*9c5db199SXin LiMETADATA_SCHEDULED_EXPERIMENTAL_SLAVES = 'scheduled_experimental_slaves'
932*9c5db199SXin LiMETADATA_UNSCHEDULED_SLAVES = 'unscheduled_slaves'
933*9c5db199SXin Li# List of builders marked as experimental through the tree status, not all the
934*9c5db199SXin Li# experimental builders for a run.
935*9c5db199SXin LiMETADATA_EXPERIMENTAL_BUILDERS = 'experimental_builders'
936*9c5db199SXin Li
937*9c5db199SXin Li# Metadata key to indicate whether a build is self-destructed.
938*9c5db199SXin LiSELF_DESTRUCTED_BUILD = 'self_destructed_build'
939*9c5db199SXin Li
940*9c5db199SXin Li# Metadata key to indicate whether a build is self-destructed with success.
941*9c5db199SXin LiSELF_DESTRUCTED_WITH_SUCCESS_BUILD = 'self_destructed_with_success_build'
942*9c5db199SXin Li
943*9c5db199SXin Li# Chroot snapshot names
944*9c5db199SXin LiCHROOT_SNAPSHOT_CLEAN = 'clean-chroot'
945*9c5db199SXin Li
946*9c5db199SXin Li# Partition labels.
947*9c5db199SXin LiPART_STATE = 'STATE'
948*9c5db199SXin LiPART_ROOT_A = 'ROOT-A'
949*9c5db199SXin LiPART_ROOT_B = 'ROOT-B'
950*9c5db199SXin LiPART_KERN_A = 'KERN-A'
951*9c5db199SXin LiPART_KERN_B = 'KERN-B'
952*9c5db199SXin Li
953*9c5db199SXin Li# Quick provision payloads. These file names should never be changed, otherwise
954*9c5db199SXin Li# very bad things can happen :). The reason is we have already uploaded these
955*9c5db199SXin Li# files with these names for all boards. So if the name changes, all scripts
956*9c5db199SXin Li# that have been using this need to handle both cases to be backward compatible.
957*9c5db199SXin LiQUICK_PROVISION_PAYLOAD_KERNEL = 'full_dev_part_KERN.bin.gz'
958*9c5db199SXin LiQUICK_PROVISION_PAYLOAD_ROOTFS = 'full_dev_part_ROOT.bin.gz'
959*9c5db199SXin Li
960*9c5db199SXin Li# Mock build and stage IDs.
961*9c5db199SXin LiMOCK_STAGE_ID = 313377
962*9c5db199SXin LiMOCK_BUILD_ID = 31337
963*9c5db199SXin Li
964*9c5db199SXin Li# Topology dictionary copied from CIDB.
965*9c5db199SXin LiTOPOLOGY_DICT = {
966*9c5db199SXin Li    '/buildbucket/host':
967*9c5db199SXin Li        'cr-buildbucket.appspot.com',
968*9c5db199SXin Li    '/chrome_swarming_proxy/host':
969*9c5db199SXin Li        'chromeos-swarming.appspot.com',
970*9c5db199SXin Li    '/datastore/creds_file': ('/creds/service_accounts/service-account-chromeos'
971*9c5db199SXin Li                              '-datastore-writer-prod.json'),
972*9c5db199SXin Li    '/sheriffomatic/host':
973*9c5db199SXin Li        'sheriff-o-matic.appspot.com',
974*9c5db199SXin Li    '/statsd/es_host':
975*9c5db199SXin Li        '104.154.79.237',
976*9c5db199SXin Li    '/statsd/host':
977*9c5db199SXin Li        '104.154.79.237',
978*9c5db199SXin Li}
979*9c5db199SXin Li
980*9c5db199SXin Li# Percentage of child builders that need to complete to update LKGM
981*9c5db199SXin LiLKGM_THRESHOLD = 80
982