From 2d8f6c3d37cc8f2c5f37c7e25b199487eda07d98 Mon Sep 17 00:00:00 2001 From: Alexandre Lissy Date: Mon, 15 Dec 2025 09:41:15 +0100 Subject: [PATCH 1/2] FxCI: Skip shippable builds for PRs --- .../linux64/profile-generate-enterprise | 6 + .../profile-generate-enterprise | 6 + .../win64/profile-generate-enterprise | 6 + taskcluster/gecko_taskgraph/target_tasks.py | 10 +- .../gecko_taskgraph/transforms/task.py | 2 + taskcluster/gecko_taskgraph/util/verify.py | 2 + .../kinds/beetmover-geckoview/kind.yml | 3 + taskcluster/kinds/build-mac-signing/kind.yml | 1 + taskcluster/kinds/build-signing/kind.yml | 1 + taskcluster/kinds/build/linux.yml | 57 ++++++++- taskcluster/kinds/build/macosx.yml | 44 ++++++- taskcluster/kinds/build/windows.yml | 59 ++++++++- taskcluster/kinds/enterprise-test/kind.yml | 15 ++- taskcluster/kinds/generate-profile/kind.yml | 99 ++++++++++++++- taskcluster/kinds/instrumented-build/kind.yml | 119 +++++++++++++++++- taskcluster/kinds/repackage/kind.yml | 3 + 16 files changed, 416 insertions(+), 17 deletions(-) create mode 100644 browser/config/mozconfigs/linux64/profile-generate-enterprise create mode 100644 browser/config/mozconfigs/macosx64-aarch64/profile-generate-enterprise create mode 100644 browser/config/mozconfigs/win64/profile-generate-enterprise diff --git a/browser/config/mozconfigs/linux64/profile-generate-enterprise b/browser/config/mozconfigs/linux64/profile-generate-enterprise new file mode 100644 index 0000000000000..09fd02a24773f --- /dev/null +++ b/browser/config/mozconfigs/linux64/profile-generate-enterprise @@ -0,0 +1,6 @@ +. $topsrcdir/browser/config/mozconfigs/linux64/nightly-enterprise + +mk_add_options "export MOZ_AUTOMATION_PACKAGE_GENERATED_SOURCES=0" + +ac_add_options --enable-profile-generate=cross +ac_add_options --disable-tests diff --git a/browser/config/mozconfigs/macosx64-aarch64/profile-generate-enterprise b/browser/config/mozconfigs/macosx64-aarch64/profile-generate-enterprise new file mode 100644 index 0000000000000..1a6bfc897436b --- /dev/null +++ b/browser/config/mozconfigs/macosx64-aarch64/profile-generate-enterprise @@ -0,0 +1,6 @@ +. $topsrcdir/browser/config/mozconfigs/macosx64-aarch64/nightly-enterprise + +mk_add_options "export MOZ_AUTOMATION_PACKAGE_GENERATED_SOURCES=0" + +ac_add_options --enable-profile-generate=cross +ac_add_options --disable-tests diff --git a/browser/config/mozconfigs/win64/profile-generate-enterprise b/browser/config/mozconfigs/win64/profile-generate-enterprise new file mode 100644 index 0000000000000..04786b3cd8ef0 --- /dev/null +++ b/browser/config/mozconfigs/win64/profile-generate-enterprise @@ -0,0 +1,6 @@ +. $topsrcdir/browser/config/mozconfigs/win64/nightly-enterprise + +mk_add_options "export MOZ_AUTOMATION_PACKAGE_GENERATED_SOURCES=0" + +ac_add_options --enable-profile-generate=cross +ac_add_options --disable-tests diff --git a/taskcluster/gecko_taskgraph/target_tasks.py b/taskcluster/gecko_taskgraph/target_tasks.py index d1e674e4443f7..eacbd41140af7 100644 --- a/taskcluster/gecko_taskgraph/target_tasks.py +++ b/taskcluster/gecko_taskgraph/target_tasks.py @@ -492,13 +492,17 @@ def filter(task): ): return False - if task.kind == "enterprise-test": - return True - build_platform = task.attributes.get("build_platform") build_type = task.attributes.get("build_type") shippable = task.attributes.get("shippable", False) + level = int(parameters["level"]) + if ("shippable" in task.label or shippable) and level < 3: + return False + + if task.kind == "enterprise-test": + return True + if not build_platform or not build_type: return True diff --git a/taskcluster/gecko_taskgraph/transforms/task.py b/taskcluster/gecko_taskgraph/transforms/task.py index 9fba38076068e..0f3a75d471046 100644 --- a/taskcluster/gecko_taskgraph/transforms/task.py +++ b/taskcluster/gecko_taskgraph/transforms/task.py @@ -2066,8 +2066,10 @@ def add_enterprise_index_routes(config, tasks): if ( not "enterprise" in task["label"] or "upload" in task["label"] + or not "shippable" in task["label"] or task["label"].endswith("/debug") or task["label"].startswith("enterprise-test") + or task["label"].startswith("test-") ): yield task continue diff --git a/taskcluster/gecko_taskgraph/util/verify.py b/taskcluster/gecko_taskgraph/util/verify.py index 35ff4b1ebd0ab..4207f9bf5a029 100644 --- a/taskcluster/gecko_taskgraph/util/verify.py +++ b/taskcluster/gecko_taskgraph/util/verify.py @@ -381,7 +381,9 @@ def has_one_route_with(what): if ( "upload" in task.label + or not "shippable" in task.label or task.label.startswith("enterprise-test") + or task.label.startswith("test-") or task.label.startswith("build-signing") or task.label.startswith("build-mac-signing") ): diff --git a/taskcluster/kinds/beetmover-geckoview/kind.yml b/taskcluster/kinds/beetmover-geckoview/kind.yml index 13974a4925a63..78d72b56d866d 100644 --- a/taskcluster/kinds/beetmover-geckoview/kind.yml +++ b/taskcluster/kinds/beetmover-geckoview/kind.yml @@ -20,15 +20,18 @@ only-for-attributes: not-for-build-platforms: - linux64-shippable/opt + - linux64-enterprise/opt - linux64-enterprise-shippable/opt - linux64-aarch64-shippable/opt - linux64-aarch64-enterprise-shippable/opt - linux64-nightlyasrelease/opt - macosx64-shippable/opt + - macosx64-enterprise/opt - macosx64-enterprise-shippable/opt - macosx64-nightlyasrelease/opt - win32-shippable/opt - win64-shippable/opt + - win64-enterprise/opt - win64-enterprise-shippable/opt - win64-aarch64-shippable/opt - win64-nightlyasrelease/opt diff --git a/taskcluster/kinds/build-mac-signing/kind.yml b/taskcluster/kinds/build-mac-signing/kind.yml index bd8f9d1cd4cf4..6e6e3d30e82f8 100644 --- a/taskcluster/kinds/build-mac-signing/kind.yml +++ b/taskcluster/kinds/build-mac-signing/kind.yml @@ -22,6 +22,7 @@ only-for-build-platforms: - macosx64-shippable/opt - macosx64-devedition/opt - macosx64-aarch64/debug + - macosx64-enterprise/opt - macosx64-enterprise-shippable/opt tasks: diff --git a/taskcluster/kinds/build-signing/kind.yml b/taskcluster/kinds/build-signing/kind.yml index bea9a693af066..878e8ec707600 100644 --- a/taskcluster/kinds/build-signing/kind.yml +++ b/taskcluster/kinds/build-signing/kind.yml @@ -24,6 +24,7 @@ not-for-build-platforms: - macosx64-shippable/opt - macosx64-devedition/opt - macosx64-aarch64/debug + - macosx64-enterprise/opt - macosx64-enterprise-shippable/opt tasks: diff --git a/taskcluster/kinds/build/linux.yml b/taskcluster/kinds/build/linux.yml index a26a072592941..846148421cf73 100644 --- a/taskcluster/kinds/build/linux.yml +++ b/taskcluster/kinds/build/linux.yml @@ -52,16 +52,69 @@ linux64/opt: - onnxruntime-x86_64-linux-gnu linux64-enterprise-shippable/opt: - description: "Linux64 Enterprise Opt" + description: "Linux64 Enterprise Shippable Opt" + use-pgo: true index: product: firefox - job-name: linux64-enterprise-opt + job-name: linux64-enterprise-shippable-opt attributes: shippable: true enable-build-signing: true enable-full-crashsymbols: true shipping-phase: build shipping-product: firefox + treeherder: + platform: linux64-enterprise-shippable/opt + symbol: Bpgo(Bent) + tier: 1 + worker-type: b-linux-docker-xlarge-amd + worker: + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: enterprise + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + # bug 1690154 - enable full symbols on all branches, but only + # upload them on the official set. In conjunction with + # `enable-full-crashsymbols`. + MOZ_ENABLE_FULL_SYMBOLS: "1" + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + - taskcluster_nightly.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + tooltool-downloads: public + run-on-projects: ["enterprise-firefox"] + run-on-repo-type: ["git"] + use-sccache: false + use-python: "3.11" + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump_syms + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + - onnxruntime-x86_64-linux-gnu + +linux64-enterprise/opt: + description: "Linux64 Enterprise Opt" + index: + product: firefox + job-name: linux64-enterprise-opt + attributes: + enable-full-crashsymbols: true + shipping-phase: build + shipping-product: firefox treeherder: platform: linux64-enterprise/opt symbol: Bent diff --git a/taskcluster/kinds/build/macosx.yml b/taskcluster/kinds/build/macosx.yml index 2c8ebae66600e..166778ae75c79 100644 --- a/taskcluster/kinds/build/macosx.yml +++ b/taskcluster/kinds/build/macosx.yml @@ -119,8 +119,7 @@ macosx64-aarch64/debug: worker: max-run-time: 5400 env: - # TODO: Packaging tests without test run will fail - # MOZ_AUTOMATION_PACKAGE_TESTS: "1" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" PERFHERDER_EXTRA_OPTIONS: aarch64 run: config: @@ -206,11 +205,50 @@ macosx64/opt: - onnxruntime-x86_64-apple-darwin macosx64-enterprise-shippable/opt: + description: "MacOS X x64 Enterprise Shippable Cross-compile" + use-pgo: true + index: + job-name: macosx64-enterprise-shippable-opt + attributes: + shippable: true + enable-build-signing: true + enable-full-crashsymbols: true + shipping-phase: build + shipping-product: firefox + treeherder: + platform: osx-cross-enterprise-shippable/opt + symbol: Bpgo(Bent) + tier: 1 + worker-type: b-linux-docker-xlarge-amd + worker: + max-run-time: 7200 + env: + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + PERFHERDER_EXTRA_OPTIONS: enterprise + run: + config: + - builds/releng_base_firefox.py + - builds/releng_base_mac_64_cross_builds.py + extra-config: + mozconfig_platform: macosx64-aarch64 + run-on-projects: ["enterprise-firefox"] + run-on-repo-type: ["git"] + use-sccache: false + use-python: "3.11" + fetches: + toolchain: + - linux64-clang + - linux64-sccache + - macosx64-aarch64-llvm-symbolizer + - macosx64-sdk + - sysroot-wasm32-wasi + - onnxruntime-aarch64-apple-darwin + +macosx64-enterprise/opt: description: "MacOS X x64 Enterprise Cross-compile" index: job-name: macosx64-enterprise-opt attributes: - shippable: true enable-build-signing: true enable-full-crashsymbols: true shipping-phase: build diff --git a/taskcluster/kinds/build/windows.yml b/taskcluster/kinds/build/windows.yml index af8314abd364c..3f88a8e97eef6 100644 --- a/taskcluster/kinds/build/windows.yml +++ b/taskcluster/kinds/build/windows.yml @@ -475,12 +475,69 @@ win64/opt: - upx-3.95-win win64-enterprise-shippable/opt: + description: "Win64 Enterprise Shinpable Opt" + use-pgo: true + index: + product: firefox + job-name: win64-enterprise-shippable-opt + attributes: + shippable: true + enable-build-signing: true + enable-full-crashsymbols: true + shipping-phase: build + shipping-product: firefox + treeherder: + platform: windows2012-64-enterprise-shippable/opt + symbol: Bpgo(Bent) + tier: 1 + worker-type: b-linux-docker-xlarge-amd + worker: + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: enterprise + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + options: [append-env-variables-from-configs] + actions: [get-secrets, build] + script: mozharness/scripts/fx_desktop_build.py + secrets: true + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + extra-config: + stage_platform: win64 + mozconfig_platform: win64 + run-on-projects: ["enterprise-firefox"] + run-on-repo-type: ["git"] + use-sccache: false + fetches: + toolchain: + - linux64-clang + - linux64-rust-cross + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-sccache + - linux64-dump_syms + - linux64-wine + - linux64-winchecksec + - nsis + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + - vs + - dxc-x86_64-pc-windows-msvc + - onnxruntime-x86_64-windows-msvc + - winappsdk-x86_64-pc-windows-msvc + fetch: + - upx-3.95-win + +win64-enterprise/opt: description: "Win64 Enterprise Opt" index: product: firefox job-name: win64-enterprise-opt attributes: - shippable: true enable-build-signing: true enable-full-crashsymbols: true shipping-phase: build diff --git a/taskcluster/kinds/enterprise-test/kind.yml b/taskcluster/kinds/enterprise-test/kind.yml index 314e549b64e80..56f3cb429f544 100644 --- a/taskcluster/kinds/enterprise-test/kind.yml +++ b/taskcluster/kinds/enterprise-test/kind.yml @@ -4,20 +4,23 @@ --- loader: taskgraph.loader.transform:loader +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.enterprise_test:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + only-for-build-platforms: - linux64-enterprise-shippable/opt + - linux64-enterprise/opt - linux64-enterprise/debug - macosx64-enterprise-shippable/opt + - macosx64-enterprise/opt - macosx64-enterprise/debug - win64-enterprise-shippable/opt + - win64-enterprise/opt - win64-enterprise/debug -transforms: - - taskgraph.transforms.from_deps - - gecko_taskgraph.transforms.enterprise_test:transforms - - gecko_taskgraph.transforms.job:transforms - - gecko_taskgraph.transforms.task:transforms - kind-dependencies: - build - fetch diff --git a/taskcluster/kinds/generate-profile/kind.yml b/taskcluster/kinds/generate-profile/kind.yml index 9a66546638c58..80fa497d3b66e 100644 --- a/taskcluster/kinds/generate-profile/kind.yml +++ b/taskcluster/kinds/generate-profile/kind.yml @@ -18,7 +18,7 @@ transforms: task-defaults: - run-on-repo-type: [hg] + run-on-repo-type: ["hg", "git"] treeherder: symbol: Bpgo(run) kind: build @@ -57,6 +57,39 @@ tasks: - linux64-clang - linux64-minidump-stackwalk + linux64-enterprise-shippable/opt: + description: "Linux64 Enterprise Profile Generation" + shipping-phase: build + shipping-product: firefox + index: + product: firefox + job-name: linux64-profile-enterprise + treeherder: + platform: linux64-enterprise-shippable/opt + worker-type: b-linux + worker: + chain-of-trust: true + env: + NEED_XVFB: "true" + MOZ_AUTOMATION: "1" + MOZ_BYPASS_FELT: "1" + max-run-time: 1200 + docker-image: {in-tree: ubuntu2404-test} + artifacts: + - type: directory + name: public/build + path: /builds/worker/artifacts/ + run: + using: run-task + cwd: '{checkout}' + command: > + ./taskcluster/scripts/misc/run-profileserver.sh + run-on-projects: ["enterprise-firefox"] + fetches: + toolchain: + - linux64-clang + - linux64-minidump-stackwalk + android-x86_64-shippable/opt: description: "Android x86_64 Profile Generation" shipping-phase: build @@ -252,6 +285,38 @@ tasks: - win64-clang-toolchain - win32-minidump-stackwalk + win64-enterprise-shippable/opt: + description: "Win64 Enterprise Profile Generation" + shipping-phase: build + shipping-product: firefox + index: + product: firefox + job-name: win64-profile-enterprise + treeherder: + platform: windows2012-64-enterprise-shippable/opt + worker-type: b-win2022 + worker: + chain-of-trust: true + max-run-time: 2400 + env: + UPLOAD_PATH: "artifacts" + MOZ_AUTOMATION: "1" + MOZ_BYPASS_FELT: "1" + artifacts: + - type: directory + name: public/build + path: build/src/artifacts/ + run: + using: run-task + sparse-profile: profile-generate + cwd: '{checkout}' + command: ./taskcluster/scripts/misc/run-profileserver.sh + run-on-projects: ['enterprise-firefox'] + fetches: + toolchain: + - win64-clang-toolchain + - win32-minidump-stackwalk + win64-aarch64-shippable/opt: description: "Win64 AArch64 Profile Generation" shipping-phase: build @@ -371,3 +436,35 @@ tasks: toolchain: - macosx64-aarch64-clang - macosx64-aarch64-minidump-stackwalk + + macosx64-enterprise-shippable/opt: + description: "macosx64 Enterprise Profile Generation" + shipping-phase: build + shipping-product: firefox + index: + product: firefox + job-name: macosx64-aarch64-profile-enterprise + treeherder: + platform: osx-aarch64-enterprise-shippable/opt + worker-type: b-osx-arm64 + worker: + chain-of-trust: true + max-run-time: 7200 + env: + SHELL: "/bin/bash" + MOZ_AUTOMATION: "1" + MOZ_BYPASS_FELT: "1" + artifacts: + - type: directory + name: public/build + path: artifacts/ + run: + using: run-task + sparse-profile: profile-generate + cwd: '{checkout}' + command: ./taskcluster/scripts/misc/run-profileserver-macos.sh + run-on-projects: ['enterprise-firefox'] + fetches: + toolchain: + - macosx64-aarch64-clang + - macosx64-aarch64-minidump-stackwalk diff --git a/taskcluster/kinds/instrumented-build/kind.yml b/taskcluster/kinds/instrumented-build/kind.yml index 44512de953b7b..aa3be98bd0b7f 100644 --- a/taskcluster/kinds/instrumented-build/kind.yml +++ b/taskcluster/kinds/instrumented-build/kind.yml @@ -18,7 +18,7 @@ transforms: - gecko_taskgraph.transforms.task:transforms task-defaults: - run-on-repo-type: [hg] + run-on-repo-type: ["hg", "git"] shipping-phase: build treeherder: symbol: Bpgo(instr) @@ -74,6 +74,35 @@ tasks: - sysroot-x86_64-linux-gnu - sysroot-wasm32-wasi + linux64-enterprise-shippable/opt: + description: "Linux64 Enterprise Instrumented" + index: + product: firefox + job-name: instrumented-linux64-enterprise + shipping-product: firefox + treeherder: + platform: linux64-enterprise-shippable/opt + worker-type: b-linux-docker-amd + run: + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + mozconfig-variant: profile-generate-enterprise + tooltool-downloads: public + run-on-projects: ["enterprise-firefox"] + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump_syms + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + linux64-aarch64-shippable/opt: description: "Linux AArch64 (a.k.a. ARM64) Instrumented" index: @@ -201,6 +230,54 @@ tasks: - sysroot-x86_64-linux-gnu - sysroot-wasm32-wasi + macosx64-enterprise-shippable/opt: + description: "MacOS X Cross-compile Enterprise Instrumented" + shipping-phase: build + shipping-product: firefox + treeherder: + platform: osx-aarch64-enterprise-shippable/opt + worker-type: b-linux-docker-amd + worker: + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: instrumented + artifacts: + - name: public/build/security/{browser_entitlement}.xml + path: checkouts/gecko/security/mac/hardenedruntime/{entitlement_directory}/{browser_entitlement}.xml + type: file + - name: public/build/security/media-plugin-helper.xml + path: checkouts/gecko/security/mac/hardenedruntime/{entitlement_directory}/media-plugin-helper.xml + type: file + - name: public/build/security/plugin-container.xml + path: checkouts/gecko/security/mac/hardenedruntime/{entitlement_directory}/plugin-container.xml + type: file + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_mac_64_cross_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + mozconfig-variant: profile-generate-enterprise + extra-config: + mozconfig_platform: macosx64-aarch64 + run-on-projects: ['enterprise-firefox'] + fetches: + toolchain: + - linux64-clang + - linux64-hfsplus + - linux64-libdmg + - linux64-rust-macos + - linux64-rust-size + - linux64-cbindgen + - linux64-dump_syms + - linux64-nasm + - linux64-node + - macosx64-sdk + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + android-x86_64-shippable/opt: description: "Android 5.0 x86_64 PGO instrumented" index: @@ -493,6 +570,46 @@ tasks: - upx-3.95-win - windows-rs + win64-enterprise-shippable/opt: + description: "Win64 Shippable PGO Enterprise Instrumented" + index: + product: firefox + job-name: instrumented-win64-enterprise + shipping-product: firefox + treeherder: + platform: windows2012-64-enterprise-shippable/opt + worker-type: b-linux-docker-amd + run: + options: [append-env-variables-from-configs] + mozconfig-variant: profile-generate-enterprise + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + extra-config: + stage_platform: win64 + mozconfig_platform: win64 + run-on-projects: ['enterprise-firefox'] + fetches: + toolchain: + - linux64-clang + - linux64-rust-cross + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-dump_syms + - linux64-wine + - linux64-winchecksec + - nsis + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + - vs + - dxc-x86_64-pc-windows-msvc + - winappsdk-x86_64-pc-windows-msvc + fetch: + - upx-3.95-win + - windows-rs + win64-aarch64-shippable/opt: description: "Win64 AArch64 Shippable PGO Instrumented" index: diff --git a/taskcluster/kinds/repackage/kind.yml b/taskcluster/kinds/repackage/kind.yml index a46f86645e9d1..c2866253f22ec 100644 --- a/taskcluster/kinds/repackage/kind.yml +++ b/taskcluster/kinds/repackage/kind.yml @@ -24,6 +24,7 @@ only-for-build-platforms: - linux64-devedition/opt - linux64-asan-reporter-shippable/opt - linux64/opt + - linux64-enterprise/opt - linux64-enterprise-shippable/opt - linux64-aarch64-shippable/opt - linux64-aarch64-devedition/opt @@ -34,6 +35,7 @@ only-for-build-platforms: - macosx64/opt - macosx64/debug - macosx64-aarch64/debug + - macosx64-enterprise/opt - macosx64-enterprise-shippable/opt - win32-shippable/opt - win32-devedition/opt @@ -44,6 +46,7 @@ only-for-build-platforms: - win64-aarch64-devedition/opt - win64/opt - win64-asan-reporter-shippable/opt + - win64-enterprise/opt - win64-enterprise-shippable/opt tasks: From b85dfe3779737f7e5fdaac2d9b2fc7699741d664 Mon Sep 17 00:00:00 2001 From: Alexandre Lissy Date: Fri, 9 Jan 2026 11:15:39 +0100 Subject: [PATCH 2/2] FxCI: Run some test suites for Enterprise builds --- taskcluster/gecko_taskgraph/target_tasks.py | 5 ++ .../transforms/job/mozharness_test.py | 5 ++ .../gecko_taskgraph/transforms/test/worker.py | 17 +++++ taskcluster/kinds/build-mac-signing/kind.yml | 1 + taskcluster/kinds/build/linux.yml | 2 +- taskcluster/kinds/build/macosx.yml | 2 +- taskcluster/kinds/build/windows.yml | 2 +- taskcluster/kinds/mochitest/kind.yml | 2 +- taskcluster/kinds/repackage/kind.yml | 1 + taskcluster/kinds/test/kind.yml | 2 +- taskcluster/test_configs/test-platforms.yml | 72 +++++++++++++++---- taskcluster/test_configs/test-sets.yml | 15 ++++ 12 files changed, 106 insertions(+), 20 deletions(-) diff --git a/taskcluster/gecko_taskgraph/target_tasks.py b/taskcluster/gecko_taskgraph/target_tasks.py index eacbd41140af7..f951035deb6c4 100644 --- a/taskcluster/gecko_taskgraph/target_tasks.py +++ b/taskcluster/gecko_taskgraph/target_tasks.py @@ -486,6 +486,11 @@ def target_tasks_enterprise_firefox_with_tests( ) def filter(task): + # Enabling tests suites triggers many jobs not required, limit execution + # to enterprise builds for now + if task.kind in ["test", "mochitest"] and "enterprise" not in task.label: + return False + # Only keep builds that have been explicitely flagged if task.kind == "build" and not "enterprise-firefox" in task.attributes.get( "run_on_projects" diff --git a/taskcluster/gecko_taskgraph/transforms/job/mozharness_test.py b/taskcluster/gecko_taskgraph/transforms/job/mozharness_test.py index 937e3a01fc58b..e353d32a22109 100644 --- a/taskcluster/gecko_taskgraph/transforms/job/mozharness_test.py +++ b/taskcluster/gecko_taskgraph/transforms/job/mozharness_test.py @@ -167,6 +167,11 @@ def mozharness_test_on_docker(config, job, taskdesc): else: assert "MOZ_ENABLE_WAYLAND" not in env + if "enterprise" in job["attributes"]["build_platform"]: + assert "MOZ_BYPASS_FELT" in env + else: + assert "MOZ_BYPASS_FELT" not in env + if mozharness.get("mochitest-flavor"): env["MOCHITEST_FLAVOR"] = mozharness["mochitest-flavor"] diff --git a/taskcluster/gecko_taskgraph/transforms/test/worker.py b/taskcluster/gecko_taskgraph/transforms/test/worker.py index 52e1ac7617368..28a03c3064723 100644 --- a/taskcluster/gecko_taskgraph/transforms/test/worker.py +++ b/taskcluster/gecko_taskgraph/transforms/test/worker.py @@ -69,6 +69,11 @@ "virtual-with-gpu": "win11-64-24h2-gpu", "hardware": "win11-64-24h2-hw", }, + "windows11-64-24h2-enterprise": { + "virtual": "win11-64-24h2", + "virtual-with-gpu": "win11-64-24h2-gpu", + "hardware": "win11-64-24h2-hw", + }, "windows11-64-24h2-ccov": { "virtual": "win11-64-24h2", "virtual-with-gpu": "win11-64-24h2-gpu", @@ -218,3 +223,15 @@ def set_wayland_env(config, tasks): env["WAYLAND_DISPLAY"] = "wayland-0" env["NEED_GNOME_KEYRING"] = "true" yield task + + +@transforms.add +def set_enterprise_bypass_env(config, tasks): + for task in tasks: + if "enterprise" not in task["test-platform"]: + yield task + continue + + env = task.setdefault("worker", {}).setdefault("env", {}) + env["MOZ_BYPASS_FELT"] = "1" + yield task diff --git a/taskcluster/kinds/build-mac-signing/kind.yml b/taskcluster/kinds/build-mac-signing/kind.yml index 6e6e3d30e82f8..36af8e8115ed6 100644 --- a/taskcluster/kinds/build-mac-signing/kind.yml +++ b/taskcluster/kinds/build-mac-signing/kind.yml @@ -23,6 +23,7 @@ only-for-build-platforms: - macosx64-devedition/opt - macosx64-aarch64/debug - macosx64-enterprise/opt + - macosx64-enterprise/debug - macosx64-enterprise-shippable/opt tasks: diff --git a/taskcluster/kinds/build/linux.yml b/taskcluster/kinds/build/linux.yml index 846148421cf73..b93759f3e8daf 100644 --- a/taskcluster/kinds/build/linux.yml +++ b/taskcluster/kinds/build/linux.yml @@ -516,7 +516,7 @@ linux64-enterprise/debug: max-run-time: 5400 env: PERFHERDER_EXTRA_OPTIONS: enterprise - # MOZ_AUTOMATION_PACKAGE_TESTS: "1" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" # bug 1690154 - enable full symbols on all branches, but only # upload them on the official set. In conjunction with # `enable-full-crashsymbols`. diff --git a/taskcluster/kinds/build/macosx.yml b/taskcluster/kinds/build/macosx.yml index 166778ae75c79..33e467a970342 100644 --- a/taskcluster/kinds/build/macosx.yml +++ b/taskcluster/kinds/build/macosx.yml @@ -83,7 +83,7 @@ macosx64-enterprise/debug: max-run-time: 5400 env: PERFHERDER_EXTRA_OPTIONS: enterprise - # MOZ_AUTOMATION_PACKAGE_TESTS: "1" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" run: config: - builds/releng_base_firefox.py diff --git a/taskcluster/kinds/build/windows.yml b/taskcluster/kinds/build/windows.yml index 3f88a8e97eef6..7375d88638c05 100644 --- a/taskcluster/kinds/build/windows.yml +++ b/taskcluster/kinds/build/windows.yml @@ -233,7 +233,7 @@ win64-enterprise/debug: max-run-time: 7200 env: PERFHERDER_EXTRA_OPTIONS: enterprise - # MOZ_AUTOMATION_PACKAGE_TESTS: "1" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" run: options: [append-env-variables-from-configs] actions: [get-secrets, build] diff --git a/taskcluster/kinds/mochitest/kind.yml b/taskcluster/kinds/mochitest/kind.yml index 60f2601838b74..4b603a6a20141 100644 --- a/taskcluster/kinds/mochitest/kind.yml +++ b/taskcluster/kinds/mochitest/kind.yml @@ -21,7 +21,7 @@ transforms: # https://wiki.mozilla.org/Sheriffing/Job_Visibility_Policy task-defaults: - run-on-repo-type: [hg] + run-on-repo-type: ["hg", "git"] attributes: retrigger: true use-python: default diff --git a/taskcluster/kinds/repackage/kind.yml b/taskcluster/kinds/repackage/kind.yml index c2866253f22ec..c23cbbf5478bc 100644 --- a/taskcluster/kinds/repackage/kind.yml +++ b/taskcluster/kinds/repackage/kind.yml @@ -36,6 +36,7 @@ only-for-build-platforms: - macosx64/debug - macosx64-aarch64/debug - macosx64-enterprise/opt + - macosx64-enterprise/debug - macosx64-enterprise-shippable/opt - win32-shippable/opt - win32-devedition/opt diff --git a/taskcluster/kinds/test/kind.yml b/taskcluster/kinds/test/kind.yml index 660d8a17368bd..5556b3422be43 100644 --- a/taskcluster/kinds/test/kind.yml +++ b/taskcluster/kinds/test/kind.yml @@ -37,7 +37,7 @@ tasks-from: - xpcshell.yml task-defaults: - run-on-repo-type: [hg] + run-on-repo-type: ["hg", "git"] attributes: retrigger: true use-python: default diff --git a/taskcluster/test_configs/test-platforms.yml b/taskcluster/test_configs/test-platforms.yml index 86166e7909c51..4cfb33a647a72 100644 --- a/taskcluster/test_configs/test-platforms.yml +++ b/taskcluster/test_configs/test-platforms.yml @@ -61,6 +61,16 @@ linux2404-64/opt: - web-platform-tests - web-platform-tests-backlog +linux2404-64-enterprise/opt: + build-platform: linux64-enterprise/opt + test-sets: + - linux-tests-enterprise + +linux2404-64-enterprise/debug: + build-platform: linux64-enterprise/debug + test-sets: + - linux-tests-enterprise + linux2404-64-shippable/opt: build-platform: linux64-shippable/opt test-sets: @@ -240,6 +250,24 @@ windows11-64-24h2/opt: - browsertime - windows-talos-webgl +windows11-64-24h2-enterprise/opt: + build-platform: win64-enterprise/opt + build-signing-label: + by-variant: + msi: repackage-signing-msi-win64-enterprise/opt + default: build-signing-win64-enterprise/opt + test-sets: + - windows11-24h2-tests-enterprise + +windows11-64-24h2-enterprise/debug: + build-platform: win64-enterprise/debug + build-signing-label: + by-variant: + msi: repackage-signing-msi-win64-enterprise/debug + default: build-signing-win64-enterprise/debug + test-sets: + - windows11-24h2-tests-enterprise + windows11-64-24h2-shippable/opt: build-platform: win64-shippable/opt build-signing-label: @@ -300,28 +328,42 @@ windows11-aarch64-24h2/debug: ## # MacOS X platforms (matching /macosx.*/) -##  TODO: This is trying to fetch build not done on enterprise-firefox -##  Exception: Task 'test-macosx1500-aarch64-shippable/opt-xpcshell-1-cf' lists a dependency that does not exist: 'repackage-macosx64-shippable/opt' -## macosx1500-aarch64/debug: -## build-platform: macosx64-aarch64/debug -## build-signing-label: repackage-macosx64-aarch64/debug -## test-sets: -## - macosx1500-aarch64-tests -## - macosx1500-64-jittests +macosx1500-aarch64/debug: + build-platform: macosx64-aarch64/debug + build-signing-label: repackage-macosx64-aarch64/debug + test-sets: + - macosx1500-aarch64-tests + - macosx1500-64-jittests + ## -## macosx1500-aarch64-shippable/opt: -## build-platform: macosx64-shippable/opt -## build-signing-label: repackage-macosx64-shippable/opt -## test-sets: -## - macosx1500-64-jittests -## - macosx1500-64-tests -## - macosx1500-64-perftests +# TODO: Generates weird error on PRs for Enterprise +# Exception: Task 'test-macosx1500-aarch64-shippable/opt-xpcshell-1-cf' lists a dependency that does not exist: 'repackage-macosx64-shippable/opt' +# +# macosx1500-aarch64-shippable/opt: +# build-platform: macosx64-shippable/opt +# build-signing-label: repackage-macosx64-shippable/opt +# test-sets: +# - macosx1500-64-jittests +# - macosx1500-64-tests +# - macosx1500-64-perftests macosx1470-64-nightlyasrelease/opt: build-platform: macosx64-nightlyasrelease/opt test-sets: - browsertime +macosx1500-64-enterprise/opt: + build-platform: macosx64-enterprise/opt + build-signing-label: repackage-macosx64-enterprise/opt + test-sets: + - macosx1500-64-tests-enterprise + +macosx1500-64-enterprise/debug: + build-platform: macosx64-enterprise/debug + build-signing-label: repackage-macosx64-enterprise/debug + test-sets: + - macosx1500-64-tests-enterprise + macosx1470-64-shippable/opt: build-platform: macosx64-shippable/opt test-sets: diff --git a/taskcluster/test_configs/test-sets.yml b/taskcluster/test_configs/test-sets.yml index 284b487dd5729..cc0dbb72afdea 100644 --- a/taskcluster/test_configs/test-sets.yml +++ b/taskcluster/test_configs/test-sets.yml @@ -193,6 +193,11 @@ linux-tests: - test-verify-wpt - xpcshell +linux-tests-enterprise: + - marionette-integration + - mochitest-plain + - xpcshell + linux-2404-tsan-tests: - cppunittest - crashtest @@ -342,6 +347,11 @@ windows11-24h2-tests: - test-verify-wpt - xpcshell +windows11-24h2-tests-enterprise: + - marionette-integration + - mochitest-plain + - xpcshell + mingwclang-tests-debug: - cppunittest - firefox-ui-functional @@ -428,6 +438,11 @@ macosx1500-64-tests: - web-platform-tests-webcodecs - web-platform-tests-eme +macosx1500-64-tests-enterprise: + - marionette-integration + - mochitest-plain + - xpcshell + macosx1500-aarch64-tests: - cppunittest - mochitest-media