Project import generated by Copybara. GitOrigin-RevId: 8813500de1b9cbb62fece9bfa293b595b13b17a4
diff --git a/configs/pre-commit/requirements.txt b/configs/pre-commit/requirements.txt index 450fa14..64167f2 100644 --- a/configs/pre-commit/requirements.txt +++ b/configs/pre-commit/requirements.txt
@@ -1,9 +1,3 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile requirements.in -# appdirs==1.4.4 # via virtualenv cfgv==3.2.0 @@ -20,7 +14,7 @@ # via -r requirements.in pyyaml==5.4.1 # via pre-commit -six==1.15.0 +six==1.16.0 # via virtualenv toml==0.10.2 # via pre-commit
diff --git a/cq/landmines/landmine.70 b/cq/landmines/landmine.70 new file mode 100644 index 0000000..d339dc4 --- /dev/null +++ b/cq/landmines/landmine.70
@@ -0,0 +1,5 @@ +Landmine to clean old toolchain artifacts + +b/321703245 + +To clean JDK 17 built artifacts.
diff --git a/cq/landmines/landmine.71 b/cq/landmines/landmine.71 new file mode 100644 index 0000000..f887a1c --- /dev/null +++ b/cq/landmines/landmine.71
@@ -0,0 +1,4 @@ +Landmine to clean old SElinux artifacts + +Probably same as b/122370575 +b/316488279
diff --git a/cq/landmines/landmine.72 b/cq/landmines/landmine.72 new file mode 100644 index 0000000..bbc83ff --- /dev/null +++ b/cq/landmines/landmine.72
@@ -0,0 +1,8 @@ +Landmine to clean stale headers in OpenThread + +b/333479565 + +CLs: +- https://nest-internal-review.git.corp.google.com/c/tps/ot-br-posix/+/421875 +- https://nest-internal-review.git.corp.google.com/c/tps/openthread/+/421874 +- https://nest-internal-review.git.corp.google.com/c/tps/ot-nrf528xx/+/421913
diff --git a/cq/landmines/landmine.73 b/cq/landmines/landmine.73 new file mode 100644 index 0000000..9524cf6 --- /dev/null +++ b/cq/landmines/landmine.73
@@ -0,0 +1,3 @@ +Landmine to clean Prince builders of libassistant prebuilt artifacts. + +b/343727187
diff --git a/cq/landmines/landmine.74 b/cq/landmines/landmine.74 new file mode 100644 index 0000000..42ae051 --- /dev/null +++ b/cq/landmines/landmine.74
@@ -0,0 +1,3 @@ +Landmine to remove subdirectories and there is some $(TOP) problem need to be cleaned + +https://eureka-internal-review.git.corp.google.com/c/external/build/+/1017535
diff --git a/cq/landmines/landmine.75 b/cq/landmines/landmine.75 new file mode 100644 index 0000000..091c49a --- /dev/null +++ b/cq/landmines/landmine.75
@@ -0,0 +1,3 @@ +Landmine to remove untracked files in third_party/cast_lite. + +https://eureka-internal-review.git.corp.google.com/c/eureka/manifest/+/1023132?tab=checks
diff --git a/cq/landmines/landmine.76 b/cq/landmines/landmine.76 new file mode 100644 index 0000000..c5e4a27 --- /dev/null +++ b/cq/landmines/landmine.76
@@ -0,0 +1,6 @@ +Landmine because BLA4 build fails with out of date arm +intermediate objects. BLA4 also uses a different x86 +compiler but I don't know if it is related or not. + +http://b/335369838 +
diff --git a/cq/scripts/helpers/gn_utils.py b/cq/scripts/helpers/gn_utils.py index e02fe56..e7e73c8 100644 --- a/cq/scripts/helpers/gn_utils.py +++ b/cq/scripts/helpers/gn_utils.py
@@ -191,26 +191,3 @@ '--bucket', 'chromium-gn', '-s', sha1_path] return executor.exec_subprocess(command) - - -def is_gn_check_enabled(manifest_branch, product=None): - """Returns true if GN check can be used on |manifest_branch|. - - Since `gn check` will not run cleanly only older branches (<m51, <=1.21), - do not enable it. - - Args: - manifest_branch: The name of the manifest branch. - product: Optional product name (e.g. 'android', 'audio', 'chromecast') - Defaults to None. - Returns: - True if GN check can be used, False otherwise. - Raises: - ValueError: if the branch name is not recognized. - """ - # Development branch 'master' uses gn check. - if manifest_branch == 'master': - return True - - return branch_utils.is_branch_equal_to_or_later_than( - manifest_branch, '1.23' if product in ['android', 'atv'] else '1.22')
diff --git a/cq/scripts/resources/kythe_step/vnames.json b/cq/scripts/resources/kythe_step/vnames.json deleted file mode 100644 index bf04ad4..0000000 --- a/cq/scripts/resources/kythe_step/vnames.json +++ /dev/null
@@ -1,24 +0,0 @@ -[ - { - "pattern": "out_fuchsia_arm64_user/Release/gen/(.*)", - "vname": { - "corpus": "eureka-internal.googlesource.com/codesearch", - "root": "out_fuchsia/release/gen", - "path": "@1@" - } - }, - { - "pattern": "chromecast/internal/(.*)", - "vname": { - "corpus": "eureka-internal.googlesource.com/codesearch", - "path": "cast/internal/@1@" - } - }, - { - "pattern": "(.*)", - "vname": { - "corpus": "eureka-internal.googlesource.com/codesearch", - "path": "@1@" - } - } -] \ No newline at end of file
diff --git a/cq/scripts/slave/recipe/cast_service_builder.py b/cq/scripts/slave/recipe/cast_service_builder.py index 528f4f6..03edd52 100644 --- a/cq/scripts/slave/recipe/cast_service_builder.py +++ b/cq/scripts/slave/recipe/cast_service_builder.py
@@ -4,12 +4,11 @@ from slave import base_recipe from slave.step import gn_step from slave.step import ninja_step -from slave.step import sanitizer_unittest_step BUILD_CONFIGS = { 'cast_service_x64' : { - 'build_args_product': 'displayassistant_x64_eng', - 'build_args': 'enable_standalone_cast_service=true', + 'build_args_product': 'audioassistant_x64_iot_eng', + 'build_args': '', } }
diff --git a/cq/scripts/slave/recipe/cast_shell_guitar_e2e_test_runner.py b/cq/scripts/slave/recipe/cast_shell_guitar_e2e_test_runner.py index fba8d41..7e500ee 100644 --- a/cq/scripts/slave/recipe/cast_shell_guitar_e2e_test_runner.py +++ b/cq/scripts/slave/recipe/cast_shell_guitar_e2e_test_runner.py
@@ -38,11 +38,7 @@ def get_steps(self): build_shell_config = clang_builder.BUILD_CONFIGS['audioassistant_grte_eng'] - build_branding = build_shell_config.get('build_branding', None) build_arch = build_shell_config.get('build_arch', None) - build_product = build_shell_config.get('build_product', None) - build_flavor = build_shell_config.get('build_flavor', None) - enable_assistant = build_shell_config.get('enable_assistant', False) build_args_official = build_shell_config.get('build_args_official', None) grte_compatible = build_shell_config.get('grte_compatible', False) build_args_product = build_shell_config.get('build_args_product', None) @@ -50,12 +46,10 @@ steps = [] cast_shell_build_step = cast_shell_step.CastShellStep( - build_branding, build_arch, build_product, - build_flavor, enable_assistant, build_args_official=build_args_official, code_coverage=False, grte_compatible=grte_compatible, build_args_product=build_args_product, halt_on_failure=True, - sanitizer=None, archive_to_tmp=False, skip_create_zip=True, + archive_to_tmp=False, skip_create_zip=True, strip_binaries=True, **self._step_kwargs) steps.append(cast_shell_build_step) outdir = cast_shell_build_step.out_dir
diff --git a/cq/scripts/slave/recipe/clang_builder.py b/cq/scripts/slave/recipe/clang_builder.py index 542367a..bd57f2c 100644 --- a/cq/scripts/slave/recipe/clang_builder.py +++ b/cq/scripts/slave/recipe/clang_builder.py
@@ -12,88 +12,12 @@ from slave.test import test_generator BUILD_CONFIGS = { - # TODO(b/73231972) remove after migration to atv_arm_eng - 'arm_androidtv_debug': { - 'build_branding': 'chrome', - 'build_args_product': 'atv_arm_eng', - 'build_args_official': False, - 'build_product': 'atv', - 'build_flavor': 'Debug', - 'build_arch': 'arm', - 'run_gtests': False, - }, 'asan_x64_eng': { 'build_args_product': 'asan_x64_eng', 'build_args_official': False, # TODO(b/148885147) Remove params below - 'build_branding': 'chrome', - 'build_product': 'chromecast', - 'build_flavor': 'Eng', - 'build_arch': 'clang', 'sanitizer': 'asan', }, - # Replacement of content_shell_androidtv_arm64_debug_gn - 'atv_arm64_eng': { - 'build_args_product': 'atv_arm64_eng', - 'build_args_official': False, - 'run_gtests': False, - }, - 'atv_arm64_emulator_eng': { - 'build_args_product': 'atv_arm64_emulator_eng', - 'build_args_official': False, - 'run_gtests': False, - }, - # Replacement of content_shell_androidtv_arm64_internal_gn - 'atv_arm64_user': { - 'build_args_product': 'atv_arm64_user', - 'build_args_official': True, - 'run_gtests': False, - }, - # Replacement of content_shell_androidtv_arm_debug_gn, arm_androidtv_debug - 'atv_arm_eng': { - 'build_args_product': 'atv_arm_eng', - 'build_args_official': False, - 'run_gtests': False, - }, - # Replacement of content_shell_androidtv_arm_internal_gn - 'atv_arm_user': { - 'build_args_product': 'atv_arm_user', - 'build_args_official': True, - 'run_gtests': False, - }, - # Replacement of x86_androidtv_shell - 'atv_x86_emulator_eng': { - 'build_args_product': 'atv_x86_emulator_eng', - 'build_args_official': False, - 'run_gtests': False, - }, - # Replacement of content_shell_androidtv_x86_debug_gn - 'atv_x86_eng': { - 'build_args_product': 'atv_x86_eng', - 'build_args_official': False, - 'run_gtests': False, - }, - # Replacement of content_shell_androidtv_x86_internal_gn - 'atv_x86_user': { - 'build_args_product': 'atv_x86_user', - 'build_args_official': True, - 'run_gtests': False, - }, - 'atv_x64_emulator_eng': { - 'build_args_product': 'atv_x64_emulator_eng', - 'build_args_official': False, - 'run_gtests': False, - }, - 'atv_x64_eng': { - 'build_args_product': 'atv_x64_eng', - 'build_args_official': False, - 'run_gtests': False, - }, - 'atv_x64_user': { - 'build_args_product': 'atv_x64_user', - 'build_args_official': True, - 'run_gtests': False, - }, # Replacement of content_shell_grte_audio 'audio_grte_eng': { 'build_args_product': 'audio_grte_eng', @@ -105,22 +29,12 @@ 'build_args_product': 'audio_x64_eng', 'build_args_official': False, 'timeout_secs_run_gtest': 1 * 60 * 60, # Limit each test step by 1h - # TODO(b/148885147) Remove params below - 'build_branding': 'chrome', - 'build_product': 'audio', - 'build_flavor': 'Debug', - 'build_arch': 'clang', }, # Replacement of content_shell_clang_audio_gn 'audio_x64_user': { 'build_args_product': 'audio_x64_user', 'build_args_official': False, 'timeout_secs_run_gtest': 1 * 60 * 60, # Limit each test step by 1h - # TODO(b/148885147) Remove params below - 'build_branding': 'chromium', - 'build_product': 'audio', - 'build_flavor': 'Debug', - 'build_arch': 'clang', }, # Replacement of content_shell_grte_chirp 'audioassistant_grte_eng': { @@ -135,12 +49,6 @@ 'timeout_secs_run_gtest': 1 * 60 * 60, # Limit each test step by 1h # TODO(b/145840052): Remove once the build is fast enough. 'timeout_secs_build_gtests': 5 * 60 * 60, - # TODO(b/148885147) Remove params below - 'build_branding': 'chrome', - 'build_product': 'audio', - 'build_flavor': 'Debug', - 'build_arch': 'clang', - 'enable_assistant': True, }, # Replacement of content_shell_cube_arm_debug, arm_cube_debug 'cube_arm_eng': { @@ -197,12 +105,6 @@ 'timeout_secs_run_gtest': 1 * 60 * 60, # Limit each test step by 1h # TODO(b/145840052): Remove once the build is fast enough. 'timeout_secs_build_gtests': 5 * 60 * 60, - # TODO(b/148885147) Remove params below - 'build_branding': 'chrome', - 'build_product': 'display', - 'build_flavor': 'Debug', - 'build_arch': 'clang', - 'enable_assistant': True, }, 'gabbro_arm_eng': { 'build_args_product': 'gabbro_arm_debug', @@ -225,13 +127,8 @@ 'run_gtests': False, }, 'grte_opal_selina': { - 'build_branding': 'chrome', 'build_args_product': 'grte_opal_selina', 'build_args_official': False, - 'build_product': 'display', - 'build_flavor': 'Eng', - 'build_arch': 'x86', - 'enable_assistant': True, 'build_gtests': False, }, # Replacement of content_shell_desktop_msan, memory_sanitizer @@ -240,10 +137,6 @@ 'build_args_official': False, 'timeout_secs_run_gtest': 1 * 60 * 60, # Limit each test step by 1h # TODO(b/148885147) Remove params below - 'build_branding': 'chrome', - 'build_product': 'chromecast', - 'build_flavor': 'Eng', - 'build_arch': 'clang', 'sanitizer': 'msan', }, # Replacement of content_shell_soba_arm_debug_gn, arm_soba_debug @@ -400,14 +293,26 @@ 'build_target': 'chromecast/internal/build/packaging:cwr_package_cksum', 'enable_build_accelerator': False, }, + # CWR for RDK Dunfell, ARMv7a hard, release + 'cwr_rdk_dunfell_arm-user': { + 'build_args_product': 'video_cwr_rdk_dunfell_armv7a_user', + 'build_args_official': False, + 'build_gtests': False, + 'build_target': 'chromecast/internal/build/packaging:cwr_package_cksum', + 'enable_build_accelerator': False, + }, + # CWR for RDK Dunfell, ARMv7a hard, debug + 'cwr_rdk_dunfell_arm-eng': { + 'build_args_product': 'video_cwr_rdk_dunfell_armv7a_eng', + 'build_args_official': False, + 'build_gtests': False, + 'build_target': 'chromecast/internal/build/packaging:cwr_package_cksum', + 'enable_build_accelerator': False, + }, # Replacement of x86_clang_internal_absolute_code_coverage 'video_x64_absolute_code_coverage_eng': { - 'build_branding': 'chrome', 'build_args_product': 'video_x64_eng', 'build_args_official': False, - 'build_flavor': 'Debug', # Must be Debug for code coverage to work. - 'build_product': 'chromecast', - 'build_arch': 'clang', 'code_coverage': True, 'report_to_zoss': True, 'absolute_coverage': True, @@ -419,10 +324,6 @@ 'build_args_official': False, 'timeout_secs_run_gtest': 1 * 60 * 60, # Limit each test step by 1h # TODO(b/148885147) Remove params below - 'build_branding': 'chrome', - 'build_product': 'chromecast', - 'build_flavor': 'Debug', # Must be Debug for code coverage to work. - 'build_arch': 'clang', 'code_coverage': False, # TODO(b/33835295): Temporarily disable since # code coverage is often causing builds to take # an extra hour to complete and not actually @@ -434,36 +335,17 @@ 'build_args_official': False, 'timeout_secs_run_gtest': 1 * 60 * 60, # Limit each test step by 1h # TODO(b/148885147) Remove params below - 'build_branding': 'chromium', - 'build_product': 'chromecast', - 'build_flavor': 'Debug', # Must be Debug for code coverage to work. - 'build_arch': 'clang', 'code_coverage': False, # TODO(b/33835295): Temporarily disable since # code coverage is often causing builds to take # an extra hour to complete and not actually # producing useful coverage results. }, - # TODO(b/73288720) remove after migration to atv_x64_emulator_eng - 'x86_androidtv_shell': { - 'build_branding': 'chrome', - 'build_args_product': 'atv_x64_emulator_eng', - 'build_args_official': False, - 'build_product': 'atv', - 'build_flavor': 'Debug', - 'build_arch': 'x86', - 'run_gtests': False, - }, # This build is only for libassistant code coverage experiment. # TODO(mengdi): make sure this build only build and run libassistant # unittests with --whitelisted_tests. 'x86_clang_audio_chirp_libassistant_code_coverage': { - 'build_branding': 'chrome', 'build_args_product': 'audioassistant_x64_eng', 'build_args_official': False, - 'build_product': 'audio', - 'build_flavor': 'Debug', - 'build_arch': 'clang', - 'enable_assistant': True, 'absolute_coverage': True, 'code_coverage': True, @@ -473,27 +355,18 @@ # TODO(b/73288720) remove after migration to # video_x64_absolute_code_coverage_eng 'x86_clang_internal_absolute_code_coverage': { - 'build_branding': 'chrome', 'build_args_product': 'displayassistant_x64_eng', 'build_args_official': False, - 'build_product': 'chromecast', - 'build_flavor': 'Debug', - 'build_arch': 'clang', 'code_coverage': True, 'absolute_coverage': True, - 'enable_assistant': True, # TODO(b/145840052): Remove once the build is fast enough. 'timeout_secs_build_gtests': 5 * 60 * 60, }, # TODO(b/73231972) Not used in CQ, to be removed 'x86_clang_internal_incremental_code_coverage': { - 'build_branding': 'chrome', 'build_args_product': 'video_x64_eng', 'build_args_official': False, - 'build_product': 'chromecast', - 'build_flavor': 'Debug', - 'build_arch': 'clang', 'code_coverage': True, # TODO(b/145840052): Remove once the build is fast enough. @@ -531,18 +404,13 @@ self._properties = kwargs.get('properties', {}) def get_steps(self): - build_branding = self._config.get('build_branding', None) build_args_product = self._config['build_args_product'] - build_product = self._config.get('build_product', None) build_args_official = self._config.get('build_args_official', None) - build_arch = self._config.get('build_arch', None) - build_flavor = self._config.get('build_flavor', None) build_gtests = self._config.get('build_gtests', True) run_gtests = self._config.get('run_gtests', True) code_coverage = self._config.get('code_coverage', False) report_to_zoss = self._config.get('report_to_zoss', False) absolute_coverage = self._config.get('absolute_coverage', False) - enable_assistant = self._config.get('enable_assistant', False) grte_compatible = self._config.get('grte_compatible', False) sanitizer = self._config.get('sanitizer', None) build_target = self._config.get('build_target', None) @@ -563,11 +431,6 @@ if sanitizer is None or self.build_system == 'catabuilder': steps += [ cast_shell_step.CastShellStep( - build_branding, - build_arch, - build_product, - build_flavor, - enable_assistant, build_args_official=build_args_official, code_coverage=code_coverage, grte_compatible=grte_compatible, @@ -581,11 +444,6 @@ if build_gtests: steps += [ unittest_step.BuildAffectedUnitTestsStep( - build_branding, - build_arch, - build_product, - build_flavor, - enable_assistant, build_args_official=build_args_official, sanitizer=sanitizer, code_coverage=code_coverage, @@ -608,10 +466,6 @@ steps += [ unittest_step.RunAffectedUnitTestsStep( - build_branding, - build_arch, - build_product, - build_flavor, report_url, steps, sanitizer=sanitizer, @@ -633,10 +487,6 @@ ignore_filename_regex = None coverage_step = code_coverage_step.RunCoverageCommandStep( - build_branding, - build_arch, - build_product, - build_flavor, sanitizer=sanitizer, build_args_product=build_args_product, build_args_official=build_args_official,
diff --git a/cq/scripts/slave/recipe/clang_tidy.py b/cq/scripts/slave/recipe/clang_tidy.py index 48b7e6a..191d814 100644 --- a/cq/scripts/slave/recipe/clang_tidy.py +++ b/cq/scripts/slave/recipe/clang_tidy.py
@@ -28,16 +28,9 @@ 'build_args_official': False, # TODO(b/145840052): Remove once the build is fast enough. 'timeout_secs_build_gtests': 5 * 60 * 60, - # TODO(b/148885147) Remove params below - 'build_branding': 'chrome', - 'build_product': 'audio', - 'build_flavor': 'Debug', - 'build_arch': 'clang', - 'enable_assistant': True, 'run_gtests': False, }, 'nq-eng_clang_tidy': { - 'build_flavor': 'release', 'resign': ota_resign_step.NQ_RESIGN, 'factory': ota_resign_step.NQ_FACTORY, 'usbstick': ota_resign_step.NQ_USBSTICK,
diff --git a/cq/scripts/slave/recipe/combined_sdk.py b/cq/scripts/slave/recipe/combined_sdk.py index 0025791..7a8d896 100644 --- a/cq/scripts/slave/recipe/combined_sdk.py +++ b/cq/scripts/slave/recipe/combined_sdk.py
@@ -137,6 +137,10 @@ 'vendor_config': AMLOGIC, 'product': 'lumia', }, + 'combined-sdk-kernel-bootloader-amlogic-swift': { + 'vendor_config': AMLOGIC, + 'product': 'swift', + }, 'combined-sdk-kernel-bootloader-amlogic-newman': { 'vendor_config': AMLOGIC, 'product': 'newman',
diff --git a/cq/scripts/slave/recipe/container_builder.py b/cq/scripts/slave/recipe/container_builder.py index 7657cf8..52259ef 100644 --- a/cq/scripts/slave/recipe/container_builder.py +++ b/cq/scripts/slave/recipe/container_builder.py
@@ -9,8 +9,11 @@ return [ 'abbey_container', 'container_building_container', + 'ghp_partner_container', 'gotham_container', 'monotainer', + 'monotainer_debug', + 'recipe_bookworm', 'recipe_bullseye', ] @@ -29,7 +32,9 @@ halt_on_failure=True, **self._step_kwargs)] if 'container_push_url' in self._properties: - steps += [ContainerPushStep(halt_on_failure=True, **self._step_kwargs)] + steps += [ContainerPushStep( + directory=str(self._eureka_root), + halt_on_failure=True, **self._step_kwargs)] return steps
diff --git a/cq/scripts/slave/recipe/eureka_kythe_builder.py b/cq/scripts/slave/recipe/eureka_kythe_builder.py deleted file mode 100644 index e87ec3f..0000000 --- a/cq/scripts/slave/recipe/eureka_kythe_builder.py +++ /dev/null
@@ -1,142 +0,0 @@ -"""Recipe to create and publish KZIPs for Kythe. - -See go/eureka-cs-indexing for more context. -""" -import copy -import os - -from slave import base_recipe -from slave.step import gcs_upload_step -from slave.step import gn_step -from slave.step import kythe_step -from slave.step import make_clean_step -from slave.step import ninja_step -from slave.test import test_generator - - -# WARNING: the build_args_product and build_args_flavor are used to construct -# the naming of the out folder. As per the vnames.json file, Kythe expects this -# exact naming in order to properly index and serve generated files. -BUILD_CONFIGS = { - 'fuchsia_eureka_kythe_prod': { - 'build_args_product': 'fuchsia_arm64_user', - 'build_args_flavor': 'Release', - 'build_args': ['is_official_build=true'], - 'build_target': 'cast_agent_exe', - 'gcs_folder': 'prod' - }, - 'fuchsia_eureka_kythe_staging': { - 'build_args_product': 'fuchsia_arm64_user', - 'build_args_flavor': 'Release', - 'build_args': ['is_official_build=true'], - 'build_target': 'cast_agent_exe', - 'gcs_folder': 'staging' - }, -} - -GCS_UPLOAD_BUCKET = 'eureka-kythe' - -# Expect that merged KZIPs are at least 1 GB -MIN_EXPECTED_KZIP_SIZE = 1 * 1024 * 1024 * 1024 - - -def GetValidBuildNames(): - return list(BUILD_CONFIGS.keys()) - - -def CreateRecipe(build_name: str, **kwargs): - config = BUILD_CONFIGS[build_name] - return EurekaKytheRecipe(config, **kwargs) - - -class EurekaKytheRecipe(base_recipe.BaseRecipe): - - def __init__(self, config, **kwargs): - base_recipe.BaseRecipe.__init__( - self, enable_build_accelerator=True, **kwargs) - self._build_config = config - - def get_clean_steps(self): - return [make_clean_step.MakeCleanStep(**self._step_kwargs)] - - # Needed so that we can properly mock expectations in test. - def get_num_jobs(self): # pylint:disable=method-hidden - """Count of jobs to use.""" - setup_steps = self.get_setup_steps() - return setup_steps[0].get_num_jobs(multiplier=10) - - def get_steps(self): - steps = [] - - cwd = os.getcwd() - continuous_tests_root = os.path.abspath( - self.get_setup_steps()[0].get_project_path('continuous-tests')) - chromium_root = self.get_setup_steps()[0].get_project_path('chromium/src') - build_args = copy.deepcopy(self._build_config.get('build_args')) - build_args_product = self._build_config.get('build_args_product') - build_args_flavor = self._build_config.get('build_args_flavor') - build_target = self._build_config.get('build_target') - gcs_folder = self._build_config.get('gcs_folder') - out_dir = os.path.join(chromium_root, 'out_{}'.format(build_args_product), - build_args_flavor) - - # STEP: Generate gn gen for build - gn_gen_step = gn_step.GnGenStep( - build_args_product=build_args_product, - build_args=build_args, - out_dir=out_dir, - halt_on_failure=True, - cwd=cwd, - **self._step_kwargs) - steps.append(gn_gen_step) - - # STEP: List gn args - gn_args_step = gn_step.GnArgsStep( - out_dir=out_dir, cwd=cwd, halt_on_failure=True, **self._step_kwargs) - steps.append(gn_args_step) - - # STEP: Generate ninja build - num_jobs = self.get_num_jobs() - ninja_build_step = ninja_step.NinjaStep( - out_dir=out_dir, - target=build_target, - cwd=cwd, - jobs=num_jobs, - halt_on_failure=True, - **self._step_kwargs) - steps.append(ninja_build_step) - - # STEP: Generate compilation database - gn_gen_step = gn_step.GnGenCompilationDBStep( - out_dir=out_dir, - cwd=cwd, - build_args_product=build_args_product, - target_name=build_target, - halt_on_failure=True, - **self._step_kwargs) - compdb_file = gn_gen_step.get_compdb_file_location() - steps.append(gn_gen_step) - - # STEP: Generate KZIPs - kzip_gen_step = kythe_step.GenerateKzipStep( - cwd=cwd, - tests_root=continuous_tests_root, - chromium_root=chromium_root, - out_dir=out_dir, - compdb_file=compdb_file, - min_expected_kzip_bytes=MIN_EXPECTED_KZIP_SIZE, - halt_on_failures=True, - **self._step_kwargs) - kzip_file = kzip_gen_step.get_kythe_output_file() - steps.append(kzip_gen_step) - - # STEP: Upload to GCS - upload_step = gcs_upload_step.GcsUploadStep( - gcs_bucket=GCS_UPLOAD_BUCKET, - gcs_path=gcs_folder, - src_path=kzip_file, - **self._step_kwargs) - steps.append(upload_step) - - return steps -
diff --git a/cq/scripts/slave/recipe/eurtest_e2e_test_runner.py b/cq/scripts/slave/recipe/eurtest_e2e_test_runner.py index 90ca487..a758ed7 100644 --- a/cq/scripts/slave/recipe/eurtest_e2e_test_runner.py +++ b/cq/scripts/slave/recipe/eurtest_e2e_test_runner.py
@@ -38,12 +38,6 @@ def get_steps(self): build_shell_config = clang_builder.BUILD_CONFIGS['displayassistant_grte_opal_eng'] - - build_branding = build_shell_config.get('build_branding', None) - build_arch = build_shell_config.get('build_arch', None) - build_product = build_shell_config.get('build_product', None) - build_flavor = build_shell_config.get('build_flavor', None) - enable_assistant = build_shell_config.get('enable_assistant', False) build_args_official = build_shell_config.get('build_args_official', None) grte_compatible = build_shell_config.get('grte_compatible', False) build_args_product = build_shell_config.get('build_args_product', None) @@ -64,12 +58,10 @@ )] return [ cast_shell_step.CastShellStep( - build_branding, build_arch, build_product, - build_flavor, enable_assistant, build_args_official=build_args_official, code_coverage=False, grte_compatible=grte_compatible, build_args_product=build_args_product, halt_on_failure=True, - sanitizer=None, archive_to_tmp=True, **self._step_kwargs), + archive_to_tmp=True, **self._step_kwargs), py_env_setup_step.PyEnvSetupStep( additional_import_paths=additional_import_paths, local_packages_dir='team-catatester/python_packages',
diff --git a/cq/scripts/slave/recipe/fuchsia_builder.py b/cq/scripts/slave/recipe/fuchsia_builder.py index 8e70f32..d6b51f1 100644 --- a/cq/scripts/slave/recipe/fuchsia_builder.py +++ b/cq/scripts/slave/recipe/fuchsia_builder.py
@@ -23,7 +23,6 @@ 'architecture': 'arm64', 'build_args_product': 'fuchsia_arm64_user', 'build_args_flavor': 'Release', - 'build_product': 'display', 'build_target': 'chromecast/internal/fuchsia:all', 'test_target': 'chromecast/internal/fuchsia:chromecast_fuchsia_tests', 'run_gtests': False, @@ -34,7 +33,6 @@ 'architecture': 'arm64', 'build_args_product': 'fuchsia_arm64_eng', 'build_args_flavor': 'Eng', - 'build_product': 'display', 'build_target': 'chromecast/internal/fuchsia:all', 'test_target': 'chromecast/internal/fuchsia:chromecast_fuchsia_tests', 'run_gtests': False, @@ -44,7 +42,6 @@ 'architecture': 'arm64', 'build_args_product': 'fuchsia_arm64_eng_optimized', 'build_args_flavor': 'EngOptimized', - 'build_product': 'display', 'build_target': 'chromecast/internal/fuchsia:all', 'test_target': 'chromecast/internal/fuchsia:chromecast_fuchsia_tests', 'run_gtests': False, @@ -54,7 +51,6 @@ 'architecture': 'amd64', 'build_args_product': 'fuchsia_x64_user', 'build_args_flavor': 'Release', - 'build_product': 'display', 'build_target': 'chromecast/internal/fuchsia:all', 'test_target': 'chromecast/internal/fuchsia:chromecast_fuchsia_tests', 'run_gtests': True, @@ -64,7 +60,6 @@ 'architecture': 'amd64', 'build_args_product': 'fuchsia_x64_eng', 'build_args_flavor': 'Eng', - 'build_product': 'display', 'build_target': 'chromecast/internal/fuchsia:all', 'test_target': 'chromecast/internal/fuchsia:chromecast_fuchsia_tests', 'run_gtests': True, @@ -74,7 +69,6 @@ 'architecture': 'amd64', 'build_args_product': 'fuchsia_x64_eng_optimized', 'build_args_flavor': 'EngOptimized', - 'build_product': 'display', 'build_target': 'chromecast/internal/fuchsia:all', 'test_target': 'chromecast/internal/fuchsia:chromecast_fuchsia_tests', 'run_gtests': True,
diff --git a/cq/scripts/slave/recipe/include_what_you_use.py b/cq/scripts/slave/recipe/include_what_you_use.py index 5205734..e3da9af 100644 --- a/cq/scripts/slave/recipe/include_what_you_use.py +++ b/cq/scripts/slave/recipe/include_what_you_use.py
@@ -29,12 +29,6 @@ 'build_args_official': False, # TODO(b/145840052): Remove once the build is fast enough. 'timeout_secs_build_gtests': 5 * 60 * 60, - # TODO(b/148885147) Remove params below - 'build_branding': 'chrome', - 'build_product': 'audio', - 'build_flavor': 'Debug', - 'build_arch': 'clang', - 'enable_assistant': True, 'run_gtests': False, }, }
diff --git a/cq/scripts/slave/recipe/junit_builder.py b/cq/scripts/slave/recipe/junit_builder.py index 1380e1c..587754f 100644 --- a/cq/scripts/slave/recipe/junit_builder.py +++ b/cq/scripts/slave/recipe/junit_builder.py
@@ -2,11 +2,6 @@ from slave import base_recipe from slave.step import unittest_step, jacoco_coverage_processing_step -BUILD_BRANDING = 'chrome' -BUILD_ARCH = 'x86' -BUILD_FLAVOR = 'Release' -BUILD_PRODUCT = 'android' - # This is needed to override the "DEFAULT_MANIFEST_STRING" in test_generator.py # by adding the chromium/tools/depot_tools project. SAMPLE_MANIFEST_STRING = """ @@ -79,15 +74,12 @@ steps = [] steps += [ unittest_step.BuildAffectedUnitTestsStep( - BUILD_BRANDING, BUILD_ARCH, BUILD_PRODUCT, - BUILD_FLAVOR, enable_assistant=False, sanitizer=None, build_args_product=build_args_product, build_args_official=build_args_official, halt_on_failure=True, junit=True, code_coverage=code_coverage, **self._step_kwargs), unittest_step.RunAffectedUnitTestsStep( - BUILD_BRANDING, BUILD_ARCH, BUILD_PRODUCT, BUILD_FLAVOR, - report_url='', recipe_steps=steps, sanitizer=None, + report_url='', recipe_steps=steps, build_args_product=build_args_product, build_args_official=build_args_official, enable_network_service=False, junit=True, **self._step_kwargs), @@ -98,7 +90,6 @@ if code_coverage: steps.append( jacoco_coverage_processing_step.JacocoCoverageProcessingStep( - BUILD_BRANDING, BUILD_ARCH, BUILD_PRODUCT, BUILD_FLAVOR, 'coverage', build_args_product=build_args_product, build_args_official=build_args_official, **self._step_kwargs )
diff --git a/cq/scripts/slave/recipe/null.py b/cq/scripts/slave/recipe/null.py index 44fe16e..fbab6e2 100644 --- a/cq/scripts/slave/recipe/null.py +++ b/cq/scripts/slave/recipe/null.py
@@ -16,4 +16,4 @@ self, enable_build_accelerator=False, **kwargs) def get_steps(self): - return [] \ No newline at end of file + return []
diff --git a/cq/scripts/slave/recipe/ota_builder.py b/cq/scripts/slave/recipe/ota_builder.py index 3be023c..0e52850 100644 --- a/cq/scripts/slave/recipe/ota_builder.py +++ b/cq/scripts/slave/recipe/ota_builder.py
@@ -273,16 +273,6 @@ 'cast-partner-amlogic-internal', 'cast-partner-broadcom-internal' ], }, - 'elaine-fuchsia-eng': { - 'build_flavor': 'release', - 'board_name': 'elaine-b3', - 'resign': ota_resign_step.ELAINE_FUCHSIA_RESIGN, - 'clean_steps': [], - 'default_properties': { - 'fuchsia_sync': True, - }, - 'eng_build': True, - }, 'elaine-fuchsia-user': { 'build_flavor': 'release', 'board_name': 'elaine-b3', @@ -373,12 +363,14 @@ }, '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': { @@ -386,6 +378,17 @@ 'resign': ota_resign_step.LUMIA_RESIGN, 'partner_bucket': ['cast-partner-amlogic-internal'], }, + 'swift-eng': { + 'build_flavor': 'release', + 'board_name': 'swift-p1', + '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'], + }, 'gq-eng': { 'build_flavor': 'release', 'resign': ota_resign_step.GQ_RESIGN, @@ -458,15 +461,6 @@ ], 'test_board_name': 'newman-b3', }, - 'newman-fuchsia-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-user': { 'build_flavor': 'release', 'board_name': 'newman-b3', @@ -619,6 +613,20 @@ 'cast-partner-synaptics-internal', ], }, + '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', + ], + }, 'prince-eng': { 'build_flavor': 'release', @@ -785,6 +793,44 @@ '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', + ], + }, + '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', + ], + }, 'valens-eng': { 'build_flavor': 'release', @@ -882,6 +928,44 @@ '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'], + 'make_clean': True, + }, + 'bla4-eng': { + 'build_flavor': 'release', + 'resign': ota_resign_step.BLA4_RESIGN, + 'partner_bucket': ['cast-partner-amlogic-internal'], + 'make_clean': True, + }, + 'bla4-user': { + 'build_flavor': 'release', + 'resign': ota_resign_step.BLA4_RESIGN, + 'partner_bucket': ['cast-partner-amlogic-internal'], + 'make_clean': True, + }, } SKIP_OTA_TESTS_BRANCH = [ @@ -940,6 +1024,8 @@ self._skip_landmine = self.build_system == 'catabuilder' self._skip_gncheck = self.build_system == 'catabuilder' + self._make_clean = self._build_config.get('make_clean') + def _oss_run_condition(self): if self.build_system != 'catabuilder': return False @@ -1032,10 +1118,10 @@ **self._step_kwargs)) if self._camera_target_check_condition(): - product_name = self._build_name.split('-')[0] + product_name, variant = self._build_name.split('-') is_eng_build = BUILD_CONFIGS[self._build_name].get('eng_build', False) steps.append( - ota_step.OtaCameraTargetsStep(product_name, is_eng_build, + ota_step.OtaCameraTargetsStep(product_name, variant, is_eng_build, **self._step_kwargs)) if self._builds_usonia_daemon():
diff --git a/cq/scripts/slave/recipe/py_test_runner.py b/cq/scripts/slave/recipe/py_test_runner.py index 9803a33..3e62591 100644 --- a/cq/scripts/slave/recipe/py_test_runner.py +++ b/cq/scripts/slave/recipe/py_test_runner.py
@@ -16,10 +16,6 @@ UNIT_TEST_REGEX_SUFFIX = r'.*_test\.py$' INTEGRATION_TEST_REGEX_SUFFIX = r'.*_test_integration\.py$' E2E_TEST_REGEX_SUFFIX = r'.*_test_case.py$' -PY3_EXCLUDED_PATH = [ - 'cq/buildbot-masters', - 'cq/scripts/master', -] BUILD_CONFIGS = { @@ -36,28 +32,11 @@ 'test_file_filter_regex': UNIT_TEST_REGEX_SUFFIX, 'test_timeout_seconds': DEFAULT_UNIT_TEST_TIMEOUT_SECONDS, }, - 'py3_unittest_continuous_tests': { - 'project': 'continuous-tests', - 'py_requirements_path': 'cq/requirements_recipe3.txt', - 'py_requirements_project': 'continuous-tests', - 'py_packages_mirror_dir': 'python_packages', - 'test_file_filter_regex': UNIT_TEST_REGEX_SUFFIX, - 'test_timeout_seconds': DEFAULT_UNIT_TEST_TIMEOUT_SECONDS * 2, - 'module_path_regex': '^((?!{}).)*$'.format('|'.join(PY3_EXCLUDED_PATH)), - 'py3': True, - }, 'py_unittest_test': { 'project': 'test', 'test_file_filter_regex': UNIT_TEST_REGEX_SUFFIX, 'test_timeout_seconds': DEFAULT_UNIT_TEST_TIMEOUT_SECONDS, }, - 'py3_unittest_test': { - 'project': 'test', - 'test_file_filter_regex': UNIT_TEST_REGEX_SUFFIX, - 'test_timeout_seconds': DEFAULT_UNIT_TEST_TIMEOUT_SECONDS * 2, - 'py3': True, - 'py_requirements_path': os.path.join('lab_system', 'requirements3.txt'), - }, 'py_unittest_chromecast_internal': { 'project': 'chromecast/internal', 'py_requirements_path': os.path.join('lab_system', 'requirements3.txt'),
diff --git a/cq/scripts/slave/recipe/sprockets_conformance_test_runner.py b/cq/scripts/slave/recipe/sprockets_conformance_test_runner.py index 940c19f..6029c5f 100644 --- a/cq/scripts/slave/recipe/sprockets_conformance_test_runner.py +++ b/cq/scripts/slave/recipe/sprockets_conformance_test_runner.py
@@ -6,11 +6,7 @@ _BUILD_ARGS_PRODUCT = 'video_x64_eng' _BUILD_ARGS_OFFICIAL = False -_BUILD_BRANDING = 'chrome' -_BUILD_ARCH = 'clang' -_BUILD_PRODUCT = 'chromecast' # TODO(mbjorge|seantopping): Change to 'Release' when b/32749161 is resolved. -_BUILD_FLAVOR = 'Debug' _ENABLED_CHIRP = False # TODO(b/24062312): 'clang' --> 'x86' @@ -38,9 +34,7 @@ def get_steps(self): return [ landmine_step.LandmineStep(**self._step_kwargs), - cast_shell_step.CastShellStep(_BUILD_BRANDING, _BUILD_ARCH, - _BUILD_PRODUCT, - _BUILD_FLAVOR, _ENABLED_CHIRP, + cast_shell_step.CastShellStep(_ENABLED_CHIRP, build_args_product=_BUILD_ARGS_PRODUCT, build_args_official=_BUILD_ARGS_OFFICIAL, halt_on_failure=True,
diff --git a/cq/scripts/slave/recipe/x86_integration_test_runner.py b/cq/scripts/slave/recipe/x86_integration_test_runner.py index 8a85a54..d82ee41 100644 --- a/cq/scripts/slave/recipe/x86_integration_test_runner.py +++ b/cq/scripts/slave/recipe/x86_integration_test_runner.py
@@ -6,14 +6,8 @@ from slave.step import py_env_setup_step from slave.step import x86_integration_test_step -# TODO(b/24062312): 'clang' --> 'x86' -BUILD_ARCH = 'clang' BUILD_ARGS_PRODUCT = 'video_x64_eng' BUILD_ARGS_OFFICIAL = False -BUILD_BRANDING = 'chrome' -BUILD_FLAVOR = 'Debug' -BUILD_PRODUCT = 'chromecast' -ENABLE_CHIRP = False BUILD_CONFIGS = { 'cast_compliance_tests': { @@ -48,9 +42,7 @@ def get_steps(self): steps = [ - cast_shell_step.CastShellStep(BUILD_BRANDING, BUILD_ARCH, - BUILD_PRODUCT, BUILD_FLAVOR, ENABLE_CHIRP, - build_args_product=BUILD_ARGS_PRODUCT, + cast_shell_step.CastShellStep(build_args_product=BUILD_ARGS_PRODUCT, build_args_official=BUILD_ARGS_OFFICIAL, halt_on_failure=True, **self._step_kwargs),
diff --git a/cq/scripts/slave/recipe/x86_manhattan_test_integration_runner.py b/cq/scripts/slave/recipe/x86_manhattan_test_integration_runner.py index 44736d6..6417705 100644 --- a/cq/scripts/slave/recipe/x86_manhattan_test_integration_runner.py +++ b/cq/scripts/slave/recipe/x86_manhattan_test_integration_runner.py
@@ -3,14 +3,8 @@ from slave.step import cast_shell_step from slave.step import x86_manhattan_test_integration_step -# TODO(b/24062312): 'clang' --> 'x86' -BUILD_ARCH = 'clang' BUILD_ARGS_PRODUCT = 'displayassistant_x64_eng' BUILD_ARGS_OFFICIAL = False -BUILD_BRANDING = 'chrome' -BUILD_FLAVOR = 'Debug' -BUILD_PRODUCT = 'display' -ENABLE_ASSISTANT = True def GetValidBuildNames(): @@ -32,10 +26,7 @@ def get_steps(self): steps = [ - cast_shell_step.CastShellStep(BUILD_BRANDING, BUILD_ARCH, - BUILD_PRODUCT, BUILD_FLAVOR, - ENABLE_ASSISTANT, - build_args_product=BUILD_ARGS_PRODUCT, + cast_shell_step.CastShellStep(build_args_product=BUILD_ARGS_PRODUCT, build_args_official=BUILD_ARGS_OFFICIAL, halt_on_failure=True, **self._step_kwargs),
diff --git a/cq/scripts/slave/recipe/x86_nccm_test_runner.py b/cq/scripts/slave/recipe/x86_nccm_test_runner.py index 8531e4e..109bbe3 100644 --- a/cq/scripts/slave/recipe/x86_nccm_test_runner.py +++ b/cq/scripts/slave/recipe/x86_nccm_test_runner.py
@@ -6,10 +6,6 @@ from slave.step import gn_check_step from slave.step import x86_camera_step -BUILD_BRANDING = 'chrome' -BUILD_ARCH = 'x86' -BUILD_FLAVOR = 'Release' -BUILD_PRODUCT = 'chromecast' BUILD_ARGS_OFFICIAL = False BUILD_ARGS_PRODUCT = 'nccm_x86' @@ -41,10 +37,8 @@ cwd = os.getcwd() # Output directory for gn gen step must match expected output directory - # for RunCoverageCommandStep based on given BUILD_ARCH, BUILD_PRODUCT, etc. - out_dir_parts = ['out', BUILD_ARCH, BUILD_PRODUCT, 'gn'] - out_dir = os.path.join( - 'chromium/src', '_'.join(out_dir_parts), BUILD_FLAVOR) + # for RunCoverageCommandStep. + out_dir = os.path.join('chromium', 'src', 'out', BUILD_ARGS_PRODUCT) build_args = [] if self._code_coverage: @@ -67,11 +61,6 @@ # on the list of executables stored in step data and collects # coverage information. coverage_step = code_coverage_step.RunCoverageCommandStep( - BUILD_BRANDING, - BUILD_ARCH, - BUILD_PRODUCT, - BUILD_FLAVOR, - sanitizer=None, build_args_product=BUILD_ARGS_PRODUCT, build_args_official=BUILD_ARGS_OFFICIAL, ignore_filename_regex=COVERAGE_IGNORE_FILENAME_REGEX,
diff --git a/cq/scripts/slave/recipe/x86_photon_test_runner.py b/cq/scripts/slave/recipe/x86_photon_test_runner.py index 1f29d60..795f955 100644 --- a/cq/scripts/slave/recipe/x86_photon_test_runner.py +++ b/cq/scripts/slave/recipe/x86_photon_test_runner.py
@@ -6,11 +6,6 @@ from slave.step import gn_check_step from slave.step import x86_camera_step -BUILD_BRANDING = 'chrome' -BUILD_ARCH = 'x86' -BUILD_FLAVOR = 'Release' -BUILD_PRODUCT = 'chromecast' -BUILD_ARGS_OFFICIAL = False BUILD_ARGS_PRODUCT = 'photon_x86' COVERAGE_IGNORE_FILENAME_REGEX = '.*/gen/.*|.*/third_party/.*' @@ -41,10 +36,8 @@ cwd = os.getcwd() # Output directory for gn gen step must match expected output directory - # for RunCoverageCommandStep based on given BUILD_ARCH, BUILD_PRODUCT, etc. - out_dir_parts = ['out', BUILD_ARCH, BUILD_PRODUCT, 'gn'] - out_dir = os.path.join( - 'chromium/src', '_'.join(out_dir_parts), BUILD_FLAVOR) + # for RunCoverageCommandStep. + out_dir = os.path.join('chromium', 'src', 'out', BUILD_ARGS_PRODUCT) build_args = []
diff --git a/cq/scripts/slave/recipe/x86_simulator_builder.py b/cq/scripts/slave/recipe/x86_simulator_builder.py index f413fd8..59e42c8 100644 --- a/cq/scripts/slave/recipe/x86_simulator_builder.py +++ b/cq/scripts/slave/recipe/x86_simulator_builder.py
@@ -78,11 +78,6 @@ } coverage_step = code_coverage_step.RunCoverageCommandStep( - None, - None, - None, - None, - sanitizer=None, build_args_product=self.buildername, build_args_official=False, ignore_filename_regex=COVERAGE_IGNORE_FILENAME_REGEX,
diff --git a/cq/scripts/slave/recipe/x86_wifi_simulator_builder.py b/cq/scripts/slave/recipe/x86_wifi_simulator_builder.py index 8da56f3..1094584 100644 --- a/cq/scripts/slave/recipe/x86_wifi_simulator_builder.py +++ b/cq/scripts/slave/recipe/x86_wifi_simulator_builder.py
@@ -34,6 +34,8 @@ # sirocco_x86_64-eng --> sirocco_x86_64 self._product = self.buildername[:self.buildername.find('-')] + # Hard-code eng since GetValidBuildNames indicates we only ever use the eng variant + self._variant = "eng" self.out_dir = f'out_chromecast_{self._product}/release' self.chromium_out_dir = f'chromium/src/{self.out_dir}' @@ -50,7 +52,7 @@ test_env = { 'LD_LIBRARY_PATH': ':'.join([ self.out_dir, - f'../../out/target/product/{self._product}/system/lib', + f'../../out/target/product/{self._product}-{self._variant}/system/lib', ]), 'TARGET_PRODUCT': self._product, } @@ -67,8 +69,6 @@ ]) if self._code_coverage: coverage_step = code_coverage_step.RunCoverageCommandStep( - None, None, None, - None, sanitizer=None, build_args_product=self.buildername, build_args_official=False, ignore_filename_regex=COVERAGE_IGNORE_FILENAME_REGEX,
diff --git a/cq/scripts/slave/step/cast_shell_step.py b/cq/scripts/slave/step/cast_shell_step.py index 1e7511c..762fbe4 100644 --- a/cq/scripts/slave/step/cast_shell_step.py +++ b/cq/scripts/slave/step/cast_shell_step.py
@@ -3,9 +3,7 @@ import os import sys -from helpers import branch_utils from helpers import cast_shell_utils -from helpers import gn_utils from helpers import ninja_utils from slave import base_step from slave.step import gn_check_step @@ -29,19 +27,13 @@ instead of the OTA `make` build flow. """ - def __init__(self, name, branding, build_type, product, build_flavor, - sanitizer=None, build_args_product=None, + def __init__(self, name, + build_args_product=None, build_args_official=None, **kwargs): """Creates a UnittestBaseStep instance. Args: name: The name of the step. - branding: Build branding (chromium or chrome). - build_type: Type of system to build for ('x86', 'clang', or 'arm'). - product: product to build for (ie. 'chromecast', 'audio'). - build_flavor: Flavor of build ('Debug', 'Eng', 'Release'). - build_args_official: Whether to do an official build (disables debugging). - sanitizer: Clang saniziter to run with ('asan', 'msan', 'tsan', 'ubsan'). build_args_product: The build/args/product/*.gn product to build for. build_args_official: Whether the build is an official build. MUST be set for any build that will ship to users. Disables debugging; do not @@ -50,72 +42,19 @@ """ super().__init__(name=name, **kwargs) - # TODO(b/73231972) remove branding, build_type, product, build_flavor - # after migration to new builds - assert branding in ['chromium', 'chrome', None] - assert build_type in ['x86', 'clang', 'arm', 'arm64', None] - assert product in [ - 'chromecast', 'audio', 'android', 'atv', 'display', None] - assert build_flavor in ['Debug', 'Eng', 'Release', None] - assert sanitizer in ['asan', 'msan', 'tsan', 'ubsan', None] assert build_args_product assert build_args_official is not None - self._branding = branding - self._build_type = build_type - self._product = product - self._build_flavor = build_flavor self._build_args_official = build_args_official - self._enable_gn_check = gn_utils.is_gn_check_enabled(self.manifest_branch, - product) - self._sanitizer = sanitizer + self._enable_gn_check = True self._build_args_product = build_args_product self._build_target = kwargs.get('build_target') # Re-calculate the out directory. This mimics the calculation done in - # build_chromecast.py because we don't want to just import it and we can't - # refactor it because we have old branches we need to be able to build. + # build_chromecast.py. chrome_root = self.get_project_path('chromium/src') - self._outdir = os.path.join(chrome_root, 'out_' + build_args_product) - if self._build_flavor is None: - return - build_out_parts = ['out', build_type, product, 'gn'] - if sanitizer: - build_out_parts.append(sanitizer) - self._build_out_dir = os.path.join(chrome_root, '_'.join(build_out_parts)) - flavor_part = 'Release' if build_flavor == 'Eng' else build_flavor - self._outdir = os.path.join(self._build_out_dir, flavor_part) - - @property - def build_type_dir(self): - # TODO(b/73231972) remove build_type based logic once deprecated - if self._build_type is None: - if '_arm_' in self._build_args_product: - return 'arm' - elif '_arm64_' in self._build_args_product: - return 'arm64' - elif '_x86_' in self._build_args_product: - return 'x86' - return 'clang' - return self._build_type - - @property - def build_flavor_dir(self): - # TODO(b/73231972) remove build_flavor based logic once deprecated - # castshell builds had build_flavor == Debug despite non debug suffix - if self._build_flavor is None: - return 'Debug' if ('debug' in self._build_args_product or - 'castshell' in self._build_args_product - ) else 'Release' - return 'Release' if self._build_flavor == 'Eng' else self._build_flavor - - @property - def build_product_dir(self): - # TODO(b/73231972) remove product based logic once deprecated - if self._product is None: - return 'chromecast' - return self._product + self._outdir = os.path.join(chrome_root, 'out', build_args_product) def _get_minimum_required_argv_for_outdir(self): """Returns the arguments needed to get the outdir from build_chromecast.py. @@ -138,19 +77,6 @@ '--build_number', self.build_number, '--chrome_root', self.get_project_path('chromium/src')] - # TODO(b/73231972) remove unused flags once migrated to new builds - if self._build_flavor: - argv += ['--build_flavor', self._build_flavor] - if self._build_type: - argv += ['--build_type', self._build_type] - if self._branding: - argv += ['--chromecast_branding', self._branding] - if self._product: - argv += ['--product_name', self._product] - - if self._sanitizer: - argv += ['--sanitizer', self._sanitizer] - if self._build_target: argv += ['--build_target', self._build_target] @@ -163,26 +89,18 @@ class CastShellStep(NonOtaBuildBaseStep, gn_check_step.GnCheckStepBase): """Build step class for building cast_shell.""" - def __init__(self, branding, build_type, product, build_flavor, - enable_assistant, sanitizer=None, archive_to_tmp=False, + def __init__(self, + archive_to_tmp=False, skip_create_zip=False, strip_binaries=False, **kwargs): """Creates a CastShellStep instance. Args: - branding: Build branding ('chromium' or 'chrome'). - build_type: Type of system to build for ('x86', 'clang', or 'arm'). - product: product to build for (ie. 'chromecast', 'audio'). - build_flavor: Flavor of build ('Debug', 'Eng', 'Release'). - enable_assistant: enable Assistant functionality. Audio products only. - sanitizer: Clang saniziter to run with ('asan', 'msan', 'tsan', 'ubsan'). **kwargs: Any additional args to pass to BaseStep. """ self._enable_code_coverage = kwargs.pop('code_coverage', False) gn_check_step.GnCheckStepBase.__init__(self, **kwargs) - NonOtaBuildBaseStep.__init__(self, 'build cast_shell', branding, - build_type, product, build_flavor, - sanitizer=sanitizer, **kwargs) - self._enable_assistant = enable_assistant + NonOtaBuildBaseStep.__init__(self, 'build cast_shell', + **kwargs) self._archive_to_tmp = archive_to_tmp self._skip_create_zip = skip_create_zip self._strip_binaries = strip_binaries @@ -214,27 +132,12 @@ '--chrome_root', self.get_project_path('chromium/src')] command += self.build_accelerator.build_chromecast_flags - # TODO(b/73231972) remove unused flags once migrated to new builds - if self._build_flavor: - command += ['--build_flavor', self._build_flavor] - if self._build_type: - command += ['--build_type', self._build_type] - if self._branding: - command += ['--chromecast_branding', self._branding] - if self._product: - command += ['--product_name', self._product] if self._build_args_official: command += ['--official'] - if self._enable_assistant: - command += ['--enable_assistant'] - if self._enable_gn_check: command += ['--enable_gn_check'] - if self._sanitizer: - command += ['--sanitizer', self._sanitizer] - if self._build_target: command += ['--build_target', self._build_target]
diff --git a/cq/scripts/slave/step/code_coverage_step.py b/cq/scripts/slave/step/code_coverage_step.py index 12f16e4..4687358 100644 --- a/cq/scripts/slave/step/code_coverage_step.py +++ b/cq/scripts/slave/step/code_coverage_step.py
@@ -32,18 +32,13 @@ class RunCoverageCommandStep(cast_shell_step.NonOtaBuildBaseStep): """Build step class generating code coverage data.""" - def __init__(self, branding, build_type, product, build_flavor, - sanitizer=None, build_args_product=None, junit=False, + def __init__(self, + build_args_product=None, junit=False, ignore_filename_regex=None, report_format=None, build_out_dir=None, test_env=None, **kwargs): """Creates a RunCoverageCommandStep instance. Args: - branding: Build branding (chromium or chrome). - build_type: Type of system to build for ('x86', 'clang', or 'arm'). - product: product to build for (ie. 'chromecast', 'audio'). - build_flavor: Flavor of build ('Debug', 'Eng', 'Release'). - sanitizer: Clang sanitizer to run with ('asan', 'msan', 'tsan', 'ubsan'). build_args_product: The name of one of the chromecast/internal/build/args/product files to use for the GN args. junit: If true, run junit tests, otherwise run gtests (Default False). @@ -56,29 +51,19 @@ **kwargs: Any additional args to pass to BaseStep. """ cast_shell_step.NonOtaBuildBaseStep.__init__( - self, 'generate coverage data', branding, build_type, - product, build_flavor, sanitizer=sanitizer, timeout_secs=0, + self, 'generate coverage data', + timeout_secs=0, build_args_product=build_args_product, **kwargs) self._junit = junit self._ignore_filename_regex = ignore_filename_regex self._format = report_format - self._build_out_dir = build_out_dir + if not any((build_args_product, build_out_dir)): + raise ValueError("You must specify at least one of build_args_product " + "or build_out_dir") + self._build_out_dir = build_out_dir or f'out/{build_args_product}' self._test_env = test_env - def _get_build_out_dir(self, use_flavor=False): - if self._build_out_dir: - return self._build_out_dir - - out_dir = ['out', self.build_type_dir, self.build_product_dir, 'gn'] - if self._sanitizer: - out_dir.append(self._sanitizer) - - if use_flavor: - return os.path.join('_'.join(out_dir), self.build_flavor_dir) - - return '_'.join(out_dir) - def _generate_coverage_args(self, test_list): """Generates unit test related arguments for the coverage script. @@ -119,7 +104,7 @@ Returns: String argument representation of test command for the coverage script. """ - test_path = os.path.join(self._get_build_out_dir(use_flavor=True), + test_path = os.path.join(self._build_out_dir, test_command[0]) return '{} {}'.format(test_path, ' '.join(test_command[1:])) @@ -153,7 +138,7 @@ command = [vpython3_path, coverage_script_path] command += test_binary_list command += [ - '-o', report_path, '-b', self._get_build_out_dir(use_flavor=True), '-v'] + '-o', report_path, '-b', self._build_out_dir, '-v'] if self._format: command += ['--format', self._format] if self._ignore_filename_regex: @@ -181,6 +166,9 @@ pass # Ignore the error if the folder hasn't been created yet. time.sleep(60) + if subprocess.returncode != 0: + return False + try: shutil.copyfile(log_file_path, os.path.join(self.get_gcs_dir(), 'coverage.py.log'))
diff --git a/cq/scripts/slave/step/fuchsia_emulator_step.py b/cq/scripts/slave/step/fuchsia_emulator_step.py index 6a22d6b..623bcf7 100644 --- a/cq/scripts/slave/step/fuchsia_emulator_step.py +++ b/cq/scripts/slave/step/fuchsia_emulator_step.py
@@ -43,7 +43,7 @@ def __init__(self, fuchsia_sdk_root, fuchsia_workdir, - product='terminal.qemu-x64', + product='terminal.x64', name='Unknown FEMU step', **kwargs): """Creates a BaseFuchsiaEmulatorStep instance.
diff --git a/cq/scripts/slave/step/gn_check_step.py b/cq/scripts/slave/step/gn_check_step.py index bb8fd9e..90497ca 100644 --- a/cq/scripts/slave/step/gn_check_step.py +++ b/cq/scripts/slave/step/gn_check_step.py
@@ -134,7 +134,7 @@ **kwargs: Any additional args to pass to BaseStep. """ GnCheckStepBase.__init__(self, **kwargs) - self._enable_gn_check = gn_utils.is_gn_check_enabled(self.manifest_branch) + self._enable_gn_check = True self._product = build_name.split('-')[0] self._is_mesh_build = build_name.endswith(_MESH_TAG) self._build_name = build_name.replace(_MESH_TAG, '-eng')
diff --git a/cq/scripts/slave/step/jacoco_coverage_processing_step.py b/cq/scripts/slave/step/jacoco_coverage_processing_step.py index ac4b719..299673f 100644 --- a/cq/scripts/slave/step/jacoco_coverage_processing_step.py +++ b/cq/scripts/slave/step/jacoco_coverage_processing_step.py
@@ -18,14 +18,9 @@ def __init__( self, - branding, - build_type, - product, - build_flavor, coverage_dir, report_out_dir='report', report_format='xml', - sanitizer=None, build_args_product=None, build_args_official=None, **kwargs, @@ -33,16 +28,10 @@ """Creates a JacocoCoverageProcessingStep instance. Args: - branding: Build branding (chromium or chrome). - build_type: Type of system to build for ('x86', 'clang', or 'arm'). - product: product to build for (ie. 'chromecast', 'audio'). - build_flavor: Flavor of build ('Debug', 'Eng', 'Release'). coverage_dir: Directory under the build directory that contains the jacoco exec files. report_out_dir: Directory under the gcs directory, to output coverage report. - sanitizer: Clang sanitizer to run with - ('asan', 'msan', 'tsan', 'ubsan'). build_args_product: The name of one of the chromecast/internal/build/args/product files to use for the GN args. report_format: Output format of the jacoco coverage report @@ -54,11 +43,6 @@ """ super().__init__( 'process jacoco code coverage data.', - branding, - build_type, - product, - build_flavor, - sanitizer, build_args_product, build_args_official, **kwargs,
diff --git a/cq/scripts/slave/step/kythe_step.py b/cq/scripts/slave/step/kythe_step.py deleted file mode 100644 index d37d48f..0000000 --- a/cq/scripts/slave/step/kythe_step.py +++ /dev/null
@@ -1,76 +0,0 @@ -"""Build steps to run Kythe commands on eureka internal.""" - -import os - -from helpers import git_utils -from slave.step import shell_step - -KYTHE_RUN_EXTRACTOR_BINARY = \ - "chromecast/internal/third_party/kythe/tools/runextractor" -KYTHE_CXX_EXTRACTOR_BINARY = \ - "chromecast/internal/third_party/kythe/extractors/cxx_extractor" -KYTHE_KZIP_BINARY = "chromecast/internal/third_party/kythe/tools/kzip" -EUREKA_INTERNAL_CORUPUS = "eureka-internal.googlesource.com/codesearch" -VNAMES_JSON_FILE_LOCATION = \ - "cq/scripts/resources/kythe_step/vnames.json" - - -class GenerateKzipStep(shell_step.ShellStep): - - def __init__(self, cwd, tests_root, chromium_root, out_dir, compdb_file, - min_expected_kzip_bytes, *args, **kwargs): - super().__init__(name="kythe_gen", cwd=cwd, *args, **kwargs) - - self._tests_root = tests_root - self._chromium_root = chromium_root - self._compdb_file = compdb_file - self._min_kzip_size = min_expected_kzip_bytes - - self._runextractor_binary = os.path.join(self._chromium_root, - KYTHE_RUN_EXTRACTOR_BINARY) - self._cxx_extractor_binary = os.path.join(self._chromium_root, - KYTHE_CXX_EXTRACTOR_BINARY) - self._kzip_binary = os.path.join(self._chromium_root, KYTHE_KZIP_BINARY) - self._kythe_output_directory = os.path.join(out_dir, "kythe-output") - head_sha = git_utils.get_head_sha(self, directory=self._chromium_root) - if head_sha is None: - raise ValueError("Head SHA could not be determined for {}".format( - self._chromium_root)) - self._merged_kzip_file = os.path.join(out_dir, head_sha + ".kzip") - self._initialize_env() - - def get_kythe_output_file(self): - return self._merged_kzip_file - - def _initialize_env(self): - os.environ["KYTHE_ROOT_DIRECTORY"] = os.path.abspath(self._chromium_root) - os.environ["KYTHE_CORPUS"] = EUREKA_INTERNAL_CORUPUS - os.environ["KYTHE_OUTPUT_DIRECTORY"] = self._kythe_output_directory - os.environ["KYTHE_VNAMES"] = os.path.join(self._tests_root, - VNAMES_JSON_FILE_LOCATION) - - def get_commands(self): - cmd_prep_output = ["mkdir", "-p", self._kythe_output_directory] - cmd_gen_kzips = [ - self._runextractor_binary, "compdb", "-extractor", - self._cxx_extractor_binary, "-path", self._compdb_file - ] - cmd_merge_kzips = [ - self._kzip_binary, "merge", "--output", self._merged_kzip_file, - "--recursive", self._kythe_output_directory - ] - cmd_validate_kzip = ["du", "-b", self._merged_kzip_file] - return [ - self.ShellCommand(cmd_prep_output, validator=self._validator), - self.ShellCommand(cmd_gen_kzips, validator=self._validator), - self.ShellCommand(cmd_merge_kzips, validator=self._validator), - self.ShellCommand( - cmd_validate_kzip, validator=self._validate_merged_kzip) - ] - - def _validate_merged_kzip(self, returncode, stdout, stderr): - if returncode != 0: - return False - - byte_size = stdout.split()[0] - return byte_size.isdigit() and int(byte_size) > self._min_kzip_size
diff --git a/cq/scripts/slave/step/ota_factory_tool_step.py b/cq/scripts/slave/step/ota_factory_tool_step.py index 3f116ca..5eee990 100644 --- a/cq/scripts/slave/step/ota_factory_tool_step.py +++ b/cq/scripts/slave/step/ota_factory_tool_step.py
@@ -52,12 +52,12 @@ def _copy_factory_tool_to_factory(self, factory_tool_types): """Copy factory tools to tool_type folder""" - product = self._build_name.split('-')[0] + product, variant = self._build_name.split('-') for factory_tool_type in factory_tool_types: # Use BUILD_NUMBER as factory tools version target_files_zip = self.factory_config['source_tool_path'].format( product=product, tool_type=factory_tool_type, - version=self.build_number, ext='zip') + variant=variant, version=self.build_number, ext='zip') target_files_no_ext, zip_ext = os.path.splitext( os.path.basename(target_files_zip)) dest_file_path = os.path.join(self._ota_archive_output_dir(), 'factory', @@ -70,7 +70,7 @@ if factory_tool_type == 'runin2_package': runin_sh = self.factory_config['source_tool_path'].format( product=product, tool_type=factory_tool_type, - version=self.build_number,ext='sh') + variant=variant, version=self.build_number,ext='sh') runin_sh_dest_path = os.path.join(self._ota_archive_output_dir(), 'factory', '{}{}'.format(target_files_no_ext, '.sh')) returncode, _, _ = self.exec_subprocess( @@ -79,7 +79,7 @@ return False # Copy runin profiles and rename with self.BUILD_NUMBER runin_profile_path = self.factory_config['runin_profile_path'].format( - product=product) + product=product, variant=variant) returncode, _, _ = self.exec_subprocess(['cp', '-r', runin_profile_path, os.path.join(self._ota_archive_output_dir(), 'factory')])
diff --git a/cq/scripts/slave/step/ota_fct_step.py b/cq/scripts/slave/step/ota_fct_step.py index 808d57a..ee8b33c 100644 --- a/cq/scripts/slave/step/ota_fct_step.py +++ b/cq/scripts/slave/step/ota_fct_step.py
@@ -54,10 +54,10 @@ def _copy_factory_target_files_to_out_artifacts(self, factory_image_types): """These are used for resigning factory images e.g. prod reflashimage.""" - product = self._build_name.split('-')[0] + product, variant = self._build_name.split('-') for image_type in factory_image_types: target_files_zip = self.factory_config['source_binary_path'].format( - product=product, image_type=image_type) + product=product, variant=variant, image_type=image_type) target_files_no_ext, zip_ext = os.path.splitext( os.path.basename(target_files_zip)) dest_file_path = os.path.join(self._ota_archive_output_dir(), 'factory',
diff --git a/cq/scripts/slave/step/ota_resign_step.py b/cq/scripts/slave/step/ota_resign_step.py index 16e0983..216f8da 100644 --- a/cq/scripts/slave/step/ota_resign_step.py +++ b/cq/scripts/slave/step/ota_resign_step.py
@@ -5,26 +5,26 @@ from slave import base_step from slave.step import ota_step -SOURCE_BINARY_PATH = ('out/target/product/{product}/obj/PACKAGING/' +SOURCE_BINARY_PATH = ('out/target/product/{product}-{variant}/obj/PACKAGING/' 'target_files_intermediates/' '{product}-target_files-{buildset}.zip') -SOURCE_FACTORY_PATH = ('out/target/product/{product}/factory/' +SOURCE_FACTORY_PATH = ('out/target/product/{product}-{variant}/factory/' '{image_type}/hostboot-target-files.zip') -SOURCE_USBSTICK_PATH = ('out/target/product/{product}/factory/' +SOURCE_USBSTICK_PATH = ('out/target/product/{product}-{variant}/factory/' '{image_type}/usbstick-target-files.zip') DESTINATION_USBSTICK_IMAGE_PATH = ('{output_dir}/factory/{product}-' '{image_type}-{variant}-{buildset}.img') -SOURCE_FACTORY_TOOL_PATH = ('out/target/product/{product}/' +SOURCE_FACTORY_TOOL_PATH = ('out/target/product/{product}-{variant}/' 'factory-{tool_type}-{product}-{version}.{ext}') -RUNIN2_PROFILE_PATH = ('out/target/product/{product}/' +RUNIN2_PROFILE_PATH = ('out/target/product/{product}-{variant}/' 'factory/profile/') -FCT_ZIP_PATH = ('out/target/product/{product}/factory/' +FCT_ZIP_PATH = ('out/target/product/{product}-{variant}/factory/' '{product}-fct-{buildset}.zip') AMLOGIC_RESIGN_COMMAND = [ @@ -58,6 +58,11 @@ '-v', ] +SWIFT_RESIGN_COMMAND = [ + './vendor/amlogic/swift/build/tools/releasetools/ota_from_target_files', + '-v', +] + GQ_RESIGN_COMMAND = [ './vendor/amlogic/gq/build/tools/releasetools/ota_from_target_files', '-v', @@ -116,6 +121,16 @@ '-v', ] +BSV3_RESIGN_COMMAND = [ + './vendor/amlogic/bsv3/build/tools/releasetools/ota_from_target_files', + '-v', +] + +BLA4_RESIGN_COMMAND = [ + './vendor/amlogic/bla4/build/tools/releasetools/ota_from_target_files', + '-v', +] + ASSISTANTDEFAULT_RESIGN = { 'command': ['cp'], 'source_binary_path': '{dist_dir}/{product}-ota-{buildset}.zip', @@ -414,6 +429,25 @@ ], } +LUMIA_FACTORY = { + 'command': LUMIA_RESIGN_COMMAND, + 'factory_image_types': ['fct'], + 'source_binary_path': SOURCE_FACTORY_PATH, + 'variants': [ + {'board': 'lumia-p0', 'usb_host_package': None}, + ], +} + +SWIFT_RESIGN = { + 'command': SWIFT_RESIGN_COMMAND, + 'variants': [ + {'board': 'swift-p0'}, + {'board': 'swift-p0', 'omaha_channel': 'beta-channel'}, + {'board': 'swift-p1'}, + {'board': 'swift-p1', 'omaha_channel': 'beta-channel'}, + ], +} + GQ_RESIGN = { 'command': GQ_RESIGN_COMMAND, 'variants': [ @@ -690,6 +724,13 @@ 'runin_profile_path': RUNIN2_PROFILE_PATH } +BSV3_FACTORY_TOOL = { + 'command':['make'], + 'factory_tool_types': ['provision_package'], + 'source_tool_path': SOURCE_FACTORY_TOOL_PATH, + 'runin_profile_path': RUNIN2_PROFILE_PATH +} + A049_FACTORY_TOOL = { 'command':['make'], 'factory_tool_types': ['provision_package', 'runin2_package'], @@ -1028,6 +1069,39 @@ ], } +BSV3_RESIGN = { + 'command': BSV3_RESIGN_COMMAND, + 'variants': [ + {'board': 'bsv3-p1'}, + ], +} + +BSV3_FACTORY = { + 'command': BSV3_RESIGN_COMMAND, + 'factory_image_types': ['fct'], + 'source_binary_path': SOURCE_FACTORY_PATH, + 'variants': [ + {'board': 'bsv3-p1', 'usb_host_package': None}, + ], +} + +BSV3_USBSTICK = { + 'command': BSV3_RESIGN_COMMAND, + 'factory_image_types': ['reflash', 'partdump', 'fctsecure'], + 'source_binary_path': SOURCE_USBSTICK_PATH, + 'destination_path_template': DESTINATION_USBSTICK_IMAGE_PATH, + 'variants': [ + {'board': 'bsv3-p1', 'usb_stick_image': None}, + ], +} + +BLA4_RESIGN = { + 'command': BLA4_RESIGN_COMMAND, + 'variants': [ + {'board': 'bla4-p0'}, + ], +} + def get_resign_steps(build_name, resign_config, build_branch, apply_dev_signing, **step_kwargs): """Returns list of resign steps if any. @@ -1126,7 +1200,7 @@ channel = '' ota_step.OtaStep.__init__(self, build_name=build_name, name=name, **kwargs) - product = self._build_name.split('-')[0] + product, variant = self._build_name.split('-') if destination_path_template is None: if factory_image_type: @@ -1147,6 +1221,7 @@ self._resign_command.append(source_binary_path.format( dist_dir=self._dist_dir(), product=product, + variant=variant, image_type=factory_image_type, buildset=self.build_number)) @@ -1188,12 +1263,13 @@ # pylint: disable=non-parent-init-called ota_step.OtaStep.__init__(self, build_name=build_name, name=name, **kwargs) - product = self._build_name.split('-')[0] + product, variant = self._build_name.split('-') self._resign_command = command[:] self._resign_command.append(params['board']) self._resign_command.append(source_binary_path.format( dist_dir=self._dist_dir(), product=product, + variant=variant, buildset=self.build_number)) self._resign_command.append('{output_dir}/factory'.format( output_dir=self._ota_archive_output_dir()))
diff --git a/cq/scripts/slave/step/ota_step.py b/cq/scripts/slave/step/ota_step.py index d50b68d..1ce772c 100644 --- a/cq/scripts/slave/step/ota_step.py +++ b/cq/scripts/slave/step/ota_step.py
@@ -407,6 +407,8 @@ ota_files = [f for f in dist_files if archive_pattern.match(f)] self._log_ota_size(ota_files) if not self._max_ota_size: + sys.stdout.write("No max_ota_size defined for this build") + sys.stdout.flush() return True for ota_file in ota_files: @@ -418,6 +420,15 @@ sys.stdout.flush() self.add_review({'message': message}) return False + else: + sys.stdout.write( + "OTA file {} size: {} bytes out of {} maximum ({}%)".format( + ota_file, + ota_size, + self._max_ota_size, + round((ota_size / self._max_ota_size) * 100, 2), + )) + sys.stdout.flush() return True def _log_ota_size(self, ota_files): @@ -490,12 +501,13 @@ class OtaCameraTargetsStep(base_step.BaseStep): """Ota Property file step class for generating repo.prop.""" - def __init__(self, product_name, is_eng_build, name='camera targets check', + def __init__(self, product_name, variant, is_eng_build, name='camera targets check', **kwargs): """Creates a OtaCameraTargets instance. Args: product_name: product name without variant, e.g. spencer, venus + variant: either 'eng' or 'user' is_eng_build: if this build is eng build name: user-visible name of this step. **kwargs: Any additional args to pass to BaseStep. @@ -503,6 +515,7 @@ base_step.BaseStep.__init__(self, name='camera targets check', **kwargs) self._is_eng_build = is_eng_build self._product_name = product_name + self._variant = variant def run(self): eng_targets = [ @@ -514,12 +527,12 @@ general_targets = [ '/obj/lib/libcast_camera_hal.so' ] if self._is_eng_build: for t in eng_targets: - abs_path = 'out/target/product/' + self._product_name + t + abs_path = f'out/target/product/{self._product_name}-{self._variant}{t}' if not os.path.exists(abs_path): logging.error('Missing binary %s' % abs_path) return False for b in general_targets: - abs_path = 'out/target/product/' + self._product_name + b + abs_path = f'out/target/product/{self._product_name}-{self._variant}{b}' if not os.path.exists(abs_path): logging.error('Missing binary %s' % abs_path) return False @@ -547,8 +560,9 @@ chromium_src = 'chromium/src' usonia_tarball = os.path.join(chromium_src, 'usonia-{}.tar.gz'.format(self.build_number)) + variant = self._build_name.split('-')[-1] command = ['chromecast/internal/usonia/package_wifi.py', '-o', - '-f', '.', self.build_number] + '-f', '.', self.build_number, variant] returncode, stdout, stderr = self.exec_subprocess( command, env=self.make_command_env(), cwd=chromium_src) if returncode != 0: @@ -580,11 +594,13 @@ tarball = os.path.join(chromium_src, 'thread_telemetry_service-{}.tar.gz'.format( self.build_number)) + variant = self._build_name.split('-')[-1] command = [ 'chromecast/internal/device/thread/' 'build_thread_telemetry_service_cros.py', '-o', '-f', + variant, '.', self.build_number, ]
diff --git a/cq/scripts/slave/step/unittest_step.py b/cq/scripts/slave/step/unittest_step.py index d7bc89c..6e13dfa 100644 --- a/cq/scripts/slave/step/unittest_step.py +++ b/cq/scripts/slave/step/unittest_step.py
@@ -54,11 +54,6 @@ """Build step class for building unit tests.""" def __init__(self, - branding, - build_type, - product, - build_flavor, - enable_assistant, sanitizer=None, code_coverage=False, absolute_coverage=False, @@ -69,11 +64,6 @@ """Instantiate the class. Args: - branding: Build branding (chromium or chrome). - build_type: Type of system to build for ('x86', 'clang', or 'arm'). - product: product to build for (ie. 'chromecast', 'audio'). - build_flavor: Flavor of build ('Debug', 'Eng', 'Release'). - enable_assistant: enable Assistant functionality. Audio products only. sanitizer: Clang saniziter to run with ('asan', 'msan', 'tsan', 'ubsan'). code_coverage: True if code coverage is enabled for this build. absolute_coverage: True if you want to run coverage for all unit tests. @@ -92,15 +82,9 @@ cast_shell_step.NonOtaBuildBaseStep.__init__( self, step_name, - branding, - build_type, - product, - build_flavor, - sanitizer=sanitizer, build_args_product=build_args_product, build_args_official=build_args_official, **kwargs) - self._enable_assistant = enable_assistant self._code_coverage = code_coverage self._absolute_coverage = absolute_coverage self._junit = junit @@ -124,14 +108,6 @@ command += self.build_accelerator.build_chromecast_flags # TODO(b/73231972) remove unused flags once migrated to new builds - if self._build_flavor: - command += ['--build_flavor', self._build_flavor] - if self._build_type: - command += ['--build_type', self._build_type] - if self._branding: - command += ['--chromecast_branding', self._branding] - if self._product: - command += ['--product_name', self._product] if self._build_args_official: command += ['--official'] @@ -140,12 +116,6 @@ if self.get_property('build_system') == 'catabuilder': command += ['--enable_gn_check'] - if self._enable_assistant: - command += ['--enable_assistant'] - - if self._sanitizer: - command += ['--sanitizer', self._sanitizer] - if self._junit: command += ['--use_junit'] @@ -184,17 +154,14 @@ def _get_unit_test_out_dir(self): """Generate build-specific out dir name. - Out dir created by _BUILD_CHROMECAST_SCRIPT in format below: - out_<build_type>_<product>_<gn>[_<sanitizer>] - e.g. out_arm_android_gn for content_shell_udon_arm_debug_gn build. + The out_dir needs to match the name of the build_args_product. + + E.g. out/atv_arm_eng for Android eng builds. Returns: Path to UnittestStep out dir """ - out_dir = ['out', self.build_type_dir, self.build_product_dir, 'gn'] - if self._sanitizer: - out_dir.append(self._sanitizer) - return '_'.join(out_dir) + return os.path.join(['out', self._build_args_product]) def ArchiveUnitTests(self, dest_name='test_deps.zip'): # pylint: disable=method-hidden """Saving build_tests_android.zip to gcs_dir. @@ -215,7 +182,7 @@ out_dir = self._get_unit_test_out_dir() archive_path = 'chromium/src/{}/{}/tests/build_tests_android.zip'.format( - out_dir, self.build_flavor_dir) + out_dir) # Archive only if build_tests_android.zip was generated if not os.path.isfile(archive_path): @@ -406,10 +373,6 @@ """Build step class for running x86 unit tests, if any.""" def __init__(self, - branding, - build_type, - product, - build_flavor, report_url, recipe_steps, sanitizer=None, @@ -421,10 +384,6 @@ """Instantiate the class. Args: - branding: Build branding (chromium or chrome). - build_type: Type of system to build for ('x86', 'clang', or 'arm'). - product: product to build for (ie. 'chromecast', 'audio'). - build_flavor: Flavor of build ('Debug', 'Eng', 'Release'). report_url: The URL the code coverage report can be accessed at. recipe_steps: Reference to the list of steps for this recipe. sanitizer: Clang saniziter to run with ('asan', 'msan', 'tsan', 'ubsan'). @@ -441,11 +400,6 @@ cast_shell_step.NonOtaBuildBaseStep.__init__( self, step_name, - branding, - build_type, - product, - build_flavor, - sanitizer=sanitizer, build_args_product=build_args_product, build_args_official=build_args_official, **kwargs) @@ -456,6 +410,7 @@ self._report_url = report_url self._recipe_steps = recipe_steps + self._sanitizer = sanitizer self._junit = junit self._enable_network_service = enable_network_service self._step_kwargs = kwargs @@ -531,19 +486,10 @@ self.manifest_branch, '--build_number', self.build_number, '--test_name', test_name ] - # TODO(b/73231972) remove unused flags once migrated to new builds - if self._build_flavor and self._product: - wrapper_command += [ - '--build_flavor', - self._build_flavor, - '--product_name', - self._product, - ] - else: - wrapper_command += [ - '--build_args_product', - self._build_args_product, - ] + wrapper_command += [ + '--build_args_product', + self._build_args_product, + ] return shell_step.ShellStep( name='summary json for {}'.format(test_name), command=wrapper_command,
diff --git a/cq/scripts/slave/step/x86_camera_step.py b/cq/scripts/slave/step/x86_camera_step.py index c065d1b..f1ab6a0 100644 --- a/cq/scripts/slave/step/x86_camera_step.py +++ b/cq/scripts/slave/step/x86_camera_step.py
@@ -259,11 +259,12 @@ def run(self): commands = self.get_commands() + target_product = TARGET_PRODUCT[self.product] env = { 'LD_LIBRARY_PATH': ":".join( ['../../../../prebuilt/toolchain/x86_64/usr/lib64', os.path.join('../../../../out/target/product', - '{}/system/lib'.format(TARGET_PRODUCT[self.product])) + f'{target_product}-{BUILD_VARIANT}/system/lib') ]) } for command in commands:
diff --git a/cq/scripts/tools/run_recipe.py b/cq/scripts/tools/run_recipe.py index 7f2cbe3..8cd403c 100755 --- a/cq/scripts/tools/run_recipe.py +++ b/cq/scripts/tools/run_recipe.py
@@ -152,10 +152,9 @@ build_name = properties['buildername'] eureka_root_abs = os.path.abspath(eureka_root) + # manifest file name refer to http://google3/nest/engprod/devinfra/cast/austin/agent/source.py;l=190-191;rcl=628961120 manifest_output_path = ( pathlib.Path(executor.get_gcs_dir()) / repo_utils.MANIFEST_OVERRIDE_XML) - manifest_output_path.write_text( - repo_utils.get_manifest(executor, cwd=eureka_root_abs, quiet=True)) properties['manifest_override_path'] = str(manifest_output_path) annotator.set_build_property( 'manifest_override_path', str(manifest_output_path))
diff --git a/ruff.toml b/ruff.toml new file mode 100644 index 0000000..b420ede --- /dev/null +++ b/ruff.toml
@@ -0,0 +1,3 @@ +# While this is in contradiction to PEP-8 it is +# in line with go/pystyle#indentation +indent-width = 2