diff --git a/infra/config/cr-buildbucket.cfg b/infra/config/cr-buildbucket.cfg index 108fe2b25..dda8d121f 100644 --- a/infra/config/cr-buildbucket.cfg +++ b/infra/config/cr-buildbucket.cfg @@ -336,7 +336,7 @@ buckets { swarming_host: "chromium-swarm.appspot.com" swarming_tags: "vpython:native-python-wrapper" dimensions: "cpu:x86-64" - dimensions: "os:Mac-12" + dimensions: "os:Mac-15" dimensions: "pool:luci.flex.ci" recipe { name: "libyuv/libyuv" @@ -344,8 +344,13 @@ buckets { cipd_version: "refs/heads/main" properties_j: "$build/siso:{\"configs\":[\"builder\"],\"enable_cloud_profiler\":true,\"enable_cloud_trace\":true,\"enable_monitoring\":true,\"project\":\"rbe-webrtc-trusted\"}" properties_j: "builder_group:\"client.libyuv\"" + properties_j: "xcode_build_version:\"17a324\"" } execution_timeout_secs: 10800 + caches { + name: "xcode_mac_17a324" + path: "xcode_mac_17a324.app" + } build_numbers: YES service_account: "libyuv-ci-builder@chops-service-accounts.iam.gserviceaccount.com" } @@ -354,7 +359,7 @@ buckets { swarming_host: "chromium-swarm.appspot.com" swarming_tags: "vpython:native-python-wrapper" dimensions: "cpu:x86-64" - dimensions: "os:Mac-12" + dimensions: "os:Mac-15" dimensions: "pool:luci.flex.ci" recipe { name: "libyuv/libyuv" @@ -362,8 +367,13 @@ buckets { cipd_version: "refs/heads/main" properties_j: "$build/siso:{\"configs\":[\"builder\"],\"enable_cloud_profiler\":true,\"enable_cloud_trace\":true,\"enable_monitoring\":true,\"project\":\"rbe-webrtc-trusted\"}" properties_j: "builder_group:\"client.libyuv\"" + properties_j: "xcode_build_version:\"17a324\"" } execution_timeout_secs: 10800 + caches { + name: "xcode_mac_17a324" + path: "xcode_mac_17a324.app" + } build_numbers: YES service_account: "libyuv-ci-builder@chops-service-accounts.iam.gserviceaccount.com" } @@ -372,7 +382,7 @@ buckets { swarming_host: "chromium-swarm.appspot.com" swarming_tags: "vpython:native-python-wrapper" dimensions: "cpu:x86-64" - dimensions: "os:Mac-12" + dimensions: "os:Mac-15" dimensions: "pool:luci.flex.ci" recipe { name: "libyuv/libyuv" @@ -380,8 +390,13 @@ buckets { cipd_version: "refs/heads/main" properties_j: "$build/siso:{\"configs\":[\"builder\"],\"enable_cloud_profiler\":true,\"enable_cloud_trace\":true,\"enable_monitoring\":true,\"project\":\"rbe-webrtc-trusted\"}" properties_j: "builder_group:\"client.libyuv\"" + properties_j: "xcode_build_version:\"17a324\"" } execution_timeout_secs: 10800 + caches { + name: "xcode_mac_17a324" + path: "xcode_mac_17a324.app" + } build_numbers: YES service_account: "libyuv-ci-builder@chops-service-accounts.iam.gserviceaccount.com" } @@ -542,7 +557,7 @@ buckets { swarming_host: "chromium-swarm.appspot.com" swarming_tags: "vpython:native-python-wrapper" dimensions: "cpu:x86-64" - dimensions: "os:Mac-12" + dimensions: "os:Mac-15" dimensions: "pool:luci.flex.ci" recipe { name: "libyuv/libyuv" @@ -550,8 +565,13 @@ buckets { cipd_version: "refs/heads/main" properties_j: "$build/siso:{\"configs\":[\"builder\"],\"enable_cloud_profiler\":true,\"enable_cloud_trace\":true,\"enable_monitoring\":true,\"project\":\"rbe-webrtc-trusted\"}" properties_j: "builder_group:\"client.libyuv\"" + properties_j: "xcode_build_version:\"17a324\"" } execution_timeout_secs: 10800 + caches { + name: "xcode_ios_17a324" + path: "xcode_ios_17a324.app" + } build_numbers: YES service_account: "libyuv-ci-builder@chops-service-accounts.iam.gserviceaccount.com" } @@ -560,7 +580,7 @@ buckets { swarming_host: "chromium-swarm.appspot.com" swarming_tags: "vpython:native-python-wrapper" dimensions: "cpu:x86-64" - dimensions: "os:Mac-12" + dimensions: "os:Mac-15" dimensions: "pool:luci.flex.ci" recipe { name: "libyuv/libyuv" @@ -568,8 +588,13 @@ buckets { cipd_version: "refs/heads/main" properties_j: "$build/siso:{\"configs\":[\"builder\"],\"enable_cloud_profiler\":true,\"enable_cloud_trace\":true,\"enable_monitoring\":true,\"project\":\"rbe-webrtc-trusted\"}" properties_j: "builder_group:\"client.libyuv\"" + properties_j: "xcode_build_version:\"17a324\"" } execution_timeout_secs: 10800 + caches { + name: "xcode_ios_17a324" + path: "xcode_ios_17a324.app" + } build_numbers: YES service_account: "libyuv-ci-builder@chops-service-accounts.iam.gserviceaccount.com" } @@ -718,7 +743,7 @@ buckets { swarming_host: "chromium-swarm.appspot.com" swarming_tags: "vpython:native-python-wrapper" dimensions: "cpu:x86-64" - dimensions: "os:Mac-12" + dimensions: "os:Mac-15" dimensions: "pool:luci.flex.try" recipe { name: "libyuv/libyuv" @@ -726,8 +751,13 @@ buckets { cipd_version: "refs/heads/main" properties_j: "$build/siso:{\"configs\":[\"builder\"],\"enable_cloud_profiler\":true,\"enable_cloud_trace\":true,\"enable_monitoring\":true,\"project\":\"rbe-webrtc-untrusted\"}" properties_j: "builder_group:\"tryserver.libyuv\"" + properties_j: "xcode_build_version:\"17a324\"" } execution_timeout_secs: 10800 + caches { + name: "xcode_ios_17a324" + path: "xcode_ios_17a324.app" + } build_numbers: YES service_account: "libyuv-try-builder@chops-service-accounts.iam.gserviceaccount.com" } @@ -736,7 +766,7 @@ buckets { swarming_host: "chromium-swarm.appspot.com" swarming_tags: "vpython:native-python-wrapper" dimensions: "cpu:x86-64" - dimensions: "os:Mac-12" + dimensions: "os:Mac-15" dimensions: "pool:luci.flex.try" recipe { name: "libyuv/libyuv" @@ -744,8 +774,13 @@ buckets { cipd_version: "refs/heads/main" properties_j: "$build/siso:{\"configs\":[\"builder\"],\"enable_cloud_profiler\":true,\"enable_cloud_trace\":true,\"enable_monitoring\":true,\"project\":\"rbe-webrtc-untrusted\"}" properties_j: "builder_group:\"tryserver.libyuv\"" + properties_j: "xcode_build_version:\"17a324\"" } execution_timeout_secs: 10800 + caches { + name: "xcode_ios_17a324" + path: "xcode_ios_17a324.app" + } build_numbers: YES service_account: "libyuv-try-builder@chops-service-accounts.iam.gserviceaccount.com" } @@ -906,7 +941,7 @@ buckets { swarming_host: "chromium-swarm.appspot.com" swarming_tags: "vpython:native-python-wrapper" dimensions: "cpu:x86-64" - dimensions: "os:Mac-12" + dimensions: "os:Mac-15" dimensions: "pool:luci.flex.try" recipe { name: "libyuv/libyuv" @@ -914,8 +949,13 @@ buckets { cipd_version: "refs/heads/main" properties_j: "$build/siso:{\"configs\":[\"builder\"],\"enable_cloud_profiler\":true,\"enable_cloud_trace\":true,\"enable_monitoring\":true,\"project\":\"rbe-webrtc-untrusted\"}" properties_j: "builder_group:\"tryserver.libyuv\"" + properties_j: "xcode_build_version:\"17a324\"" } execution_timeout_secs: 10800 + caches { + name: "xcode_mac_17a324" + path: "xcode_mac_17a324.app" + } build_numbers: YES service_account: "libyuv-try-builder@chops-service-accounts.iam.gserviceaccount.com" } @@ -924,7 +964,7 @@ buckets { swarming_host: "chromium-swarm.appspot.com" swarming_tags: "vpython:native-python-wrapper" dimensions: "cpu:x86-64" - dimensions: "os:Mac-12" + dimensions: "os:Mac-15" dimensions: "pool:luci.flex.try" recipe { name: "libyuv/libyuv" @@ -932,8 +972,13 @@ buckets { cipd_version: "refs/heads/main" properties_j: "$build/siso:{\"configs\":[\"builder\"],\"enable_cloud_profiler\":true,\"enable_cloud_trace\":true,\"enable_monitoring\":true,\"project\":\"rbe-webrtc-untrusted\"}" properties_j: "builder_group:\"tryserver.libyuv\"" + properties_j: "xcode_build_version:\"17a324\"" } execution_timeout_secs: 10800 + caches { + name: "xcode_mac_17a324" + path: "xcode_mac_17a324.app" + } build_numbers: YES service_account: "libyuv-try-builder@chops-service-accounts.iam.gserviceaccount.com" } @@ -942,7 +987,7 @@ buckets { swarming_host: "chromium-swarm.appspot.com" swarming_tags: "vpython:native-python-wrapper" dimensions: "cpu:x86-64" - dimensions: "os:Mac-12" + dimensions: "os:Mac-15" dimensions: "pool:luci.flex.try" recipe { name: "libyuv/libyuv" @@ -950,8 +995,13 @@ buckets { cipd_version: "refs/heads/main" properties_j: "$build/siso:{\"configs\":[\"builder\"],\"enable_cloud_profiler\":true,\"enable_cloud_trace\":true,\"enable_monitoring\":true,\"project\":\"rbe-webrtc-untrusted\"}" properties_j: "builder_group:\"tryserver.libyuv\"" + properties_j: "xcode_build_version:\"17a324\"" } execution_timeout_secs: 10800 + caches { + name: "xcode_mac_17a324" + path: "xcode_mac_17a324.app" + } build_numbers: YES service_account: "libyuv-try-builder@chops-service-accounts.iam.gserviceaccount.com" } diff --git a/infra/config/main.star b/infra/config/main.star index 97a470085..6a2983372 100755 --- a/infra/config/main.star +++ b/infra/config/main.star @@ -5,6 +5,10 @@ lucicfg.check_version("1.30.9") +load("@chromium-luci//xcode.star", _xcode = "xcode") + +_XCODE_VERSION = "17a324" + LIBYUV_GIT = "https://chromium.googlesource.com/libyuv/libyuv" LIBYUV_GERRIT = "https://chromium-review.googlesource.com/libyuv/libyuv" @@ -191,14 +195,14 @@ def get_os_dimensions(os): if os == "android": return {"device_type": "walleye"} if os == "ios" or os == "mac": - return {"os": "Mac-12", "cpu": "x86-64"} + return {"os": "Mac-15", "cpu": "x86-64"} elif os == "win": return {"os": "Windows-10", "cores": "8", "cpu": "x86-64"} elif os == "linux": return {"os": "Ubuntu-22.04", "cores": "8", "cpu": "x86-64"} return {} -def libyuv_ci_builder(name, dimensions, properties, triggered_by): +def libyuv_ci_builder(name, dimensions, properties, triggered_by, caches): return luci.builder( name = name, dimensions = dimensions, @@ -213,9 +217,10 @@ def libyuv_ci_builder(name, dimensions, properties, triggered_by): name = "libyuv/libyuv", cipd_package = "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build", ), + caches = caches ) -def libyuv_try_builder(name, dimensions, properties, recipe_name = "libyuv/libyuv"): +def libyuv_try_builder(name, dimensions, properties, caches, recipe_name = "libyuv/libyuv"): return luci.builder( name = name, dimensions = dimensions, @@ -229,11 +234,23 @@ def libyuv_try_builder(name, dimensions, properties, recipe_name = "libyuv/libyu name = recipe_name, cipd_package = "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build", ), + caches = caches ) -def get_build_properties(bucket): +def get_xcode(os): + if os == "mac": + return _xcode.for_mac(_XCODE_VERSION) + if os == "ios": + return _xcode.for_ios(_XCODE_VERSION) + return None + +def get_caches(os): + xcode = get_xcode(os) + return [xcode.cache] if xcode else [] + +def get_build_properties(bucket, os): rbe_project = RBE_PROJECT.get(bucket) - return { + properties = { "$build/siso": { "project": rbe_project, "configs": ["builder"], @@ -242,35 +259,41 @@ def get_build_properties(bucket): "enable_monitoring": True, }, } + xcode = get_xcode(os) + if xcode: + properties["xcode_build_version"] = xcode.version + return properties def ci_builder(name, os, category, short_name = None): dimensions = get_os_dimensions(os) - properties = get_build_properties("ci") + properties = get_build_properties("ci", os) dimensions["pool"] = "luci.flex.ci" properties["builder_group"] = "client.libyuv" triggered_by = ["master-gitiles-trigger" if os != "android" else "Android Debug"] libyuv_ci_view(name, category, short_name) - return libyuv_ci_builder(name, dimensions, properties, triggered_by) + caches = get_caches(os) + return libyuv_ci_builder(name, dimensions, properties, triggered_by, caches) def try_builder(name, os, experiment_percentage = None): dimensions = get_os_dimensions(os) - properties = get_build_properties("try") + properties = get_build_properties("try", os) dimensions["pool"] = "luci.flex.try" properties["builder_group"] = "tryserver.libyuv" + caches = get_caches(os) if name == "presubmit": recipe_name = "run_presubmit" properties["repo_name"] = "libyuv" properties["runhooks"] = True libyuv_try_job_verifier(name, "config", experiment_percentage) - return libyuv_try_builder(name, dimensions, properties, recipe_name) + return libyuv_try_builder(name, dimensions, properties, caches, recipe_name) libyuv_try_job_verifier(name, "master", experiment_percentage) libyuv_try_view(name) - return libyuv_try_builder(name, dimensions, properties) + return libyuv_try_builder(name, dimensions, properties, caches) luci.builder( name = "DEPS Autoroller", diff --git a/infra/config/project.cfg b/infra/config/project.cfg index 72aeea73e..09a40e350 100644 --- a/infra/config/project.cfg +++ b/infra/config/project.cfg @@ -8,6 +8,7 @@ name: "libyuv" access: "group:all" lucicfg { version: "1.45.8" + package_name: "@libyuv-project" package_dir: "." config_dir: "." entry_point: "main.star"