| """Recipe for running a ota build on the given patch.""" |
| import os |
| |
| from helpers import branch_utils |
| from helpers import gcs_utils |
| from helpers import repo_utils |
| |
| from slave import base_recipe |
| from slave.step import gcs_upload_step |
| from slave.step import gn_check_step |
| from slave.step import host_tests_step |
| from slave.step import landmine_step |
| from slave.step import make_clean_step |
| from slave.step import ota_build_tests_step |
| from slave.step import ota_factory_tool_step |
| from slave.step import ota_fct_step |
| from slave.step import ota_oss_step |
| from slave.step import ota_resign_step |
| from slave.step import ota_step |
| from slave.step import ota_strip_binaries_step |
| from slave.step import partner_build_check_step |
| from slave.test import test_generator |
| |
| PHOENIX_SCHEMA_BUILDS = [ |
| 'elaine-eng', # 1.48_efct |
| 'elaine-user', # 1.48_efct |
| 'gq-eng', # 1.49qfsi |
| 'gq-user', # 1.49qfsi |
| 'newman-eng', # 1.38nf |
| 'newman-user', # 1.38nf |
| 'nq-eng', # 1.49qfsi |
| 'nq-user', # 1.49qfsi |
| 'valens-eng', # 1.41 |
| 'valens-user', # 1.41 |
| 'vento-eng', # 1.40fsi |
| 'vento-user', # 1.40fsi |
| ] |
| |
| BUILD_CONFIGS = { |
| 'anchovy-eng': { |
| 'build_flavor': |
| 'release', |
| 'resign': |
| ota_resign_step.EUREKA_RESIGN, |
| 'partner_bucket': [ |
| 'cast-partner-marvell-internal', |
| 'cast-partner-synaptics-internal', |
| ], |
| }, |
| 'anchovy-user': { |
| 'build_flavor': |
| 'release', |
| 'resign': |
| ota_resign_step.EUREKA_RESIGN, |
| 'partner_bucket': [ |
| 'cast-partner-marvell-internal', |
| 'cast-partner-synaptics-internal', |
| ], |
| }, |
| 'assistantdefault-eng': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.ASSISTANTDEFAULT_RESIGN, |
| 'partner_bucket': ['cast-partner-gva'], |
| 'upload_libassisant_arch': 'arm', |
| }, |
| 'assistantdefault-user': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.ASSISTANTDEFAULT_RESIGN, |
| 'partner_bucket': ['cast-partner-gva'], |
| 'upload_libassisant_arch': 'arm', |
| }, |
| 'assistantdefault-1led-eng': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.ASSISTANTDEFAULT_RESIGN, |
| 'partner_bucket': ['cast-partner-gva'], |
| }, |
| 'assistantdefault-1led-user': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.ASSISTANTDEFAULT_RESIGN, |
| 'partner_bucket': ['cast-partner-gva'], |
| }, |
| 'assistantdefault-partner-user': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.ASSISTANTDEFAULT_RESIGN, |
| 'partner_bucket': ['cast-partner-gva'], |
| 'upload_libassisant_arch': 'arm', |
| }, |
| 'audiodefault-eng': { |
| 'build_flavor': 'release', |
| 'partner_bucket': ['cast-partner-gva'], |
| }, |
| 'audiodefault-partner-eng': { |
| 'build_flavor': 'release', |
| 'partner_bucket': ['cast-partner-gva'], |
| }, |
| 'audiodefault-user': { |
| 'build_flavor': 'release', |
| 'partner_bucket': ['cast-partner-gva'], |
| }, |
| 'audiodefault_dynamic-eng': { |
| 'build_flavor': 'release', |
| 'partner_bucket': ['cast-partner-gva'], |
| }, |
| 'audiodefault_dynamic-user': { |
| 'build_flavor': 'release', |
| 'partner_bucket': ['cast-partner-gva'], |
| }, |
| 'biggie-eng': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.BIGGIE_RESIGN, |
| 'factory': ota_resign_step.BIGGIE_FACTORY, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| 'upload_libassisant_arch': 'arm64', |
| }, |
| 'biggie-user': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.BIGGIE_RESIGN, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| 'upload_libassisant_arch': 'arm64', |
| 'branch_extra_params': { |
| '1.40rd': ['RETAIL_DEMO_BUILD=true'], |
| }, |
| }, |
| 'bowie-eng': { |
| 'build_flavor': |
| 'release', |
| 'board_name': |
| 'bowie-p0', |
| 'resign': |
| ota_resign_step.BOWIE_RESIGN, |
| 'factory': |
| ota_resign_step.BOWIE_FACTORY, |
| 'usbstick': |
| ota_resign_step.BOWIE_USBSTICK, |
| 'test_board_name': |
| 'bowie-p0', |
| 'partner_bucket': [ |
| 'cast-partner-marvell-internal', |
| 'cast-partner-synaptics-internal', |
| ], |
| }, |
| 'bowie-user': { |
| 'build_flavor': |
| 'release', |
| 'board_name': |
| 'bowie-p0', |
| 'resign': |
| ota_resign_step.BOWIE_RESIGN, |
| 'test_board_name': |
| 'bowie-p0', |
| 'partner_bucket': [ |
| 'cast-partner-marvell-internal', |
| 'cast-partner-synaptics-internal', |
| ], |
| }, |
| 'brezza-eng': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.BREZZA_RESIGN, |
| 'factory': ota_resign_step.BREZZA_FACTORY, |
| 'factory_tool': ota_resign_step.BREZZA_FACTORY_TOOL, |
| 'usbstick': ota_resign_step.BREZZA_USBSTICK, |
| 'partner_bucket': ['cast-partner-qualcomm-internal'], |
| 'skip_ota_tests': True, |
| }, |
| 'brezza-user': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.BREZZA_RESIGN, |
| 'partner_bucket': ['cast-partner-qualcomm-internal'], |
| 'skip_ota_tests': True, |
| }, |
| 'brezza-partner-eng': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.BREZZA_RESIGN, |
| 'partner_bucket': ['cast-partner-qualcomm-internal'], |
| 'branch_extra_params': { |
| 'master': ['PARTNER_BUILD=true'], |
| }, |
| 'skip_ota_tests': True, |
| }, |
| 'caprica-eng': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.CAPRICA_RESIGN, |
| 'factory': ota_resign_step.CAPRICA_FACTORY, |
| 'usbstick': ota_resign_step.CAPRICA_USBSTICK, |
| 'partner_bucket': ['cast-partner-synaptics-internal'], |
| }, |
| 'caprica-user': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.CAPRICA_RESIGN, |
| 'partner_bucket': ['cast-partner-synaptics-internal'], |
| }, |
| 'caprica-yeti-eng': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.CAPRICA_RESIGN, |
| 'factory': ota_resign_step.CAPRICA_FACTORY, |
| }, |
| 'caprica-yeti-user': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.CAPRICA_RESIGN, |
| }, |
| 'chorizo-eng': { |
| 'build_flavor': |
| 'release', |
| 'resign': |
| ota_resign_step.CHORIZO_RESIGN, |
| 'partner_bucket': [ |
| 'cast-partner-marvell-internal', |
| 'cast-partner-synaptics-internal', |
| ], |
| }, |
| 'chorizo-user': { |
| 'build_flavor': |
| 'release', |
| 'max_ota_size': |
| 104000000, |
| 'resign': |
| ota_resign_step.CHORIZO_RESIGN, |
| 'partner_bucket': [ |
| 'cast-partner-marvell-internal', |
| 'cast-partner-synaptics-internal', |
| ], |
| }, |
| 'chromeos_armv7a-eng': { |
| 'build_flavor': 'release', |
| 'board_name': 'sirocco-b1', |
| 'build_usonia_daemon': True, |
| 'build_thread_telemetry_service_cros': True, |
| 'target_name': 'sirocco-eng', |
| 'skip_ota_tests': True, |
| }, |
| 'chromeos_armv7a-user': { |
| 'build_flavor': 'release', |
| 'board_name': 'sirocco-b1', |
| 'build_usonia_daemon': True, |
| 'build_thread_telemetry_service_cros': True, |
| 'target_name': 'sirocco-user', |
| 'skip_ota_tests': True, |
| }, |
| 'core_runtime-eng': { |
| 'build_flavor': 'release', |
| 'partner_bucket': ['core-runtime-cb-upload'], |
| }, |
| 'core_runtime-user': { |
| 'build_flavor': 'release', |
| 'partner_bucket': ['core-runtime-cb-upload'], |
| }, |
| 'dragonfly-eng': { |
| 'build_flavor': 'release', |
| 'partner_bucket': ['cast-partner-sigmadesign-tv'], |
| }, |
| 'dragonfly-user': { |
| 'build_flavor': 'release', |
| 'partner_bucket': ['cast-partner-sigmadesign-tv'], |
| }, |
| 'elaine-eng': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.ELAINE_RESIGN, |
| 'factory': ota_resign_step.ELAINE_FACTORY, |
| 'usbstick': ota_resign_step.ELAINE_USBSTICK, |
| 'clean_steps': [], |
| 'partner_bucket': [ |
| 'cast-partner-amlogic-internal', 'cast-partner-broadcom-internal' |
| ], |
| 'eng_build': True, |
| }, |
| 'elaine-user': { |
| 'build_flavor': |
| 'release', |
| 'resign': |
| ota_resign_step.ELAINE_RESIGN, |
| 'clean_steps': [], |
| 'partner_bucket': [ |
| 'cast-partner-amlogic-internal', 'cast-partner-broadcom-internal' |
| ], |
| }, |
| 'elaine-fuchsia-user': { |
| 'build_flavor': 'release', |
| 'board_name': 'elaine-b3', |
| 'resign': ota_resign_step.ELAINE_FUCHSIA_RESIGN, |
| 'clean_steps': [], |
| 'default_properties': { |
| 'fuchsia_sync': True, |
| }, |
| }, |
| 'estelle-eng': { |
| 'build_flavor': |
| 'release', |
| 'resign': |
| ota_resign_step.ESTELLE_RESIGN, |
| 'factory': |
| ota_resign_step.ESTELLE_FACTORY, |
| 'usbstick': |
| ota_resign_step.ESTELLE_USBSTICK, |
| 'partner_bucket': [ |
| 'cast-partner-amlogic-internal', 'cast-partner-broadcom-internal' |
| ], |
| }, |
| 'estelle-health-eng': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.ESTELLE_RESIGN, |
| 'factory': ota_resign_step.ESTELLE_FACTORY, |
| }, |
| 'estelle-health-user': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.ESTELLE_RESIGN, |
| }, |
| 'estelle-ml_framework-eng': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.ESTELLE_RESIGN, |
| }, |
| 'estelle-opal-eng': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.ESTELLE_RESIGN, |
| 'factory': ota_resign_step.ESTELLE_FACTORY, |
| }, |
| 'estelle-opal-user': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.ESTELLE_RESIGN, |
| }, |
| 'estelle-fuchsia-eng': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.ESTELLE_FUCHSIA_RESIGN, |
| 'default_properties': { |
| 'fuchsia_sync': True, |
| }, |
| }, |
| 'estelle-fuchsia-user': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.ESTELLE_FUCHSIA_RESIGN, |
| 'default_properties': { |
| 'fuchsia_sync': True, |
| }, |
| }, |
| 'estelle-sdm-eng': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.ESTELLE_RESIGN, |
| 'factory': ota_resign_step.ESTELLE_FACTORY, |
| }, |
| 'estelle-sdm-user': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.ESTELLE_RESIGN, |
| }, |
| 'estelle-user': { |
| 'build_flavor': |
| 'release', |
| 'max_ota_size': |
| 170000000, |
| 'resign': |
| ota_resign_step.ESTELLE_RESIGN, |
| 'partner_bucket': [ |
| 'cast-partner-amlogic-internal', 'cast-partner-broadcom-internal' |
| ], |
| }, |
| 'korlan-eng': { |
| 'build_flavor': 'release', |
| 'board_name': 'korlan-b1', |
| 'max_ota_size': 43000000, |
| 'resign': ota_resign_step.KORLAN_RESIGN, |
| 'factory': ota_resign_step.KORLAN_FACTORY, |
| 'usbstick': ota_resign_step.KORLAN_USBSTICK, |
| 'factory_tool': ota_resign_step.KORLAN_FACTORY_TOOL, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| }, |
| 'korlan-user': { |
| 'build_flavor': 'release', |
| 'max_ota_size': 40000000, |
| 'resign': ota_resign_step.KORLAN_RESIGN, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| }, |
| 'lumia-eng': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.LUMIA_RESIGN, |
| 'factory': ota_resign_step.LUMIA_FACTORY, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| }, |
| 'lumia-user': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.LUMIA_RESIGN, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| }, |
| 'swift-demo-eng': { |
| 'build_flavor': 'release', |
| 'board_name': 'swift-p2', |
| 'resign': ota_resign_step.SWIFT_RESIGN, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| }, |
| 'swift-demo-user': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.SWIFT_RESIGN, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| }, |
| 'swift-eng': { |
| 'build_flavor': 'release', |
| 'board_name': 'swift-p2', |
| 'resign': ota_resign_step.SWIFT_RESIGN, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| }, |
| 'swift-user': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.SWIFT_RESIGN, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| }, |
| 'goertek-9eh4-partner-eng': { |
| 'build_name': 'swift-partner-eng', |
| 'build_flavor': 'release', |
| 'build_extra_params': ['PARTNER_BUILD=true', 'CORE_DEV_BUILD=true'], |
| # Disable build accelerator because |
| # JDM doesn't have the ability to enable RBE. |
| 'enable_build_accelerator': False, |
| 'resign': ota_resign_step.GTK_9EH4_RESIGN, |
| 'factory': ota_resign_step.GTK_9EH4_FACTORY, |
| 'factory_extra_params': [ |
| 'CORE_DEV_BUILD=true', |
| 'FCT_DEVICE_DIR=vendor/goertek/swift', |
| 'FCT_FILES_PATH=/home/goertek/bin' |
| ], |
| 'skip_ota_tests': True, |
| 'skip_gncheck': True, |
| }, |
| 'gq-eng': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.GQ_RESIGN, |
| 'factory': ota_resign_step.GQ_FACTORY, |
| 'usbstick': ota_resign_step.GQ_USBSTICK, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| 'branch_extra_params': { |
| '1.49qfsi_retail': ['RETAIL_DEMO_BUILD=true'], |
| }, |
| 'check_camera_targets': True, |
| 'eng_build': True, |
| }, |
| 'gq-skip_gncheck-eng': { |
| 'build_name': 'gq-eng', |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.GQ_RESIGN, |
| 'factory': ota_resign_step.GQ_FACTORY, |
| 'usbstick': ota_resign_step.GQ_USBSTICK, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| 'branch_extra_params': { |
| '1.49qfsi_retail': ['RETAIL_DEMO_BUILD=true'], |
| }, |
| 'check_camera_targets': True, |
| 'eng_build': True, |
| 'skip_gncheck': True, |
| 'build_extra_params': ['ENABLE_GN_CHECK=1'], |
| }, |
| 'gq-user': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.GQ_RESIGN, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| 'branch_extra_params': { |
| '1.49qfsi_retail': ['RETAIL_DEMO_BUILD=true'], |
| }, |
| 'check_camera_targets': True, |
| }, |
| 'mozart-eng': { |
| 'build_flavor': 'release', |
| 'partner_bucket': ['cast-partner-mediatek-audio'], |
| }, |
| 'mushroom-eng': { |
| 'build_flavor': 'release', |
| 'max_ota_size': 115000000, |
| 'resign': ota_resign_step.MUSHROOM_RESIGN, |
| 'factory': ota_resign_step.MUSHROOM_FACTORY, |
| 'usbstick': ota_resign_step.MUSHROOM_USBSTICK, |
| 'partner_bucket': ['cast-partner-synaptics-internal'], |
| }, |
| 'mushroom-sdm-eng': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.MUSHROOM_RESIGN, |
| 'factory': ota_resign_step.MUSHROOM_FACTORY, |
| }, |
| 'mushroom-sdm-user': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.MUSHROOM_RESIGN, |
| }, |
| 'mushroom-user': { |
| 'build_flavor': 'release', |
| 'max_ota_size': 115000000, |
| 'resign': ota_resign_step.MUSHROOM_RESIGN, |
| 'partner_bucket': ['cast-partner-synaptics-internal'], |
| 'branch_extra_params': { |
| '1.40rd': ['RETAIL_DEMO_BUILD=true'], |
| }, |
| }, |
| 'newman-eng': { |
| 'build_flavor': 'release', |
| 'board_name': 'newman-b3', |
| 'resign': ota_resign_step.NEWMAN_RESIGN_ENG, |
| 'factory': ota_resign_step.NEWMAN_FACTORY, |
| 'usbstick': ota_resign_step.NEWMAN_USBSTICK, |
| 'partner_bucket': [ |
| 'cast-partner-amlogic-internal', 'cast-partner-broadcom-internal' |
| ], |
| 'test_board_name': 'newman-b3', |
| }, |
| 'newman-eng_legacy': { |
| 'build_flavor': 'release', |
| 'board_name': 'newman-b3', |
| 'resign': ota_resign_step.NEWMAN_RESIGN_ENG, |
| 'factory': ota_resign_step.NEWMAN_FACTORY, |
| 'partner_bucket': [ |
| 'cast-partner-amlogic-internal', 'cast-partner-broadcom-internal' |
| ], |
| 'test_board_name': 'newman-b3', |
| }, |
| 'newman-fuchsia-user': { |
| 'build_flavor': 'release', |
| 'board_name': 'newman-b3', |
| 'resign': ota_resign_step.NEWMAN_FUCHSIA_RESIGN, |
| 'default_properties': { |
| 'fuchsia_sync': True, |
| }, |
| 'test_board_name': 'newman-b3', |
| }, |
| 'newman-fuchsia_rev-eng': { |
| 'build_flavor': 'release', |
| 'board_name': 'newman-b3', |
| 'resign': ota_resign_step.NEWMAN_FUCHSIA_RESIGN, |
| 'default_properties': { |
| 'fuchsia_sync': True, |
| }, |
| 'test_board_name': 'newman-b3', |
| }, |
| 'newman-fuchsia_rev-user': { |
| 'build_flavor': 'release', |
| 'board_name': 'newman-b3', |
| 'resign': ota_resign_step.NEWMAN_FUCHSIA_RESIGN, |
| 'default_properties': { |
| 'fuchsia_sync': True, |
| }, |
| 'test_board_name': 'newman-b3', |
| }, |
| 'newman-user': { |
| 'build_flavor': 'release', |
| 'board_name': 'newman-b3', |
| 'resign': ota_resign_step.NEWMAN_RESIGN, |
| 'partner_bucket': [ |
| 'cast-partner-amlogic-internal', 'cast-partner-broadcom-internal' |
| ], |
| 'test_board_name': 'newman-b3', |
| }, |
| 'newman-modular_comms-user': { |
| 'build_flavor': 'release', |
| 'board_name': 'newman-b3', |
| 'resign': ota_resign_step.NEWMAN_RESIGN, |
| 'test_board_name': 'newman-b3', |
| }, |
| 'nq-eng': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.NQ_RESIGN, |
| 'factory': ota_resign_step.NQ_FACTORY, |
| 'usbstick': ota_resign_step.NQ_USBSTICK, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| 'check_camera_targets': True, |
| 'eng_build': True, |
| }, |
| 'nq-skip_gncheck-eng': { |
| 'build_name': 'nq-eng', |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.NQ_RESIGN, |
| 'factory': ota_resign_step.NQ_FACTORY, |
| 'usbstick': ota_resign_step.NQ_USBSTICK, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| 'check_camera_targets': True, |
| 'eng_build': True, |
| 'skip_gncheck': True, |
| 'build_extra_params': ['ENABLE_GN_CHECK=1'], |
| }, |
| 'nq-user': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.NQ_RESIGN, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| 'check_camera_targets': True, |
| }, |
| 'np8340-eng': { |
| 'build_flavor': 'release', |
| }, |
| 'np8340-user': { |
| 'build_flavor': 'release', |
| }, |
| 'pepperoni-eng': { |
| 'build_flavor': |
| 'release', |
| 'resign': |
| ota_resign_step.PEPPERONI_RESIGN, |
| 'partner_bucket': [ |
| 'cast-partner-marvell-internal', |
| 'cast-partner-synaptics-internal', |
| ], |
| }, |
| 'pepperoni-user': { |
| 'build_flavor': |
| 'release', |
| 'resign': |
| ota_resign_step.PEPPERONI_RESIGN, |
| 'partner_bucket': [ |
| 'cast-partner-marvell-internal', |
| 'cast-partner-synaptics-internal', |
| ], |
| }, |
| 'pineapple-eng': { |
| 'build_flavor': |
| 'release', |
| 'max_ota_size': |
| 115000000, |
| 'resign': |
| ota_resign_step.PINEAPPLE_RESIGN, |
| 'factory': |
| ota_resign_step.PINEAPPLE_FACTORY, |
| 'usbstick': |
| ota_resign_step.PINEAPPLE_USBSTICK, |
| 'partner_bucket': [ |
| 'cast-partner-marvell-internal', |
| 'cast-partner-synaptics-internal', |
| ], |
| }, |
| 'pineapple-user': { |
| 'build_flavor': 'release', |
| 'max_ota_size': 115000000, |
| 'resign': ota_resign_step.PINEAPPLE_RESIGN, |
| 'partner_bucket': [ |
| 'cast-partner-marvell-internal', |
| 'cast-partner-synaptics-internal', |
| ], |
| 'branch_extra_params': { |
| '1.40rd': ['RETAIL_DEMO_BUILD=true'], |
| }, |
| }, |
| 'pineapple-sdm-eng': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.PINEAPPLE_RESIGN, |
| 'factory': ota_resign_step.PINEAPPLE_FACTORY, |
| }, |
| 'pineapple-sdm-user': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.PINEAPPLE_RESIGN, |
| }, |
| 'prince-demo-eng': { |
| 'build_flavor': 'release', |
| 'board_name': 'prince-p2', |
| 'resign': ota_resign_step.PRINCE_RESIGN, |
| 'test_board_name': 'prince-p2', |
| }, |
| 'prince-demo-user': { |
| 'build_flavor': 'release', |
| 'board_name': 'prince-p2', |
| 'resign': ota_resign_step.PRINCE_RESIGN, |
| 'test_board_name': 'prince-p2', |
| }, |
| 'prince-iot_cast-eng': { |
| 'build_flavor': |
| 'release', |
| 'board_name': |
| 'prince-p2', |
| 'resign': |
| ota_resign_step.PRINCE_RESIGN, |
| 'factory': |
| ota_resign_step.PRINCE_FACTORY, |
| 'usbstick': |
| ota_resign_step.PRINCE_USBSTICK, |
| 'factory_tool': |
| ota_resign_step.PRINCE_FACTORY_TOOL, |
| 'test_board_name': |
| 'prince-p2', |
| 'partner_bucket': [ |
| 'cast-partner-marvell-internal', |
| 'cast-partner-synaptics-internal', |
| ], |
| 'make_clean': True, |
| }, |
| 'prince-iot_cast-user': { |
| 'build_flavor': |
| 'release', |
| 'board_name': |
| 'prince-p2', |
| 'resign': |
| ota_resign_step.PRINCE_RESIGN, |
| 'test_board_name': |
| 'prince-p2', |
| 'partner_bucket': [ |
| 'cast-partner-marvell-internal', |
| 'cast-partner-synaptics-internal', |
| ], |
| 'make_clean': True, |
| }, |
| 'prince-eng': { |
| 'build_flavor': |
| 'release', |
| 'board_name': |
| 'prince-p2', |
| 'resign': |
| ota_resign_step.PRINCE_RESIGN, |
| 'factory': |
| ota_resign_step.PRINCE_FACTORY, |
| 'usbstick': |
| ota_resign_step.PRINCE_USBSTICK, |
| 'factory_tool': |
| ota_resign_step.PRINCE_FACTORY_TOOL, |
| 'test_board_name': |
| 'prince-p2', |
| 'partner_bucket': [ |
| 'cast-partner-marvell-internal', |
| 'cast-partner-synaptics-internal', |
| ], |
| }, |
| 'prince-user': { |
| 'build_flavor': |
| 'release', |
| 'board_name': |
| 'prince-p2', |
| 'resign': |
| ota_resign_step.PRINCE_RESIGN, |
| 'test_board_name': |
| 'prince-p2', |
| 'partner_bucket': [ |
| 'cast-partner-marvell-internal', |
| 'cast-partner-synaptics-internal', |
| ], |
| }, |
| 'salami-eng': { |
| 'build_flavor': |
| 'release', |
| 'resign': |
| ota_resign_step.SALAMI_RESIGN, |
| 'partner_bucket': [ |
| 'cast-partner-marvell-internal', |
| 'cast-partner-synaptics-internal', |
| ], |
| }, |
| 'salami-user': { |
| 'build_flavor': |
| 'release', |
| 'resign': |
| ota_resign_step.SALAMI_RESIGN, |
| 'partner_bucket': [ |
| 'cast-partner-marvell-internal', |
| 'cast-partner-synaptics-internal', |
| ], |
| }, |
| 'sirocco-eng': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.SIROCCO_RESIGN, |
| 'factory': ota_resign_step.SIROCCO_FACTORY, |
| 'usbstick': ota_resign_step.SIROCCO_USBSTICK, |
| 'factory_tool': ota_resign_step.SIROCCO_FACTORY_TOOL, |
| 'partner_bucket': ['cast-partner-qualcomm-internal'], |
| 'skip_ota_tests': True, |
| }, |
| 'sirocco-user': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.SIROCCO_RESIGN, |
| 'partner_bucket': ['cast-partner-qualcomm-internal'], |
| 'skip_ota_tests': True, |
| }, |
| 'sirocco-partner-eng': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.SIROCCO_RESIGN, |
| 'partner_bucket': ['cast-partner-qualcomm-internal'], |
| 'branch_extra_params': { |
| 'master': ['PARTNER_BUILD=true'], |
| }, |
| 'skip_ota_tests': True, |
| }, |
| 'spencer-eng': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.SPENCER_RESIGN, |
| 'factory': ota_resign_step.SPENCER_FACTORY, |
| 'usbstick': ota_resign_step.SPENCER_USBSTICK, |
| 'factory_tool': ota_resign_step.SPENCER_FACTORY_TOOL, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| 'check_camera_targets': True, |
| 'eng_build': True, |
| }, |
| 'spencer-skip_gncheck-eng': { |
| 'build_name': 'spencer-eng', |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.SPENCER_RESIGN, |
| 'factory': ota_resign_step.SPENCER_FACTORY, |
| 'usbstick': ota_resign_step.SPENCER_USBSTICK, |
| 'factory_tool': ota_resign_step.SPENCER_FACTORY_TOOL, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| 'check_camera_targets': True, |
| 'eng_build': True, |
| 'skip_gncheck': True, |
| 'build_extra_params': ['ENABLE_GN_CHECK=1'], |
| }, |
| 'spencer-user': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.SPENCER_RESIGN, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| 'check_camera_targets': True, |
| }, |
| 'a049-eng': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.A049_RESIGN, |
| 'factory': ota_resign_step.A049_FACTORY, |
| 'usbstick': ota_resign_step.A049_USBSTICK, |
| 'factory_tool': ota_resign_step.A049_FACTORY_TOOL, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| 'check_camera_targets': True, |
| 'eng_build': True, |
| }, |
| 'a049-user': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.A049_RESIGN, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| 'check_camera_targets': True, |
| }, |
| 'sprinkles-eng': { |
| 'build_flavor': 'release', |
| 'board_name': 'sprinkles-korlan', |
| 'max_ota_size': 43000000, |
| 'resign': ota_resign_step.SPRINKLES_RESIGN, |
| 'factory': ota_resign_step.SPRINKLES_FACTORY, |
| 'usbstick': ota_resign_step.SPRINKLES_USBSTICK, |
| 'factory_tool': ota_resign_step.SPRINKLES_FACTORY_TOOL, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| }, |
| 'sprinkles-user': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.SPRINKLES_RESIGN, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| }, |
| 'steak-eng': { |
| 'build_flavor': |
| 'release', |
| 'resign': |
| ota_resign_step.STEAK_RESIGN, |
| 'factory': |
| ota_resign_step.STEAK_FACTORY, |
| 'usbstick': |
| ota_resign_step.STEAK_USBSTICK, |
| 'partner_bucket': [ |
| 'cast-partner-marvell-internal', |
| 'cast-partner-synaptics-internal', |
| ], |
| }, |
| 'steak-user': { |
| 'build_flavor': |
| 'release', |
| 'max_ota_size': |
| 104000000, |
| 'resign': |
| ota_resign_step.STEAK_RESIGN, |
| 'partner_bucket': [ |
| 'cast-partner-marvell-internal', |
| 'cast-partner-synaptics-internal', |
| ], |
| }, |
| 'steak-yeti-eng': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.STEAK_RESIGN, |
| 'factory': ota_resign_step.STEAK_FACTORY, |
| }, |
| 'steak-yeti-user': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.STEAK_RESIGN, |
| }, |
| 'tvdefault-eng': { |
| 'build_flavor': 'release', |
| }, |
| 'tvdefault-user': { |
| 'build_flavor': 'release', |
| }, |
| 'valens-iot_cast-eng': { |
| 'build_flavor': |
| 'release', |
| 'board_name': |
| 'valens-b1', |
| 'max_ota_size': |
| 155000000, |
| 'resign': |
| ota_resign_step.VALENS_RESIGN, |
| 'factory': |
| ota_resign_step.VALENS_FACTORY, |
| 'unand': |
| ota_resign_step.VALENS_UNAND, |
| 'usbstick': |
| ota_resign_step.VALENS_USBSTICK, |
| 'test_board_name': |
| 'valens-b1', |
| 'partner_bucket': [ |
| 'cast-partner-marvell-internal', |
| 'cast-partner-synaptics-internal', |
| ], |
| 'make_clean': True, |
| }, |
| 'valens-iot_cast-user': { |
| 'build_flavor': |
| 'release', |
| 'board_name': |
| 'valens-b1', |
| 'max_ota_size': |
| 130000000, |
| 'resign': |
| ota_resign_step.VALENS_RESIGN, |
| 'test_board_name': |
| 'valens-b1', |
| 'partner_bucket': [ |
| 'cast-partner-marvell-internal', |
| 'cast-partner-synaptics-internal', |
| ], |
| 'make_clean': True, |
| }, |
| 'valens-eng': { |
| 'build_flavor': |
| 'release', |
| 'board_name': |
| 'valens-b1', |
| 'max_ota_size': |
| 155000000, |
| 'resign': |
| ota_resign_step.VALENS_RESIGN, |
| 'factory': |
| ota_resign_step.VALENS_FACTORY, |
| 'unand': |
| ota_resign_step.VALENS_UNAND, |
| 'usbstick': |
| ota_resign_step.VALENS_USBSTICK, |
| 'test_board_name': |
| 'valens-b1', |
| 'partner_bucket': [ |
| 'cast-partner-marvell-internal', |
| 'cast-partner-synaptics-internal', |
| ], |
| }, |
| 'valens-modular_comms-eng': { |
| 'build_flavor': 'release', |
| 'board_name': 'valens-b1', |
| 'max_ota_size': 155000000, |
| 'resign': ota_resign_step.VALENS_RESIGN, |
| 'test_board_name': 'valens-b1', |
| }, |
| 'valens-user': { |
| 'build_flavor': |
| 'release', |
| 'board_name': |
| 'valens-b1', |
| 'max_ota_size': |
| 130000000, |
| 'resign': |
| ota_resign_step.VALENS_RESIGN, |
| 'test_board_name': |
| 'valens-b1', |
| 'partner_bucket': [ |
| 'cast-partner-marvell-internal', |
| 'cast-partner-synaptics-internal', |
| ], |
| }, |
| 'vento-eng': { |
| 'build_flavor': |
| 'release', |
| 'board_name': |
| 'vento-b3', |
| 'max_ota_size': |
| 158000000, |
| 'factory': |
| ota_resign_step.VENTO_FACTORY, |
| 'unand': |
| ota_resign_step.VENTO_UNAND, |
| 'resign': |
| ota_resign_step.VENTO_RESIGN, |
| 'test_board_name': |
| 'vento-b3', |
| 'partner_bucket': [ |
| 'cast-partner-qca-wireless', |
| 'cast-partner-synaptics-internal', |
| ], |
| }, |
| 'vento-user': { |
| 'build_flavor': |
| 'release', |
| 'board_name': |
| 'vento-b3', |
| 'max_ota_size': |
| 133000000, |
| 'resign': |
| ota_resign_step.VENTO_RESIGN, |
| 'test_board_name': |
| 'vento-b3', |
| 'partner_bucket': [ |
| 'cast-partner-qca-wireless', |
| 'cast-partner-synaptics-internal', |
| ], |
| }, |
| 'venus-eng': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.VENUS_RESIGN, |
| 'factory': ota_resign_step.VENUS_FACTORY, |
| 'factory_tool': ota_resign_step.VENUS_FACTORY_TOOL, |
| 'usbstick': ota_resign_step.VENUS_USBSTICK, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| 'check_camera_targets': True, |
| 'eng_build': True, |
| }, |
| 'venus-skip_gncheck-eng': { |
| 'build_name': 'venus-eng', |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.VENUS_RESIGN, |
| 'factory': ota_resign_step.VENUS_FACTORY, |
| 'factory_tool': ota_resign_step.VENUS_FACTORY_TOOL, |
| 'usbstick': ota_resign_step.VENUS_USBSTICK, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| 'check_camera_targets': True, |
| 'eng_build': True, |
| 'skip_gncheck': True, |
| 'build_extra_params': ['ENABLE_GN_CHECK=1'], |
| }, |
| 'venus-user': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.VENUS_RESIGN, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| 'check_camera_targets': True, |
| }, |
| 'bsv3-eng': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.BSV3_RESIGN, |
| 'factory': ota_resign_step.BSV3_FACTORY, |
| 'factory_tool': ota_resign_step.BSV3_FACTORY_TOOL, |
| 'usbstick': ota_resign_step.BSV3_USBSTICK, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| 'check_camera_targets': True, |
| 'eng_build': True, |
| }, |
| 'bsv3-user': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.BSV3_RESIGN, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| 'check_camera_targets': True, |
| }, |
| 'bla4-partner-eng': { |
| 'build_flavor': 'release', |
| 'build_extra_params': ['PARTNER_BUILD=true', 'CORE_DEV_BUILD=true'], |
| 'resign': ota_resign_step.BLA4_RESIGN, |
| # make clean before build bla4 targets. |
| # It's because the toolchain is different from other products. |
| # Therefore, make clean to avoid using the same intermediate artifacts. |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| 'skip_ota_tests': True, |
| }, |
| 'bla4-eng': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.BLA4_RESIGN, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| }, |
| 'bla4-user': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.BLA4_RESIGN, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| }, |
| '2rs4-partner-eng': { |
| 'build_flavor': 'release', |
| 'build_extra_params': ['PARTNER_BUILD=true', 'CORE_DEV_BUILD=true'], |
| 'resign': ota_resign_step._2RS4_RESIGN, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| 'skip_ota_tests': True, |
| }, |
| '2rs4-eng': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step._2RS4_RESIGN, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| }, |
| '2rs4-user': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step._2RS4_RESIGN, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| }, |
| 'xua4-partner-eng': { |
| 'build_flavor': 'release', |
| 'build_extra_params': ['PARTNER_BUILD=true', 'CORE_DEV_BUILD=true'], |
| 'resign': ota_resign_step.XUA4_RESIGN, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| 'skip_ota_tests': True, |
| }, |
| 'xua4-eng': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.XUA4_RESIGN, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| }, |
| 'xua4-user': { |
| 'build_flavor': 'release', |
| 'resign': ota_resign_step.XUA4_RESIGN, |
| 'partner_bucket': ['cast-partner-amlogic-internal'], |
| }, |
| 'amlogic-bla4-partner-eng': { |
| 'build_name': 'bla4-partner-eng', |
| 'build_flavor': 'release', |
| 'build_extra_params': ['PARTNER_BUILD=true', 'CORE_DEV_BUILD=true'], |
| # Disable build accelerator because |
| # JDM doesn't have the ability to enable RBE. |
| 'enable_build_accelerator': False, |
| 'resign': ota_resign_step.BLA4_RESIGN, |
| 'skip_ota_tests': True, |
| 'skip_gncheck': True, |
| }, |
| 'infineon-bla4-partner-eng': { |
| 'build_name': 'bla4-partner-eng', |
| 'build_flavor': 'release', |
| 'build_extra_params': ['PARTNER_BUILD=true', 'CORE_DEV_BUILD=true'], |
| # Disable build accelerator because |
| # JDM doesn't have the ability to enable RBE. |
| 'enable_build_accelerator': False, |
| 'resign': ota_resign_step.BLA4_RESIGN, |
| 'skip_ota_tests': True, |
| 'skip_gncheck': True, |
| }, |
| 'sercomm-bla4-partner-eng': { |
| 'build_name': 'bla4-partner-eng', |
| 'build_flavor': 'release', |
| 'build_extra_params': ['PARTNER_BUILD=true', 'CORE_DEV_BUILD=true'], |
| # Disable build accelerator because |
| # JDM doesn't have the ability to enable RBE. |
| 'enable_build_accelerator': False, |
| 'resign': ota_resign_step.BLA4_RESIGN, |
| 'factory': ota_resign_step.BLA4_FACTORY, |
| 'factory_extra_params': ['CORE_DEV_BUILD=true', 'FCT_DEVICE_DIR=vendor/sercomm/bla4', 'FCT_FILES_PATH=/home/sercomm/bin'], |
| 'skip_ota_tests': True, |
| 'skip_gncheck': True, |
| }, |
| 'amlogic-2rs4-partner-eng': { |
| 'build_name': '2rs4-partner-eng', |
| 'build_flavor': 'release', |
| 'build_extra_params': ['PARTNER_BUILD=true', 'CORE_DEV_BUILD=true'], |
| # Disable build accelerator because |
| # JDM doesn't have the ability to enable RBE. |
| 'enable_build_accelerator': False, |
| 'resign': ota_resign_step._2RS4_RESIGN, |
| 'skip_ota_tests': True, |
| 'skip_gncheck': True, |
| }, |
| 'infineon-2rs4-partner-eng': { |
| 'build_name': '2rs4-partner-eng', |
| 'build_flavor': 'release', |
| 'build_extra_params': ['PARTNER_BUILD=true', 'CORE_DEV_BUILD=true'], |
| # Disable build accelerator because |
| # JDM doesn't have the ability to enable RBE. |
| 'enable_build_accelerator': False, |
| 'resign': ota_resign_step._2RS4_RESIGN, |
| 'skip_ota_tests': True, |
| 'skip_gncheck': True, |
| }, |
| 'sercomm-2rs4-partner-eng': { |
| 'build_name': '2rs4-partner-eng', |
| 'build_flavor': 'release', |
| 'build_extra_params': ['PARTNER_BUILD=true', 'CORE_DEV_BUILD=true'], |
| # Disable build accelerator because |
| # JDM doesn't have the ability to enable RBE. |
| 'enable_build_accelerator': False, |
| 'resign': ota_resign_step._2RS4_RESIGN, |
| 'factory': ota_resign_step._2RS4_FACTORY, |
| 'factory_extra_params': ['CORE_DEV_BUILD=true', 'FCT_DEVICE_DIR=vendor/sercomm/2rs4', 'FCT_FILES_PATH=/home/sercomm/bin'], |
| 'skip_ota_tests': True, |
| 'skip_gncheck': True, |
| }, |
| 'amlogic-xua4-partner-eng': { |
| 'build_name': 'xua4-partner-eng', |
| 'build_flavor': 'release', |
| 'build_extra_params': ['PARTNER_BUILD=true', 'CORE_DEV_BUILD=true'], |
| # Disable build accelerator because |
| # JDM doesn't have the ability to enable RBE. |
| 'enable_build_accelerator': False, |
| 'resign': ota_resign_step.XUA4_RESIGN, |
| 'skip_ota_tests': True, |
| 'skip_gncheck': True, |
| }, |
| 'infineon-xua4-partner-eng': { |
| 'build_name': 'xua4-partner-eng', |
| 'build_flavor': 'release', |
| 'build_extra_params': ['PARTNER_BUILD=true', 'CORE_DEV_BUILD=true'], |
| # Disable build accelerator because |
| # JDM doesn't have the ability to enable RBE. |
| 'enable_build_accelerator': False, |
| 'resign': ota_resign_step.XUA4_RESIGN, |
| 'skip_ota_tests': True, |
| 'skip_gncheck': True, |
| }, |
| 'sercomm-xua4-partner-eng': { |
| 'build_name': 'xua4-partner-eng', |
| 'build_flavor': 'release', |
| 'build_extra_params': ['PARTNER_BUILD=true', 'CORE_DEV_BUILD=true'], |
| # Disable build accelerator because |
| # JDM doesn't have the ability to enable RBE. |
| 'enable_build_accelerator': False, |
| 'resign': ota_resign_step.XUA4_RESIGN, |
| 'factory': ota_resign_step.XUA4_FACTORY, |
| 'factory_extra_params': ['CORE_DEV_BUILD=true', 'FCT_DEVICE_DIR=vendor/sercomm/xua4', 'FCT_FILES_PATH=/home/sercomm/bin'], |
| 'skip_ota_tests': True, |
| 'skip_gncheck': True, |
| }, |
| } |
| |
| SKIP_OTA_TESTS_BRANCH = [ |
| '1.55sfsi', |
| '1.57q', |
| ] |
| |
| for phoenix_schema_build in PHOENIX_SCHEMA_BUILDS: |
| BUILD_CONFIGS[phoenix_schema_build.replace('-', ota_step.GANETI_TAG)] = ( |
| BUILD_CONFIGS[phoenix_schema_build]) |
| |
| # TODO(b/117437843) Remove prod after migtation completion |
| PARTNER_ARCHIVE_BUCKET_STAGING_BUCKET = { |
| 'prod': 'cast-partner-staging', |
| 'staging': 'cast-partner-staging', |
| 'dev': 'cast-partner-dev', |
| } |
| |
| PARTNER_BUILDS = {'audiodefault-eng'} |
| |
| OSS_SUPPORT_MIN_BRANCH = '1.10' |
| OSS_SUPPORT_BUILDER_PREFIX_WHITELIST = 'combined-sdk-kernel-bootloader' |
| |
| FACTORY_SUPPORT_MIN_BRANCH = '1.21' |
| FACTORY_TOOL_SUPPORT_MIN_BRANCH = '1.37' |
| |
| CAMERA_TARGET_CHECK_MIN_BRANCH = '1.57' |
| |
| USONIA_DAEMON_CHECK_MIN_BRANCH = '1.61' |
| THREAD_TELEMETRY_SERVICE_CROS_CHECK_MIN_BRANCH = '1.61' |
| |
| |
| def GetValidBuildNames(): |
| return list(BUILD_CONFIGS.keys()) |
| |
| |
| def CreateRecipe(build_name: str, **kwargs): |
| """Builds a recipe object.""" |
| return OtaRecipe(build_name, BUILD_CONFIGS[build_name], **kwargs) |
| |
| |
| class OtaRecipe(base_recipe.BaseRecipe): |
| """Recipe to run an ota build.""" |
| |
| def __init__(self, build_name, build_config, **kwargs): |
| self._build_name = build_name |
| self._build_config = build_config |
| enable_build_accelerator = True |
| if 'enable_build_accelerator' in self._build_config: |
| enable_build_accelerator = \ |
| self._build_config['enable_build_accelerator'] |
| base_recipe.BaseRecipe.__init__( |
| self, enable_build_accelerator=enable_build_accelerator, **kwargs) |
| # Extracts default_properties from build config and adds it to the overall |
| # properties. |
| default_properties = build_config.get('default_properties', {}) |
| self._step_kwargs['properties'] = dict( |
| list(default_properties.items()) + |
| list(self._step_kwargs.get('properties', {}).items())) |
| self._skip_landmine = self.build_system == 'catabuilder' |
| |
| if self.build_system == 'catabuilder': |
| self._skip_gncheck = True |
| elif 'skip_gncheck' in self._build_config: |
| self._skip_gncheck = self._build_config['skip_gncheck'] |
| else: |
| self._skip_gncheck = False |
| |
| if 'make_clean' in self._build_config: |
| self._make_clean = self._build_config['make_clean'] |
| |
| if 'build_name' in self._build_config: |
| self._build_name = self._build_config['build_name'] |
| |
| def _oss_run_condition(self): |
| if self.build_system != 'catabuilder': |
| return False |
| if self._builds_usonia_daemon(): |
| return False |
| if self._build_name.startswith(OSS_SUPPORT_BUILDER_PREFIX_WHITELIST): |
| return True |
| if not self._build_name.endswith('-user'): |
| return False |
| |
| # Here we check whether the existing branch is > the |
| # OSS_SUPPORT_MIN_BRANCH which has support for OSS on the |
| # dev side. If there is non-dot-release branch or we are less |
| # than this supported branch, trivially return. |
| return (branch_utils.is_release_branch(self._manifest_branch) and |
| branch_utils.is_branch_equal_to_or_later_than( |
| self._manifest_branch, OSS_SUPPORT_MIN_BRANCH)) |
| |
| def _fct_run_condition(self): |
| if 'factory' not in self._build_config: |
| return False |
| return branch_utils.is_branch_equal_to_or_later_than( |
| self._manifest_branch, FACTORY_SUPPORT_MIN_BRANCH) |
| |
| def _usbstick_run_condition(self): |
| if 'usbstick' not in self._build_config: |
| return False |
| return branch_utils.is_branch_equal_to_or_later_than( |
| self._manifest_branch, FACTORY_SUPPORT_MIN_BRANCH) |
| |
| def _factory_tool_run_condition(self): |
| if 'factory_tool' not in self._build_config: |
| return False |
| return branch_utils.is_branch_equal_to_or_later_than( |
| self._manifest_branch, FACTORY_TOOL_SUPPORT_MIN_BRANCH) |
| |
| def _ota_extra_params(self): |
| return self._build_config.get( |
| 'build_extra_params', [] |
| ) + self._build_config.get('branch_extra_params', {}).get( |
| self._manifest_branch, [] |
| ) |
| |
| def _fct_extra_params(self): |
| return self._build_config.get( |
| 'factory_extra_params', [] |
| ) |
| |
| def get_clean_steps(self): |
| """Builds a list of all clean steps that should be executed by this recipe. |
| |
| Returns: |
| List of slave.base_step.BaseStep commands to be executed. |
| """ |
| return [make_clean_step.MakeCleanStep(**self._step_kwargs)] |
| |
| def _camera_target_check_condition(self): |
| return (self._build_config.get('check_camera_targets', False) |
| and branch_utils.is_branch_equal_to_or_later_than( |
| self._manifest_branch, CAMERA_TARGET_CHECK_MIN_BRANCH)) |
| |
| def _builds_usonia_daemon(self): |
| return (self._build_config.get('build_usonia_daemon', False) |
| and branch_utils.is_branch_equal_to_or_later_than( |
| self._manifest_branch, USONIA_DAEMON_CHECK_MIN_BRANCH)) |
| |
| def _builds_thread_telemetry_service_cros(self): |
| return (self._build_config.get( |
| 'build_thread_telemetry_service_cros', False) and |
| branch_utils.is_branch_equal_to_or_later_than( |
| self._manifest_branch, USONIA_DAEMON_CHECK_MIN_BRANCH)) |
| |
| def get_steps(self): |
| steps = [] |
| |
| if not self._skip_landmine: |
| steps.append(landmine_step.LandmineStep(**self._step_kwargs)) |
| if not self._skip_gncheck and not self._builds_usonia_daemon() \ |
| and not self._builds_thread_telemetry_service_cros(): |
| steps.append( |
| gn_check_step.GnCheckForOta(self._build_name, **self._step_kwargs)) |
| |
| board_name = self._build_config.get('board_name') |
| apply_dev_signing = self.build_system == 'catabuilder' |
| max_ota_size = self._build_config.get('max_ota_size') |
| target_name = self._build_config.get('target_name') |
| steps.append( |
| ota_step.OtaStep( |
| self._build_name, |
| board_name=board_name, |
| extra_params=self._ota_extra_params(), |
| fct_extra_params=self._fct_extra_params(), |
| halt_on_failure=True, |
| max_ota_size=max_ota_size, |
| target_name=target_name, |
| **self._step_kwargs)) |
| |
| if self._camera_target_check_condition(): |
| product_name, variant = self._build_name.split('-') |
| is_eng_build = self._build_config.get('eng_build', False) |
| steps.append( |
| ota_step.OtaCameraTargetsStep(product_name, variant, is_eng_build, |
| **self._step_kwargs)) |
| |
| if self._builds_usonia_daemon(): |
| steps.append( |
| ota_step.OtaUsoniaDaemonStep(self._build_name, **self._step_kwargs)) |
| if self._builds_thread_telemetry_service_cros(): |
| steps.append( |
| ota_step.ThreadTelemetryServiceCrosStep( |
| build_name=self._build_name, **self._step_kwargs)) |
| |
| if self.build_system == 'catabuilder': |
| steps.append(ota_step.OtaPropStep(**self._step_kwargs)) |
| |
| if self._oss_run_condition(): |
| steps.append( |
| ota_oss_step.OtaOssStep( |
| self._build_name, halt_on_failure=True, **self._step_kwargs)) |
| |
| # factory_tools have their own makefiles for compiling |
| if self._factory_tool_run_condition(): |
| steps.append( |
| ota_factory_tool_step.CompileFactoryToolStep( |
| self._build_name, |
| self._build_config.get('factory_tool', {}), |
| halt_on_failure=True, |
| **self._step_kwargs)) |
| if self._fct_run_condition(): |
| steps.append( |
| ota_fct_step.OtaFctCompileStep( |
| self._build_name, |
| self._build_config.get('factory', {}), |
| fct_extra_params=self._fct_extra_params(), |
| halt_on_failure=True, |
| **self._step_kwargs)) |
| # Generation of image/board specific FCT images performed by the same |
| # resign script but from different intermediate source binaries |
| steps.extend( |
| ota_resign_step.get_resign_steps( |
| self._build_name, |
| resign_config=self._build_config.get('factory'), |
| build_branch=self._manifest_branch, |
| apply_dev_signing=apply_dev_signing, |
| halt_on_failure=True, |
| **self._step_kwargs)) |
| steps.extend( |
| ota_resign_step.get_resign_steps( |
| self._build_name, |
| resign_config=self._build_config.get('unand'), |
| build_branch=self._manifest_branch, |
| apply_dev_signing=apply_dev_signing, |
| halt_on_failure=True, |
| **self._step_kwargs)) |
| if self._usbstick_run_condition(): |
| steps.append( |
| ota_fct_step.OtaFctCompileStep( |
| self._build_name, |
| self._build_config.get('usbstick', {}), |
| name='build usbstick images', |
| fct_extra_params=self._fct_extra_params(), |
| halt_on_failure=True, |
| **self._step_kwargs)) |
| steps.extend( |
| ota_resign_step.get_resign_steps( |
| self._build_name, |
| resign_config=self._build_config.get('usbstick'), |
| build_branch=self._manifest_branch, |
| apply_dev_signing=apply_dev_signing, |
| halt_on_failure=True, |
| **self._step_kwargs)) |
| steps.extend( |
| ota_resign_step.get_resign_steps( |
| self._build_name, |
| resign_config=self._build_config.get('resign'), |
| build_branch=self._manifest_branch, |
| apply_dev_signing=apply_dev_signing, |
| halt_on_failure=True, |
| **self._step_kwargs)) |
| |
| if ((not self._build_config.get('skip_ota_tests')) and |
| (self._manifest_branch not in SKIP_OTA_TESTS_BRANCH)): |
| test_board_name = self._build_config.get('test_board_name') |
| steps.extend([ |
| ota_build_tests_step.OtaBuildTestsStep( |
| self._build_name, |
| board_name=test_board_name, |
| extra_params=self._ota_extra_params(), |
| halt_on_failure=True, |
| **self._step_kwargs), |
| host_tests_step.RunHostTestsStep(**self._step_kwargs), |
| ota_strip_binaries_step.OtaStripBinariesStep( |
| halt_on_failure=True, **self._step_kwargs), |
| ]) |
| |
| # if this is a partner build, we need to do additional checks |
| if self._build_name in PARTNER_BUILDS: |
| build_flavor = self._build_config.get('build_flavor', 'release') |
| steps.append( |
| partner_build_check_step.PartnerBuildCheckStep( |
| self._build_name, build_flavor, **self._step_kwargs)) |
| |
| # TODO(b/118514002) remove once copy to partners service will be available |
| if self.build_system == 'catabuilder': |
| steps.extend(self._partner_upload_steps()) |
| |
| return steps |
| |
| # TODO(b/118514002) remove once copy to partners service will be available |
| def _partner_upload_steps(self): |
| steps = [] |
| gcs_path = self._get_partner_gcs_path() |
| gclient_out_path = '/tmp/{}_{}_gclient_out.json'.format( |
| self._build_name, self.build_number) |
| |
| # TODO(b/117437843) Remove recipe_ check after migtation completion |
| for partner_bucket in self._build_config.get('partner_bucket', []): |
| build_env = self._properties.get('build_env', 'dev') |
| if build_env != 'prod' or self._build_name.startswith('recipe_'): |
| upload_bucket = PARTNER_ARCHIVE_BUCKET_STAGING_BUCKET[build_env] |
| upload_path = os.path.join(partner_bucket, gcs_path + '/') |
| else: |
| upload_bucket = partner_bucket |
| upload_path = gcs_path + '/' |
| |
| # Upload gclient_out.json file |
| if os.path.isfile(gclient_out_path): |
| steps.append( |
| gcs_upload_step.GcsUploadStep( |
| upload_bucket, |
| upload_path, |
| name='gclient_out.json upload to {}'.format(partner_bucket), |
| src_path=gclient_out_path, |
| result_property='gcs_output_{}'.format(partner_bucket), |
| **self._step_kwargs)) |
| |
| steps.append( |
| gcs_upload_step.GcsUploadStep( |
| upload_bucket, |
| upload_path, |
| name='upload to {}'.format(partner_bucket), |
| result_property='gcs_output_{}'.format(partner_bucket), |
| **self._step_kwargs)) |
| |
| return steps |
| |
| def _get_partner_gcs_path(self): |
| """Construct the gcs relative path within a bucket for specified build.""" |
| gcs_path = [ |
| self._properties['repo_alias'], |
| self._properties['manifest_branch'], |
| self._properties['buildername'], |
| self._properties['buildset'], |
| ] |
| return '/'.join(str(i) for i in gcs_path) |