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