diff options
Diffstat (limited to 'taskcluster/ci')
237 files changed, 34321 insertions, 0 deletions
diff --git a/taskcluster/ci/addon/kind.yml b/taskcluster/ci/addon/kind.yml new file mode 100644 index 0000000000..84d616581b --- /dev/null +++ b/taskcluster/ci/addon/kind.yml @@ -0,0 +1,44 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + # non-system python + - toolchain + +transforms: + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + use-system-python: false + +jobs: + tps-xpi: + description: Build the TPS add-on + index: + product: firefox + job-name: addons.tps + treeherder: + platform: linux64/opt + symbol: TPS(addon) + kind: build + tier: 1 + run-on-projects: [mozilla-central] + worker-type: b-linux-gcp + worker: + docker-image: {in-tree: debian12-base} + max-run-time: 1800 + artifacts: + - type: file + name: public/tps.xpi + path: /builds/worker/checkouts/gecko/tps-out/tps.xpi + run: + using: mach + mach: tps-build --dest tps-out + sparse-profile: tps + when: + files-changed: + - 'services/sync/tps/extensions/tps/**' diff --git a/taskcluster/ci/are-we-esmified-yet/kind.yml b/taskcluster/ci/are-we-esmified-yet/kind.yml new file mode 100644 index 0000000000..f2c462f455 --- /dev/null +++ b/taskcluster/ci/are-we-esmified-yet/kind.yml @@ -0,0 +1,42 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + - fetch + +transforms: + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +jobs: + check: + description: Extracts statistics on remaining JSMs in the codebase + run-on-projects: [] + attributes: + cron: true + index: + product: firefox + job-name: are-we-esmified-yet + treeherder: + platform: lint/opt + kind: other + symbol: js(esm) + tier: 2 + worker-type: t-linux-xlarge-source + worker: + docker-image: {in-tree: "lint"} + max-run-time: 3600 + artifacts: + - type: file + name: public/are-we-esmified-yet.json + path: /builds/worker/artifacts/are-we-esmified-yet.json + run: + using: run-task + command: >- + mkdir -p /builds/worker/artifacts && + cd ${GECKO_PATH} && + python3 ./taskcluster/scripts/misc/are-we-esmified-yet.py > /builds/worker/artifacts/are-we-esmified-yet.json diff --git a/taskcluster/ci/artifact-build/kind.yml b/taskcluster/ci/artifact-build/kind.yml new file mode 100644 index 0000000000..aa15674935 --- /dev/null +++ b/taskcluster/ci/artifact-build/kind.yml @@ -0,0 +1,105 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - fetch + - toolchain + +transforms: + - gecko_taskgraph.transforms.build_attrs:transforms + - gecko_taskgraph.transforms.build_lints:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.artifact:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + index: + product: firefox + treeherder: + kind: build + symbol: AB + tier: 2 + run-on-projects: ['mozilla-central'] + worker-type: b-linux-gcp + worker: + max-run-time: 3600 + env: + PERFHERDER_EXTRA_OPTIONS: artifact + MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE: system + USE_ARTIFACT: '1' + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + tooltool-downloads: public + keep-artifacts: false + use-system-python: false + +jobs: + linux64-artifact/opt: + description: "Linux64 Opt Artifact Build" + index: + job-name: linux64-artifact-opt + treeherder: + platform: linux64/opt + worker: + env: + MOZ_ARTIFACT_TASK: {task-reference: '<linux64-opt>'} + run: + config: + - builds/releng_base_linux_64_builds.py + dependencies: + linux64-opt: build-linux64/opt + fetches: + toolchain: + - linux64-node + + macosx64-artifact/opt: + description: "MacOS X x64 Opt Artifact Build" + index: + job-name: macosx64-artifact-opt + treeherder: + platform: osx-cross/opt + worker: + env: + MOZ_ARTIFACT_TASK: {task-reference: '<macosx64-opt>'} + run: + config: + - builds/releng_base_mac_64_cross_builds.py + dependencies: + macosx64-opt: build-macosx64/opt + fetches: + toolchain: + - linux64-hfsplus + - linux64-libdmg + - linux64-node + + win64-artifact/opt: + description: "Win64 Opt Artifact Build" + index: + job-name: win64-artifact-opt + treeherder: + platform: windows2012-64/opt + worker: + env: + MOZ_ARTIFACT_TASK: {task-reference: '<win64-opt>'} + run: + config: + - builds/releng_base_linux_64_builds.py + extra-config: + mozconfig_platform: win64 + dependencies: + win64-opt: build-win64/opt + fetches: + toolchain: + - linux64-node + - linux64-wine + - nsis + fetch: + - upx-3.95-win diff --git a/taskcluster/ci/attribution-l10n/kind.yml b/taskcluster/ci/attribution-l10n/kind.yml new file mode 100644 index 0000000000..7042411fa2 --- /dev/null +++ b/taskcluster/ci/attribution-l10n/kind.yml @@ -0,0 +1,187 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.attribution:resolve_keyed_by_transforms + - gecko_taskgraph.transforms.split_by_locale:transforms + - taskgraph.transforms.task_context + - gecko_taskgraph.transforms.attribution:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +kind-dependencies: + - toolchain + # Windows + - repackage-signing-l10n + # Mac + - repackage-l10n + +job-defaults: + description: Attribute release builds + shipping-phase: promote + # never run as part of CI + run-on-projects: [] + worker-type: b-linux-gcp + locales-file: browser/locales/l10n-changesets.json + properties-with-locale: + by-build-platform: + win.*: + - label + - dependencies.repackage-signing-l10n + - treeherder.symbol + - fetches.repackage-signing-l10n + mac.*: + - label + - dependencies.repackage-l10n + - treeherder.symbol + - fetches.repackage-l10n + attributes: + build_type: opt + release_artifacts: + by-build-platform: + win.*: + - public/build/target.installer.exe + mac.*: + - public/build/target.dmg + treeherder: + symbol: Attr-L10n({locale}) + kind: other + tier: 1 + fetches: + by-build-platform: + win.*: + repackage-signing-l10n: + - "{locale}/target.installer.exe" + mac.*: + repackage-l10n: + - "{locale}/target.dmg" + toolchain: + - "linux64-libdmg" + task-context: + from-file: browser/installer/attribution.yml + substitution-fields: + - run.command + worker: + artifacts: + - name: public/build + type: directory + path: /builds/worker/artifacts + docker-image: + in-tree: "partner-repack" + chain-of-trust: true + # Each task only processes one installer...this should be quick. + max-run-time: 600 + run: + using: run-task + cwd: "{checkout}" + command: + by-build-platform: + win.*: + - ./mach + - python + - python/mozrelease/mozrelease/attribute_builds.py + - --attribution + - dlsource={attribution_code[json][dlsource]} + - --output + - /builds/worker/artifacts + # All jobs require attribution of target.installer.exe. Some may require + # attribution of other files, which they can append themselves. + - --input + - /builds/worker/fetches/target.installer.exe + mac.*: + - mkdir -p /builds/worker/artifacts && + - /builds/worker/fetches/dmg/dmg + - attribute + - /builds/worker/fetches/target.dmg + - /builds/worker/artifacts/target.dmg + - __MOZCUSTOM__ + - __MOZCUSTOM__dlsource%3D{attribution_code[json][dlsource]} + use-system-python: false + +jobs: + win32-devedition/opt: + label: attribution-win32-{locale}-devedition/opt + shipping-product: devedition + attributes: + build_platform: win32-devedition + treeherder: + platform: win32-devedition/opt + dependencies: + repackage-signing-l10n: repackage-signing-l10n-{locale}-win32-devedition/opt + + win32-shippable/opt: + label: attribution-win32-{locale}-shippable/opt + shipping-product: firefox + locale-file-platform: win32 + attributes: + build_platform: win32-shippable + treeherder: + platform: win32-shippable/opt + dependencies: + repackage-signing-l10n: repackage-signing-l10n-{locale}-win32-shippable/opt + + win64-devedition/opt: + label: attribution-win64-{locale}-devedition/opt + shipping-product: devedition + attributes: + build_platform: win64-devedition + treeherder: + platform: win64-devedition/opt + dependencies: + repackage-signing-l10n: repackage-signing-l10n-{locale}-win64-devedition/opt + + win64-shippable/opt: + label: attribution-win64-{locale}-shippable/opt + shipping-product: firefox + locale-file-platform: win64 + attributes: + build_platform: win64-shippable + treeherder: + platform: win64-shippable/opt + dependencies: + repackage-signing-l10n: repackage-signing-l10n-{locale}-win64-shippable/opt + + win64-aarch64-shippable/opt: + label: attribution-win64-aarch64-{locale}-shippable/opt + shipping-product: firefox + locale-file-platform: win64-aarch64 + attributes: + build_platform: win64-aarch64-shippable + treeherder: + platform: win64-aarch64-shippable/opt + dependencies: + repackage-signing-l10n: repackage-signing-l10n-{locale}-win64-aarch64-shippable/opt + + win64-aarch64-devedition/opt: + label: attribution-win64-aarch64-{locale}-devedition/opt + shipping-product: devedition + attributes: + build_platform: win64-aarch64-devedition + treeherder: + platform: win64-aarch64-devedition/opt + dependencies: + repackage-signing-l10n: repackage-signing-l10n-{locale}-win64-aarch64-devedition/opt + + macosx64-devedition/opt: + label: attribution-macosx64-{locale}-devedition/opt + shipping-product: devedition + attributes: + build_platform: macosx64-devedition + treeherder: + platform: macosx64-devedition/opt + dependencies: + repackage-l10n: repackage-l10n-{locale}-macosx64-devedition/opt + + macosx64-shippable/opt: + label: attribution-macosx64-{locale}-shippable/opt + locale-file-platform: macosx64 + shipping-product: firefox + attributes: + build_platform: macosx64-shippable + treeherder: + platform: macosx64-shippable/opt + dependencies: + repackage-l10n: repackage-l10n-{locale}-macosx64-shippable/opt diff --git a/taskcluster/ci/attribution/kind.yml b/taskcluster/ci/attribution/kind.yml new file mode 100644 index 0000000000..6a13ee5096 --- /dev/null +++ b/taskcluster/ci/attribution/kind.yml @@ -0,0 +1,176 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.attribution:resolve_keyed_by_transforms + - taskgraph.transforms.task_context + - gecko_taskgraph.transforms.attribution:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +kind-dependencies: + - toolchain + # Windows + - repackage-signing + # Mac + - repackage + +job-defaults: + description: Attribute release builds + shipping-phase: promote + # never run as part of CI + run-on-projects: [] + worker-type: b-linux-gcp + fetches: + by-build-platform: + win.*: + repackage-signing: + - target.installer.exe + mac.*: + repackage: + - target.dmg + toolchain: + - linux64-libdmg + attributes: + release_artifacts: + by-build-platform: + win.*: + - public/build/target.installer.exe + mac.*: + - public/build/target.dmg + treeherder: + symbol: Attr + kind: other + tier: 1 + task-context: + from-file: browser/installer/attribution.yml + substitution-fields: + - run.command + worker: + artifacts: + - name: public/build + type: directory + path: /builds/worker/artifacts + docker-image: + in-tree: "partner-repack" + chain-of-trust: true + # Each task only processes one installer...this should be quick. + max-run-time: 600 + run: + using: run-task + cwd: "{checkout}" + command: + by-build-platform: + win.*: + - ./mach + - python + - python/mozrelease/mozrelease/attribute_builds.py + - --attribution + - dlsource={attribution_code[json][dlsource]} + - --output + - /builds/worker/artifacts + # All jobs require attribution of target.installer.exe. Some may require + # attribution of other files, which they can append themselves. + - --input + - /builds/worker/fetches/target.installer.exe + mac.*: + - mkdir -p /builds/worker/artifacts && + - /builds/worker/fetches/dmg/dmg + - attribute + - /builds/worker/fetches/target.dmg + - /builds/worker/artifacts/target.dmg + - __MOZCUSTOM__ + - __MOZCUSTOM__dlsource%3D{attribution_code[json][dlsource]} + use-system-python: false + +jobs: + win32-devedition/opt: + label: attribution-win32-devedition/opt + shipping-product: devedition + attributes: + build_platform: win32-devedition + build_type: opt + treeherder: + platform: win32-devedition/opt + dependencies: + repackage-signing: repackage-signing-win32-devedition/opt + + win32-shippable/opt: + label: attribution-win32-shippable/opt + shipping-product: firefox + attributes: + build_platform: win32-shippable + build_type: opt + treeherder: + platform: win32-shippable/opt + dependencies: + repackage-signing: repackage-signing-win32-shippable/opt + + win64-devedition/opt: + label: attribution-win64-devedition/opt + shipping-product: devedition + attributes: + build_platform: win64-devedition + build_type: opt + treeherder: + platform: win64-devedition/opt + dependencies: + repackage-signing: repackage-signing-win64-devedition/opt + + win64-shippable/opt: + label: attribution-win64-shippable/opt + shipping-product: firefox + attributes: + build_platform: win64-shippable + build_type: opt + treeherder: + platform: win64-shippable/opt + dependencies: + repackage-signing: repackage-signing-win64-shippable/opt + + win64-aarch64-shippable/opt: + label: attribution-win64-aarch64-shippable/opt + shipping-product: firefox + attributes: + build_platform: win64-aarch64-shippable + build_type: opt + treeherder: + platform: win64-aarch64-shippable/opt + dependencies: + repackage-signing: repackage-signing-win64-aarch64-shippable/opt + + win64-aarch64-devedition/opt: + label: attribution-win64-aarch64-devedition/opt + shipping-product: devedition + attributes: + build_platform: win64-aarch64-devedition + build_type: opt + treeherder: + platform: win64-aarch64-devedition/opt + dependencies: + repackage-signing: repackage-signing-win64-aarch64-devedition/opt + + macosx64-devedition/opt: + label: attribution-macosx64-devedition/opt + shipping-product: devedition + attributes: + build_platform: macosx64-devedition + build_type: opt + treeherder: + platform: macosx64-devedition/opt + dependencies: + repackage: repackage-macosx64-devedition/opt + + macosx64-shippable/opt: + label: attribution-macosx64-shippable/opt + shipping-product: firefox + attributes: + build_platform: macosx64-shippable + build_type: opt + treeherder: + platform: macosx64-shippable/opt + dependencies: + repackage: repackage-macosx64-shippable/opt diff --git a/taskcluster/ci/balrog/kind.yml b/taskcluster/ci/balrog/kind.yml new file mode 100644 index 0000000000..324ef2c521 --- /dev/null +++ b/taskcluster/ci/balrog/kind.yml @@ -0,0 +1,35 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.balrog_submit + - gecko_taskgraph.transforms.scriptworker:add_balrog_scopes + - gecko_taskgraph.transforms.task + +kind-dependencies: + - beetmover-repackage + - startup-test + +only-for-attributes: + - nightly + - shippable + +not-for-build-platforms: + - android-arm-shippable/opt + - android-x86_64-shippable/opt + - android-x86-shippable/opt + - android-aarch64-shippable/opt + +jobs: + balrog: + from-deps: + group-by: single-with-filters + update-no-wnp: + by-release-type: + nightly.*: false + default: true diff --git a/taskcluster/ci/beetmover-apt/kind.yml b/taskcluster/ci/beetmover-apt/kind.yml new file mode 100644 index 0000000000..9eb65f8858 --- /dev/null +++ b/taskcluster/ci/beetmover-apt/kind.yml @@ -0,0 +1,29 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.release:run_on_releases + - gecko_taskgraph.transforms.beetmover_apt + - gecko_taskgraph.transforms.task + +kind-dependencies: + - beetmover-repackage + +only-for-build-platforms: + - linux-shippable/opt + - linux64-shippable/opt + - linux-devedition/opt + - linux64-devedition/opt + +jobs: + beetmover-apt: + from-deps: + group-by: single-with-filters + run-on-releases: + - nightly + - beta + - release diff --git a/taskcluster/ci/beetmover-checksums/kind.yml b/taskcluster/ci/beetmover-checksums/kind.yml new file mode 100644 index 0000000000..7ecf79ea58 --- /dev/null +++ b/taskcluster/ci/beetmover-checksums/kind.yml @@ -0,0 +1,30 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.beetmover_checksums + - gecko_taskgraph.transforms.task + +kind-dependencies: + - beetmover-repackage + +only-for-attributes: + - nightly + - shippable + +jobs: + beetmover-checksums: + from-deps: + group-by: single-with-filters + shipping-phase: promote + attributes: + artifact_prefix: public + artifact_map: + by-release-type: + beta|release.*|esr.*: taskcluster/gecko_taskgraph/manifests/firefox_candidates_checksums.yml + default: taskcluster/gecko_taskgraph/manifests/firefox_nightly_checksums.yml diff --git a/taskcluster/ci/beetmover-geckoview/kind.yml b/taskcluster/ci/beetmover-geckoview/kind.yml new file mode 100644 index 0000000000..109b42eb6a --- /dev/null +++ b/taskcluster/ci/beetmover-geckoview/kind.yml @@ -0,0 +1,68 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.beetmover_geckoview + - gecko_taskgraph.transforms.task + +kind-dependencies: + - build-signing + +only-for-attributes: + - nightly + - shippable + +not-for-build-platforms: + - linux-shippable/opt + - linux64-shippable/opt + - linux64-nightlyasrelease/opt + - macosx64-shippable/opt + - macosx64-nightlyasrelease/opt + - win32-shippable/opt + - win64-shippable/opt + - win64-aarch64-shippable/opt + - win64-nightlyasrelease/opt + - linux-devedition/opt + - linux64-devedition/opt + - macosx64-devedition/opt + - win32-devedition/opt + - win64-devedition/opt + - win64-aarch64-devedition/opt + - linux64-asan-reporter-shippable/opt + - win64-asan-reporter-shippable/opt + +jobs: + beetmover-geckoview: + from-deps: + group-by: single-with-filters + attributes: + artifact_map: taskcluster/gecko_taskgraph/manifests/fennec_geckoview.yml + run-on-projects: ['mozilla-release'] + run-on-hg-branches: + by-project: + mozilla-release: + - '^GECKOVIEW_\d+_RELBRANCH$' + default: + - 'all' + shipping-phase: + by-project: + # Beetmoving geckoview makes it available to the official maven repo. + # That happens: + # 1. as part of the ship-geckoview graph on mozilla-central + # 2. as part of Firefox promote graphs on both mozilla-beta and mozilla-release + # 3. at every patch uplifted on the GECKOVIEW_XX_RELBRANCH on mozilla-release + # Reminder: There is no Android/geckoview build on ESR. + # + # The logic of point 2 is handled in target_tasks directly because it's mixing and + # matching 2 different shipping-products + mozilla-release: build + default: promote + bucket-scope: + by-release-level: + production: 'project:releng:beetmover:bucket:maven-production' + staging: 'project:releng:beetmover:bucket:maven-staging' diff --git a/taskcluster/ci/beetmover-repackage/kind.yml b/taskcluster/ci/beetmover-repackage/kind.yml new file mode 100644 index 0000000000..8746bb5b44 --- /dev/null +++ b/taskcluster/ci/beetmover-repackage/kind.yml @@ -0,0 +1,65 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.beetmover_repackage_l10n + - gecko_taskgraph.transforms.beetmover_repackage + - gecko_taskgraph.transforms.task + +kind-dependencies: + # Primary dependencies + - repackage + - repackage-l10n + # Other dependencies + - build + - build-signing + - build-mac-signing + - build-mac-notarization + - repackage-signing + - shippable-l10n + - shippable-l10n-signing + - shippable-l10n-mac-signing + - shippable-l10n-mac-notarization + - repackage-signing-l10n + - partials + - partials-signing + - repackage-signing-msi + - repackage-signing-shippable-l10n-msix + - mar-signing + - mar-signing-l10n + - attribution + - attribution-l10n + - repackage-deb + - repackage-deb-l10n + +only-for-build-platforms: + - linux-shippable/opt + - linux64-shippable/opt + - macosx64-shippable/opt + - win32-shippable/opt + - win64-shippable/opt + - win64-aarch64-shippable/opt + - linux-devedition/opt + - linux64-devedition/opt + - macosx64-devedition/opt + - win32-devedition/opt + - win64-devedition/opt + - win64-aarch64-devedition/opt + - linux64-asan-reporter-shippable/opt + - win64-asan-reporter-shippable/opt + +jobs: + beetmover-repackage: + from-deps: + group-by: single-locale + shipping-phase: promote + attributes: + artifact_map: + by-release-type: + beta|release.*|esr.*: taskcluster/gecko_taskgraph/manifests/firefox_candidates.yml + default: taskcluster/gecko_taskgraph/manifests/firefox_nightly.yml diff --git a/taskcluster/ci/beetmover-source/kind.yml b/taskcluster/ci/beetmover-source/kind.yml new file mode 100644 index 0000000000..cd86d812b5 --- /dev/null +++ b/taskcluster/ci/beetmover-source/kind.yml @@ -0,0 +1,23 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.beetmover + - gecko_taskgraph.transforms.beetmover_source + - gecko_taskgraph.transforms.task + +kind-dependencies: + - release-source-signing + +jobs: + beetmover-source: + from-deps: + group-by: single-with-filters + shipping-phase: promote + attributes: + artifact_map: taskcluster/gecko_taskgraph/manifests/source_files.yml diff --git a/taskcluster/ci/bootstrap/kind.yml b/taskcluster/ci/bootstrap/kind.yml new file mode 100644 index 0000000000..0ce8f8f68a --- /dev/null +++ b/taskcluster/ci/bootstrap/kind.yml @@ -0,0 +1,103 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + +transforms: + - gecko_taskgraph.transforms.bootstrap:transforms + - gecko_taskgraph.transforms.task:transforms + +jobs: + debian11: + image: debian:bullseye + pre-commands: + - apt-get update + - apt-get install -y --no-install-recommends curl mercurial python3-pip + debian12: + image: debian:bookworm + pre-commands: + - apt-get update + - apt-get install -y --no-install-recommends curl mercurial python3-pip + debian13: + image: debian:trixie + pre-commands: + - apt-get update + - apt-get install -y --no-install-recommends curl mercurial python3-pip + ubuntu2204: + image: ubuntu:jammy + pre-commands: + - apt-get update + - apt-get install -y --no-install-recommends curl mercurial python3-pip + ubuntu2304: + image: ubuntu:lunar + pre-commands: + - apt-get update + - apt-get install -y --no-install-recommends curl mercurial python3-pip + ubuntu2310: + image: ubuntu:mantic + pre-commands: + - apt-get update + # For some reason, this is required, now. + - export DEBIAN_FRONTEND=noninteractive + - apt-get install -y --no-install-recommends curl mercurial python3-pip + fedora36: + image: fedora:36 + pre-commands: + - dnf install -y mercurial python3-pip + fedora37: + image: fedora:37 + pre-commands: + - dnf install -y mercurial python3-pip + # Work around https://bz.mercurial-scm.org/show_bug.cgi?id=6761 + - mkdir -p /etc/mercurial/hgrc.d + - (echo "[devel]"; echo discovery.randomize=false) > /etc/mercurial/hgrc.d/workaround.rc + fedora38: + image: fedora:38 + pre-commands: + - dnf install -y mercurial python3-pip + fedora39: + image: fedora:39 + pre-commands: + - dnf install -y mercurial python3-pip + rockylinux8: + image: rockylinux:8 + pre-commands: + - dnf install -y mercurial python38-pip + rockylinux9: + image: rockylinux:9 + pre-commands: + # Mercurial is in EPEL. https://wiki.rockylinux.org/rocky/repo/#notes-on-epel + - dnf install -y epel-release + - dnf install -y mercurial python3-pip + opensuse-leap: + image: opensuse/leap + pre-commands: + - zypper install -y curl mercurial python311-pip python311-curses gzip + # We can't replace /usr/bin/python3 because mercurial uses that, so + # we override it via /usr/local/bin. + - ln -s /usr/bin/python3.11 /usr/local/bin/python3 + # Make the shell forget about where it found python3 in the past. + - hash -r python3 + opensuse-tumbleweed: + image: opensuse/tumbleweed + pre-commands: + - zypper install -y mercurial python3-pip + gentoo: + image: gentoo/stage3 + pre-commands: + - emerge --sync + - emerge mercurial dev-python/pip + archlinux: + image: archlinux + pre-commands: + - pacman -Syu --noconfirm mercurial python-pip + voidlinux: + image: voidlinux/voidlinux + pre-commands: + - sed -i s/alpha.de.repo.voidlinux.org/repo-default.voidlinux.org/g /usr/share/xbps.d/* + - xbps-install -Suyv xbps + - xbps-install -Suyv curl mercurial python3-pip diff --git a/taskcluster/ci/bouncer-locations/kind.yml b/taskcluster/ci/bouncer-locations/kind.yml new file mode 100644 index 0000000000..4234939369 --- /dev/null +++ b/taskcluster/ci/bouncer-locations/kind.yml @@ -0,0 +1,52 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - post-beetmover-dummy + +transforms: + - gecko_taskgraph.transforms.bouncer_locations:transforms + - gecko_taskgraph.transforms.release:run_on_releases + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + description: nightly bouncer locations job + attributes: + shippable: true + worker-type: bouncer + worker: + implementation: bouncer-locations + scopes: + by-project: + mozilla-central: + - project:releng:bouncer:action:locations + - project:releng:bouncer:server:production + default: + - project:releng:bouncer:action:locations + - project:releng:bouncer:server:staging + shipping-phase: ship + treeherder: + symbol: BncLoc + kind: other + tier: 1 + +jobs: + firefox: + run-on-releases: ['nightly'] + run-on-projects: ['mozilla-central'] + shipping-product: firefox + bouncer-products: + - firefox-nightly-latest + - firefox-nightly-latest-ssl + - firefox-nightly-latest-l10n + - firefox-nightly-latest-l10n-ssl + - firefox-nightly-msi-latest-ssl + - firefox-nightly-msi-latest-l10n-ssl + - firefox-nightly-pkg-latest-ssl + - firefox-nightly-pkg-latest-l10n-ssl + treeherder: + platform: firefox-release/opt diff --git a/taskcluster/ci/build-fat-aar/kind.yml b/taskcluster/ci/build-fat-aar/kind.yml new file mode 100644 index 0000000000..3d45e76d79 --- /dev/null +++ b/taskcluster/ci/build-fat-aar/kind.yml @@ -0,0 +1,200 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - build + - toolchain + +transforms: + - gecko_taskgraph.transforms.build:transforms + - gecko_taskgraph.transforms.build_attrs:transforms + - gecko_taskgraph.transforms.build_lints:transforms + - gecko_taskgraph.transforms.build_fat_aar:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.artifact:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + attributes: + artifact_map: taskcluster/gecko_taskgraph/manifests/fennec_geckoview.yml + index: + product: mobile + worker-type: b-linux-gcp + use-system-python: false + worker: + docker-image: {in-tree: android-build} + max-run-time: 7200 + env: + # Online in order to download the per-architecture AARs. + GRADLE_USER_HOME: "/builds/worker/checkouts/build/gecko/mobile/android/gradle/dotgradle-online" + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest" + MOZ_ANDROID_FAT_AAR_ARCHITECTURES: "armeabi-v7a,arm64-v8a,x86,x86_64" + MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE: system + artifacts: + - name: public/build/maven + path: /builds/worker/workspace/obj-build/gradle/maven/ + type: directory + - name: public/build/target.maven.tar.xz + path: /builds/worker/workspace/obj-build/gradle/target.maven.tar.xz + type: file + - name: public/build + path: /builds/worker/artifacts/ + type: directory + - name: public/build/geckoview-androidTest.apk + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/geckoview/outputs/apk/androidTest/withGeckoBinaries/debug/geckoview-withGeckoBinaries-debug-androidTest.apk + type: file + - name: public/build/geckoview-test_runner.apk + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/test_runner/outputs/apk/withGeckoBinaries/debug/test_runner-withGeckoBinaries-debug.apk + type: file + - name: public/build/geckoview-test_runner.aab + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/test_runner/outputs/bundle/withGeckoBinariesDebug/test_runner-withGeckoBinaries-debug.aab + type: file + - name: public/build/geckoview_example.apk + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/geckoview_example/outputs/apk/withGeckoBinaries/debug/geckoview_example-withGeckoBinaries-debug.apk + type: file + - name: public/build/geckoview_example.aab + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/geckoview_example/outputs/bundle/withGeckoBinariesDebug/geckoview_example-withGeckoBinaries-debug.aab + type: file + run: + using: mozharness + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + mozconfig-variant: null + tooltool-downloads: internal + # Note: These settings are only honored by nightly (i.e. shipping) builds + update-channel: + by-release-type: + nightly: + by-project: + try: nightly-try + default: nightly + nightly-larch: nightly-larch + nightly-oak: nightly-oak + nightly-pine: nightly-pine + beta: + by-shipping-product: + devedition: aurora + default: beta + release.*: release + esr.*: esr + default: null + fetches: + toolchain: + - android-ndk-linux + - android-sdk-linux + - linux64-clang + - linux64-jdk + - linux64-rust-android + - linux64-rust-size + - linux64-cbindgen + - linux64-dump_syms + - linux64-nasm + - linux64-node + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + +jobs: + android-geckoview-fat-aar-shippable/opt: + description: "Android GeckoView multi-architecture fat AAR Shippable" + attributes: + shippable: true + enable-full-crashsymbols: true + disable-push-apk: true + maven_packages: + - geckoview + shipping-phase: build + shipping-product: fennec + index: + job-name: android-geckoview-fat-aar-opt + type: shippable-with-multi-l10n + treeherder: + platform: android-5-0-geckoview-fat-aar-shippable/opt + symbol: Bgv + dependencies: + android-x86-shippable: build-android-x86-shippable/opt + android-x86_64-shippable: build-android-x86_64-shippable/opt + android-arm-shippable: build-android-arm-shippable/opt + android-aarch64-shippable: build-android-aarch64-shippable/opt + worker: + env: + PERFHERDER_EXTRA_OPTIONS: android-geckoview-fat-aar-nightly + run: + actions: [get-secrets, build, multi-l10n] + config: + - builds/releng_base_android_64_builds.py + - taskcluster_nightly.py + custom-build-variant-cfg: arm + fetches: + toolchain: + - android-gradle-dependencies + optimization: + skip-unless-backstop: null + + android-geckoview-fat-aar-shippable-lite/opt: + description: "Android GeckoView Lite multi-architecture fat AAR Shippable" + attributes: + shippable: true + enable-full-crashsymbols: true + disable-push-apk: true + maven_packages: + - geckoview + - geckoview-exoplayer2 + shipping-phase: build + shipping-product: fennec + index: + job-name: android-geckoview-fat-aar-opt-lite + type: shippable-with-multi-l10n + treeherder: + platform: android-4-1-geckoview-fat-aar-shippable/opt + symbol: Bgvl + dependencies: + android-x86-shippable-lite: build-android-x86-shippable-lite/opt + android-x86_64-shippable-lite: build-android-x86_64-shippable-lite/opt + android-arm-shippable-lite: build-android-arm-shippable-lite/opt + android-aarch64-shippable-lite: build-android-aarch64-shippable-lite/opt + worker: + env: + PERFHERDER_EXTRA_OPTIONS: android-geckoview-fat-aar-nightly-lite + run: + actions: [get-secrets, build, multi-l10n] + config: + - builds/releng_base_android_64_builds.py + - taskcluster_nightly.py + custom-build-variant-cfg: arm-lite + fetches: + toolchain: + - android-gradle-dependencies-lite + optimization: + skip-unless-backstop: null + + android-geckoview-fat-aar/opt: + description: "Android GeckoView multi-architecture fat AAR Opt" + attributes: + maven_packages: + - geckoview + index: + job-name: android-geckoview-fat-aar-opt + treeherder: + platform: android-5-0-geckoview-fat-aar/opt + symbol: Bgv + dependencies: + android-x86-opt: build-android-x86/opt + android-x86_64-opt: build-android-x86_64/opt + android-arm-opt: build-android-arm/opt + android-aarch64-opt: build-android-aarch64/opt + worker: + env: + PERFHERDER_EXTRA_OPTIONS: android-geckoview-fat-aar-opt + USE_ARTIFACT: '1' + MOZ_ARTIFACT_TASK: {task-reference: '<android-arm-opt>'} + run: + actions: [get-secrets, build] + config: ["builds/releng_base_android_64_builds.py"] + custom-build-variant-cfg: arm + fetches: + toolchain: + - linux64-sccache + - android-gradle-dependencies diff --git a/taskcluster/ci/build-mac-notarization/kind.yml b/taskcluster/ci/build-mac-notarization/kind.yml new file mode 100644 index 0000000000..8d049b3695 --- /dev/null +++ b/taskcluster/ci/build-mac-notarization/kind.yml @@ -0,0 +1,34 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.mac_notarization + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.signing + - gecko_taskgraph.transforms.task + +kind-dependencies: + - build-mac-signing + +only-for-attributes: + - shippable + +jobs: + build-mac-notarization: + from-deps: + group-by: single-with-filters + copy-attributes: true + treeherder: + symbol: BMN + upstream-artifacts: + - taskType: signing + paths: + - public/build/target.tar.gz + - public/build/target.pkg + formats: ["apple_notarization"] + taskId: + task-reference: <build-mac-signing> diff --git a/taskcluster/ci/build-mac-signing/kind.yml b/taskcluster/ci/build-mac-signing/kind.yml new file mode 100644 index 0000000000..d90813cd96 --- /dev/null +++ b/taskcluster/ci/build-mac-signing/kind.yml @@ -0,0 +1,34 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.build_signing + - gecko_taskgraph.transforms.signing + - gecko_taskgraph.transforms.hardened_signing + - gecko_taskgraph.transforms.task + +kind-dependencies: + - build + +only-for-attributes: + - enable-build-signing + +only-for-build-platforms: + - macosx64-shippable/opt + - macosx64-devedition/opt + - macosx64/opt + - macosx64/debug + - macosx64-aarch64/debug + +jobs: + build-mac-signing: + from-deps: + group-by: single-with-filters + treeherder: + symbol: BMS + enable-signing-routes: false diff --git a/taskcluster/ci/build-signing/kind.yml b/taskcluster/ci/build-signing/kind.yml new file mode 100644 index 0000000000..7e4bbab419 --- /dev/null +++ b/taskcluster/ci/build-signing/kind.yml @@ -0,0 +1,34 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps:transforms + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.upstream_artifact_task + - gecko_taskgraph.transforms.build_signing + - gecko_taskgraph.transforms.signing + - gecko_taskgraph.transforms.task + +kind-dependencies: + - build + - build-fat-aar + +only-for-attributes: + - nightly + - shippable + - enable-build-signing + +not-for-build-platforms: + - macosx64-shippable/opt + - macosx64-devedition/opt + - macosx64/opt + - macosx64/debug + - macosx64-aarch64/debug + +jobs: + build-signing: + from-deps: + group-by: platform diff --git a/taskcluster/ci/build/android-asan.yml b/taskcluster/ci/build/android-asan.yml new file mode 100644 index 0000000000..4cc846dece --- /dev/null +++ b/taskcluster/ci/build/android-asan.yml @@ -0,0 +1,75 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + attributes: + artifact_map: taskcluster/gecko_taskgraph/manifests/fennec_geckoview.yml + maven_packages: + - geckoview + index: + product: mobile + worker: + docker-image: {in-tree: android-build} + max-run-time: 7200 + env: + GRADLE_USER_HOME: "/builds/worker/checkouts/gecko/mobile/android/gradle/dotgradle-offline" + artifacts: + - name: public/build/maven + path: /builds/worker/workspace/obj-build/gradle/maven/ + type: directory + - name: public/build/geckoview-androidTest.apk + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/geckoview/outputs/apk/androidTest/withGeckoBinaries/debug/geckoview-withGeckoBinaries-debug-androidTest.apk + type: file + - name: public/build/geckoview-test_runner.apk + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/test_runner/outputs/apk/withGeckoBinaries/debug/test_runner-withGeckoBinaries-debug.apk + type: file + - name: public/build/geckoview_example.apk + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/geckoview_example/outputs/apk/withGeckoBinaries/debug/geckoview_example-withGeckoBinaries-debug.apk + type: file + - name: public/build + path: /builds/worker/artifacts/ + type: directory + run: + using: mozharness + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + mozconfig-variant: null + tooltool-downloads: internal + fetches: + toolchain: + - android-ndk-linux + - android-sdk-linux + - linux64-jdk + - linux64-rust-android + - linux64-rust-size + - linux64-cbindgen + - linux64-dump_syms + - linux64-nasm + - linux64-node + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + +android-x86_64-asan-fuzzing/opt: + description: "Android 5.0 x86-64 Fuzzing Opt ASAN" + index: + job-name: android-x86_64-fuzzing-asan + treeherder: + platform: android-5-0-x86_64/asan + symbol: Bof + worker-type: b-linux-large-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest" + run: + actions: [get-secrets, build] + config: ["builds/releng_base_android_64_builds.py"] + custom-build-variant-cfg: fuzzing-asan-tc + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + - android-gradle-dependencies + optimization: + skip-unless-expanded: null diff --git a/taskcluster/ci/build/android-stuff.yml b/taskcluster/ci/build/android-stuff.yml new file mode 100644 index 0000000000..52bed7b18f --- /dev/null +++ b/taskcluster/ci/build/android-stuff.yml @@ -0,0 +1,53 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + tags: + android-stuff: "true" + run: + mozconfig-variant: null + +android-geckoview-docs/opt: + description: "Android GeckoView docs" + index: + product: mobile + job-name: android-geckoview-docs + treeherder: + platform: android-4-1-armv7/opt + kind: build + tier: 2 + symbol: A(gv-docs) + run-on-projects: [mozilla-central-only] + worker-type: b-linux-gcp + worker: + docker-image: {in-tree: android-build} + env: + GRADLE_USER_HOME: "/builds/worker/checkouts/gecko/mobile/android/gradle/dotgradle-offline" + PERFHERDER_EXTRA_OPTIONS: android-geckoview-docs + GECKOVIEW_DOCS_UPLOAD_SECRET: "project/releng/gecko/build/level-{level}/geckoview-docs-upload" + artifacts: + - name: public/android/geckoview-docs/geckoview-javadoc.jar + path: /builds/worker/workspace/obj-build/mobile/android/geckoview/docs/javadoc/withGeckoBinaries-debug/geckoview-javadoc.jar + type: file + max-run-time: 7200 + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_android_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: android-geckoview-docs + tooltool-downloads: internal + fetches: + toolchain: + - android-gradle-dependencies + - android-sdk-linux + - linux64-jdk + - linux64-node + optimization: + skip-unless-changed: + - "mobile/android/**/*.java" + - "mobile/android/gradle.configure" + - "**/*.gradle" diff --git a/taskcluster/ci/build/android.yml b/taskcluster/ci/build/android.yml new file mode 100644 index 0000000000..7c37b2680f --- /dev/null +++ b/taskcluster/ci/build/android.yml @@ -0,0 +1,644 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + attributes: + artifact_map: taskcluster/gecko_taskgraph/manifests/fennec_geckoview.yml + maven_packages: + - geckoview + index: + product: mobile + worker: + docker-image: {in-tree: android-build} + max-run-time: 7200 + env: + GRADLE_USER_HOME: "/builds/worker/checkouts/gecko/mobile/android/gradle/dotgradle-offline" + artifacts: + - name: public/build/maven + path: /builds/worker/workspace/obj-build/gradle/maven/ + type: directory + - name: public/build/target.maven.tar.xz + path: /builds/worker/workspace/obj-build/gradle/target.maven.tar.xz + type: file + - name: public/build/geckoview-androidTest.apk + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/geckoview/outputs/apk/androidTest/withGeckoBinaries/debug/geckoview-withGeckoBinaries-debug-androidTest.apk + type: file + - name: public/build/geckoview-test_runner.apk + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/test_runner/outputs/apk/withGeckoBinaries/debug/test_runner-withGeckoBinaries-debug.apk + type: file + - name: public/build/geckoview-test_runner.aab + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/test_runner/outputs/bundle/withGeckoBinariesDebug/test_runner-withGeckoBinaries-debug.aab + type: file + - name: public/build/geckoview_example.apk + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/geckoview_example/outputs/apk/withGeckoBinaries/debug/geckoview_example-withGeckoBinaries-debug.apk + type: file + - name: public/build/geckoview_example.aab + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/geckoview_example/outputs/bundle/withGeckoBinariesDebug/geckoview_example-withGeckoBinaries-debug.aab + type: file + - name: public/build + path: /builds/worker/artifacts/ + type: directory + run: + using: mozharness + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + mozconfig-variant: null + tooltool-downloads: internal + fetches: + toolchain: + - android-ndk-linux + - android-sdk-linux + - linux64-jdk + - linux64-rust-android + - linux64-rust-size + - linux64-cbindgen + - linux64-dump_syms + - linux64-nasm + - linux64-node + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + +android-arm/debug: + description: "Android 5.0 Arm Debug" + index: + job-name: android-arm-debug + attributes: + enable-full-crashsymbols: true + treeherder: + platform: android-5-0-armv7/debug + symbol: B + worker-type: b-linux-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + actions: [get-secrets, build] + config: ["builds/releng_base_android_64_builds.py"] + custom-build-variant-cfg: arm-debug + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + - android-gradle-dependencies + +android-x86/opt: + description: "Android 5.0 x86 Opt" + index: + job-name: android-x86-opt + attributes: + enable-full-crashsymbols: true + treeherder: + platform: android-5-0-x86/opt + symbol: B + run-on-projects: ['integration'] + worker-type: b-linux-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + actions: [get-secrets, build] + config: ["builds/releng_base_android_64_builds.py"] + custom-build-variant-cfg: x86 + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + - android-gradle-dependencies + +android-x86-lite/opt: + description: "Android 4.1 x86 Opt" + index: + job-name: android-x86-lite-opt + attributes: + enable-full-crashsymbols: true + treeherder: + platform: android-4-1-x86/opt + symbol: Bl + run-on-projects: ['integration'] + worker-type: b-linux-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest" + PERFHERDER_EXTRA_OPTIONS: lite + run: + actions: [get-secrets, build] + config: ["builds/releng_base_android_64_builds.py"] + custom-build-variant-cfg: x86-lite + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + - android-gradle-dependencies-lite + +android-x86-shippable/opt: + description: "Android 5.0 x86 Shippable" + use-pgo: true + attributes: + enable-full-crashsymbols: true + shippable: true + shipping-phase: build + shipping-product: fennec + index: + job-name: android-x86-opt + type: android-shippable + treeherder: + platform: android-5-0-x86-shippable/opt + symbol: B + run-on-projects: ['release'] + worker-type: b-linux-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + actions: [get-secrets, build, multi-l10n] + config: + - builds/releng_base_android_64_builds.py + - taskcluster_nightly.py + custom-build-variant-cfg: x86 + fetches: + toolchain: + - linux64-clang + - android-gradle-dependencies + +android-x86-shippable-lite/opt: + description: "Android 4.1 x86 Shippable Lite" + use-pgo: android-x86-shippable/opt + attributes: + enable-full-crashsymbols: true + shippable: true + shipping-phase: build + shipping-product: fennec + index: + job-name: android-x86-lite-opt + type: android-shippable + treeherder: + platform: android-4-1-x86-shippable-lite/opt + symbol: Bl + run-on-projects: ['release'] + worker-type: b-linux-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + actions: [get-secrets, build, multi-l10n] + config: + - builds/releng_base_android_64_builds.py + - taskcluster_nightly.py + custom-build-variant-cfg: x86-lite + fetches: + toolchain: + - linux64-clang + - android-gradle-dependencies-lite + +android-arm/opt: + description: "Android 5.0 Arm Opt" + index: + job-name: android-arm-opt + attributes: + enable-full-crashsymbols: true + treeherder: + platform: android-5-0-armv7/opt + symbol: B + run-on-projects: ['integration'] + worker-type: b-linux-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + actions: [get-secrets, build] + config: ["builds/releng_base_android_64_builds.py"] + custom-build-variant-cfg: arm + use-sccache: true + fetches: + toolchain: + - linux64-clang + - android-gradle-dependencies + - linux64-sccache + +android-arm-lite/opt: + description: "Android 4.1 Arm Opt Lite" + index: + job-name: android-arm-lite-opt + attributes: + enable-full-crashsymbols: true + treeherder: + platform: android-4-1-armv7/opt + symbol: Bl + run-on-projects: ['integration'] + worker-type: b-linux-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest" + run: + actions: [get-secrets, build] + config: ["builds/releng_base_android_64_builds.py"] + custom-build-variant-cfg: arm-lite + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + - android-gradle-dependencies-lite + +android-arm-shippable/opt: + description: "Android 5.0 Arm Shippable" + use-pgo: android-x86-shippable/opt + attributes: + enable-full-crashsymbols: true + shippable: true + shipping-phase: build + shipping-product: fennec + index: + job-name: android-arm-opt + type: android-shippable-with-multi-l10n + treeherder: + platform: android-5-0-armv7-shippable/opt + symbol: Bpgo(B) + run-on-projects: ['release'] + worker-type: b-linux-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + actions: [get-secrets, build, multi-l10n] + config: + - builds/releng_base_android_64_builds.py + - taskcluster_nightly.py + custom-build-variant-cfg: arm + fetches: + toolchain: + - linux64-clang + - android-gradle-dependencies + +android-arm-shippable-lite/opt: + description: "Android 4.1 Arm Shippable Lite" + use-pgo: android-x86-shippable/opt + attributes: + enable-full-crashsymbols: true + shippable: true + shipping-phase: build + shipping-product: fennec + index: + job-name: android-arm-lite-opt + type: android-shippable-with-multi-l10n + treeherder: + platform: android-4-1-armv7-shippable-lite/opt + symbol: Bpgo(Bl) + run-on-projects: ['release'] + worker-type: b-linux-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + actions: [get-secrets, build, multi-l10n] + config: + - builds/releng_base_android_64_builds.py + - taskcluster_nightly.py + custom-build-variant-cfg: arm-lite + fetches: + toolchain: + - linux64-clang + - android-gradle-dependencies-lite + +android-aarch64/opt: + description: "Android 5.0 AArch64 Opt" + index: + job-name: android-aarch64-opt + attributes: + enable-full-crashsymbols: true + treeherder: + platform: android-5-0-aarch64/opt + symbol: B + run-on-projects: ['integration'] + worker-type: b-linux-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + actions: [get-secrets, build] + config: ["builds/releng_base_android_64_builds.py"] + custom-build-variant-cfg: aarch64 + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + - android-gradle-dependencies + +android-aarch64-lite/opt: + description: "Android 5.0 AArch64 Opt Lite" + index: + job-name: android-aarch64-lite-opt + attributes: + enable-full-crashsymbols: true + treeherder: + platform: android-5-0-aarch64/opt + symbol: Bl + run-on-projects: ['integration'] + worker-type: b-linux-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest" + PERFHERDER_EXTRA_OPTIONS: lite + run: + actions: [get-secrets, build] + config: ["builds/releng_base_android_64_builds.py"] + custom-build-variant-cfg: aarch64-lite + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + - android-gradle-dependencies-lite + +android-aarch64/debug: + description: "Android 5.0 AArch64 Debug" + index: + job-name: android-aarch64-debug + attributes: + enable-full-crashsymbols: true + treeherder: + platform: android-5-0-aarch64/debug + symbol: B + worker-type: b-linux-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + actions: [get-secrets, build] + config: ["builds/releng_base_android_64_builds.py"] + custom-build-variant-cfg: aarch64-debug + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + - android-gradle-dependencies + +android-aarch64-shippable/opt: + description: "Android 5.0 AArch64 Shippable" + use-pgo: android-aarch64-shippable/opt + attributes: + enable-full-crashsymbols: true + shippable: true + shipping-phase: build + shipping-product: fennec + index: + job-name: android-aarch64-opt + type: android-shippable + treeherder: + platform: android-5-0-aarch64-shippable/opt + symbol: Bpgo(B) + run-on-projects: ['release'] + worker-type: b-linux-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + actions: [get-secrets, build, multi-l10n] + config: + - builds/releng_base_android_64_builds.py + - taskcluster_nightly.py + custom-build-variant-cfg: aarch64 + fetches: + toolchain: + - linux64-clang + - android-gradle-dependencies + +android-aarch64-shippable-lite/opt: + description: "Android 5.0 AArch64 Shippable Lite" + use-pgo: android-aarch64-shippable/opt + attributes: + enable-full-crashsymbols: true + shippable: true + shipping-phase: build + shipping-product: fennec + index: + job-name: android-aarch64-lite-opt + type: android-shippable + treeherder: + platform: android-5-0-aarch64-shippable-lite/opt + symbol: Bpgo(Bl) + run-on-projects: ['release'] + worker-type: b-linux-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + PERFHERDER_EXTRA_OPTIONS: lite + run: + actions: [get-secrets, build, multi-l10n] + config: + - builds/releng_base_android_64_builds.py + - taskcluster_nightly.py + custom-build-variant-cfg: aarch64-lite + fetches: + toolchain: + - linux64-clang + - android-gradle-dependencies-lite + +android-x86_64/opt: + description: "Android 5.0 x86-64 Opt" + index: + job-name: android-x86_64-opt + attributes: + enable-full-crashsymbols: true + treeherder: + platform: android-5-0-x86_64/opt + symbol: B + run-on-projects: ['integration'] + worker-type: b-linux-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + actions: [get-secrets, build] + config: ["builds/releng_base_android_64_builds.py"] + custom-build-variant-cfg: x86_64 + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + - android-gradle-dependencies + +android-x86_64-lite/opt: + description: "Android 5.0 x86-64 Opt Lite" + index: + job-name: android-x86_64-lite-opt + attributes: + enable-full-crashsymbols: true + treeherder: + platform: android-5-0-x86_64/opt + symbol: Bl + run-on-projects: ['integration'] + worker-type: b-linux-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + PERFHERDER_EXTRA_OPTIONS: lite + run: + actions: [get-secrets, build] + config: ["builds/releng_base_android_64_builds.py"] + custom-build-variant-cfg: x86_64-lite + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + - android-gradle-dependencies-lite + +android-x86_64-fuzzing/debug: + description: "Android x86_64 Fuzzing Debug" + index: + job-name: android-x86_64-fuzzing-debug + treeherder: + platform: android-5-0-x86_64/debug + symbol: Bf + worker-type: b-linux-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest" + PERFHERDER_EXTRA_OPTIONS: fuzzing + run: + actions: [get-secrets, build] + config: ["builds/releng_base_android_64_builds.py"] + custom-build-variant-cfg: fuzzing-debug + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + - android-gradle-dependencies + optimization: + skip-unless-expanded: null + +android-x86_64-shippable/opt: + description: "Android 5.0 x86-64 Shippable" + use-pgo: true + attributes: + enable-full-crashsymbols: true + shippable: true + shipping-phase: build + shipping-product: fennec + index: + job-name: android-x86_64-opt + type: android-shippable + treeherder: + platform: android-5-0-x86_64-shippable/opt + symbol: B + run-on-projects: ['release'] + worker-type: b-linux-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + actions: [get-secrets, build, multi-l10n] + config: + - builds/releng_base_android_64_builds.py + - taskcluster_nightly.py + custom-build-variant-cfg: x86_64 + fetches: + toolchain: + - linux64-clang + - android-gradle-dependencies + +android-x86_64-shippable-lite/opt: + description: "Android 5.0 x86-64 Shippable Lite" + use-pgo: android-x86_64-shippable/opt + attributes: + enable-full-crashsymbols: true + shippable: true + shipping-phase: build + shipping-product: fennec + index: + job-name: android-x86_64-lite-opt + type: android-shippable + treeherder: + platform: android-5-0-x86_64-shippable-lite/opt + symbol: Bl + run-on-projects: ['release'] + worker-type: b-linux-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + PERFHERDER_EXTRA_OPTIONS: lite + run: + actions: [get-secrets, build, multi-l10n] + config: + - builds/releng_base_android_64_builds.py + - taskcluster_nightly.py + custom-build-variant-cfg: x86_64-lite + fetches: + toolchain: + - linux64-clang + - android-gradle-dependencies-lite + +android-x86_64/debug: + description: "Android 5.0 x86-64 Debug" + index: + job-name: android-x86_64-debug + attributes: + enable-full-crashsymbols: true + treeherder: + platform: android-5-0-x86_64/debug + symbol: B + worker-type: b-linux-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + actions: [get-secrets, build] + config: ["builds/releng_base_android_64_builds.py"] + custom-build-variant-cfg: x86_64-debug + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + - android-gradle-dependencies + +android-x86_64/debug-isolated-process: + description: "Android 5.0 x86-64 Debug with Isolated Process" + index: + job-name: android-x86_64-debug-isolated-process + attributes: + enable-full-crashsymbols: true + treeherder: + platform: android-5-0-x86_64/debug-isolated-process + symbol: Bip + worker-type: b-linux-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + PERFHERDER_EXTRA_OPTIONS: isolated-process + run: + actions: [get-secrets, build] + config: ["builds/releng_base_android_64_builds.py"] + custom-build-variant-cfg: x86_64-debug-isolated-process + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + - android-gradle-dependencies diff --git a/taskcluster/ci/build/kind.yml b/taskcluster/ci/build/kind.yml new file mode 100644 index 0000000000..886f1ef433 --- /dev/null +++ b/taskcluster/ci/build/kind.yml @@ -0,0 +1,91 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + - fetch + - generate-profile + +transforms: + - gecko_taskgraph.transforms.build:transforms + - gecko_taskgraph.transforms.build_attrs:transforms + - gecko_taskgraph.transforms.build_lints:transforms + - gecko_taskgraph.transforms.release_notifications:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.artifact:transforms + - gecko_taskgraph.transforms.task:transforms + +jobs-from: + - android.yml + - android-asan.yml + - android-stuff.yml + - linux.yml + - linux-base-toolchains.yml + - macosx.yml + - macosx-native.yml + - windows.yml + - windows-mingw.yml + +job-defaults: + worker: + env: + MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE: system + use-system-python: false + run: + mozconfig-variant: + by-release-type: + beta: beta + release.*: release + # We keep using the release configs as the beta and release configs are + # identical except for + # https://searchfox.org/mozilla-central/rev/ce9ff94ffed34dc17ec0bfa406156d489eaa8ee1/browser/config/mozconfigs/linux32/release#1 # noqa + esr.*: release + default: nightly + # Note: These settings are only honored by nightly (i.e. shipping) builds + update-channel: + by-release-type: + nightly: + by-project: + try: nightly-try + default: nightly + nightly-larch: nightly-larch + nightly-oak: nightly-oak + nightly-pine: nightly-pine + beta: + by-shipping-product: + devedition: aurora + default: beta + release.*: release + esr.*: esr + default: null + # ACCEPTED_MAR_CHANNEL_IDS should usually be the same as the value MAR_CHANNEL_ID. + # If more than one ID is needed, then you should use a comma separated list + # of values. + # The MAR_CHANNEL_ID must not contain the following 3 characters: ",\t " + mar-channel-id: + by-release-type: + nightly-larch: firefox-nightly-larch + nightly-oak: firefox-nightly-oak + nightly-pine: firefox-nightly-pine + beta: + by-shipping-product: + devedition: firefox-mozilla-aurora + default: firefox-mozilla-beta + release.*: firefox-mozilla-release + esr.*: firefox-mozilla-esr + default: firefox-mozilla-central + accepted-mar-channel-ids: + by-release-type: + nightly-larch: firefox-nightly-larch + nightly-oak: firefox-nightly-oak + nightly-pine: firefox-nightly-pine + beta: + by-shipping-product: + devedition: firefox-mozilla-aurora + default: firefox-mozilla-beta,firefox-mozilla-release + release.*: firefox-mozilla-release + esr.*: firefox-mozilla-esr + default: firefox-mozilla-central diff --git a/taskcluster/ci/build/linux-base-toolchains.yml b/taskcluster/ci/build/linux-base-toolchains.yml new file mode 100644 index 0000000000..1cde0b229f --- /dev/null +++ b/taskcluster/ci/build/linux-base-toolchains.yml @@ -0,0 +1,173 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# We have these build jobs in a separate file because their definitions are +# different enough from the main Linux build jobs that their presence in +# linux.yml would make using job-defaults there significantly less useful. +--- +job-defaults: + worker-type: b-linux-gcp + run: + extra-config: + extra_mozconfig_content: + # Builds on automation don't normally build geckodriver, + # but to ensure we also successfully build geckodriver with + # the MSRV, force it to be built. + - ac_add_options --enable-geckodriver + +linux64-base-toolchains/opt: + description: "Linux64 base toolchains Opt" + index: + product: firefox + job-name: linux64-base-toolchains-opt + treeherder: + platform: linux64/opt + symbol: Bb + run-on-projects: ['mozilla-central'] + worker: + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: base-toolchains + FORCE_GCC: '1' + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + tooltool-downloads: public + use-sccache: true + fetches: + toolchain: + - linux64-binutils-2.31.1 + - linux64-clang-base + - linux64-gcc-base + - linux64-rust-base + - linux64-cbindgen + - linux64-dump_syms + - linux64-sccache + - linux64-nasm-2.14.02 + - linux64-node-12 + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi-clang-8.0 + +linux64-base-toolchains/debug: + description: "Linux64 base toolchains Debug" + index: + product: firefox + job-name: linux64-base-toolchains-debug + treeherder: + platform: linux64/debug + symbol: Bb + optimization: + skip-unless-expanded: null + worker: + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: base-toolchains + FORCE_GCC: '1' + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: debug + mozconfig-variant: debug + tooltool-downloads: public + use-sccache: true + fetches: + toolchain: + - linux64-binutils-2.31.1 + - linux64-clang-base + - linux64-gcc-base + - linux64-rust-base + - linux64-cbindgen + - linux64-dump_syms + - linux64-sccache + - linux64-nasm-2.14.02 + - linux64-node-12 + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi-clang-8.0 + +linux64-base-toolchains-clang/opt: + description: "Linux64 base toolchains clang Opt" + index: + product: firefox + job-name: linux64-base-toolchains-clang-opt + treeherder: + platform: linux64/opt + symbol: Bbc + run-on-projects: ['mozilla-central'] + worker: + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: base-toolchains-clang + DISABLE_CLANG_PLUGIN: '1' + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + tooltool-downloads: public + fetches: + toolchain: + - linux64-binutils-2.31.1 + - linux64-clang-base + - linux64-rust-base + - linux64-cbindgen + - linux64-dump_syms + - linux64-nasm-2.14.02 + - linux64-node-12 + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi-clang-8.0 + +linux64-base-toolchains-clang/debug: + description: "Linux64 base toolchains clang Debug" + index: + product: firefox + job-name: linux64-base-toolchains-clang-debug + treeherder: + platform: linux64/debug + symbol: Bbc + optimization: + skip-unless-expanded: null + worker: + max-run-time: 5400 + env: + PERFHERDER_EXTRA_OPTIONS: base-toolchains-clang + DISABLE_CLANG_PLUGIN: '1' + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: debug + mozconfig-variant: debug + tooltool-downloads: public + fetches: + toolchain: + - linux64-binutils-2.31.1 + - linux64-clang-base + - linux64-rust-base + - linux64-cbindgen + - linux64-dump_syms + - linux64-nasm-2.14.02 + - linux64-node-12 + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi-clang-8.0 diff --git a/taskcluster/ci/build/linux.yml b/taskcluster/ci/build/linux.yml new file mode 100644 index 0000000000..73301313d6 --- /dev/null +++ b/taskcluster/ci/build/linux.yml @@ -0,0 +1,1799 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + worker-type: b-linux-gcp + +linux64/opt: + description: "Linux64 Opt" + index: + product: firefox + job-name: linux64-opt + attributes: + enable-build-signing: true + enable-full-crashsymbols: true + treeherder: + platform: linux64/opt + symbol: B + worker: + max-run-time: 7200 + env: + 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 + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + tooltool-downloads: public + run-on-projects: ['integration'] + use-sccache: true + 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 + +linux64-x11/opt: + description: "Linux64 Opt (X11-only)" + index: + product: firefox + job-name: linux64-x11-opt + treeherder: + platform: linux64/opt + symbol: Bx + tier: 2 + worker: + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: x11 + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + run-on-projects: ['integration'] + use-sccache: true + 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-x11 + - sysroot-wasm32-wasi + +linux64-plain/opt: + description: "Linux64 Opt Plain" + index: + product: firefox + job-name: linux64-plain-opt + treeherder: + platform: linux64/opt + symbol: Bp + tier: 1 + worker: + max-run-time: 5400 + env: + PERFHERDER_EXTRA_OPTIONS: plain + run: + using: mozharness + actions: [build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: mozharness/scripts/fx_desktop_build.py + tooltool-downloads: public + extra-config: + disable_package_metrics: true + mozconfig-variant: plain-opt + run-on-projects: ['mozilla-central'] + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-dump_syms + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + optimization: + skip-unless-expanded: null + +linux64-non-unified/plain: + description: "Linux64 Plain Hybrid" + index: + product: firefox + job-name: linux64-non-unified-plain + treeherder: + platform: linux64/plain + symbol: Bp-nu + tier: 1 + worker: + max-run-time: 5400 + env: + PERFHERDER_EXTRA_OPTIONS: non-unified + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: mozharness/scripts/fx_desktop_build.py + secrets: true + tooltool-downloads: public + extra-config: + disable_package_metrics: true + mozconfig-variant: non-unified + run-on-projects: ['integration'] + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-sccache + - linux64-dump_syms + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + +linux64-gcc/opt: + description: "Linux64 GCC Opt" + index: + product: firefox + job-name: linux64-gcc-opt + treeherder: + platform: linux64/opt + symbol: Bgcc + tier: 2 + run-on-projects: ['mozilla-central'] + worker: + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: gcc + FORCE_GCC: '1' + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + tooltool-downloads: public + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-gcc-11 + - 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 + +linux64-plain-clang-trunk/opt: + description: "Linux64 Opt Plain with clang trunk" + index: + product: firefox + job-name: linux64-plain-opt-ct + treeherder: + platform: linux64/opt + symbol: Bp-clang-trunk + tier: 2 + worker: + max-run-time: 5400 + env: + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + PERFHERDER_EXTRA_OPTIONS: plain-clang-trunk + run: + using: mozharness + actions: [build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: mozharness/scripts/fx_desktop_build.py + tooltool-downloads: public + extra-config: + disable_package_metrics: true + mozconfig-variant: plain-opt-trunk + run-on-projects: [] + fetches: + toolchain: + - linux64-clang-trunk + - linux64-rust + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-dump_syms + - linux64-toolchain-sysroot + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + optimization: + skip-unless-expanded: null + +linux64-fuzzing/debug: + description: "Linux64 Fuzzing Debug" + index: + product: firefox + job-name: linux64-fuzzing-debug + attributes: + # The gtest libxul contains libFuzzer targets + skip-verify-test-packaging: true + treeherder: + platform: linux64/debug + symbol: Bf + worker: + max-run-time: 5400 + env: + PERFHERDER_EXTRA_OPTIONS: fuzzing + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: fuzzing-debug + mozconfig-variant: debug-fuzzing + tooltool-downloads: public + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-cbindgen + - linux64-dump_syms + - linux64-llvm-symbolizer + - linux64-sccache + - linux64-rust + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + optimization: + skip-unless-expanded: null + +linux64-fuzzing-noopt/debug: + description: "Linux64 Fuzzing No-optimize Debug" + index: + product: firefox + job-name: linux64-fuzzing-noopt-debug + attributes: + # The gtest libxul contains libFuzzer targets + skip-verify-test-packaging: true + treeherder: + platform: linux64-noopt/debug + symbol: Bf + worker: + max-run-time: 5400 + env: + PERFHERDER_EXTRA_OPTIONS: fuzzing-noopt-debug + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: fuzzing-debug + mozconfig-variant: debug-fuzzing-noopt + tooltool-downloads: public + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-cbindgen + - linux64-dump_syms + - linux64-llvm-symbolizer + - linux64-sccache + - linux64-rust + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + optimization: + skip-unless-expanded: null + +linux64/debug: + description: "Linux64 Debug" + index: + product: firefox + job-name: linux64-debug + attributes: + enable-full-crashsymbols: true + treeherder: + platform: linux64/debug + symbol: B + worker: + max-run-time: 5400 + env: + 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 + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: debug + mozconfig-variant: debug + tooltool-downloads: public + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-cbindgen + - linux64-dump_syms + - linux64-sccache + - linux64-rust + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + +linux64-plain/debug: + description: "Linux64 Debug Plain" + index: + product: firefox + job-name: linux64-plain-debug + treeherder: + platform: linux64/debug + symbol: Bp + tier: 1 + worker: + max-run-time: 5400 + env: + PERFHERDER_EXTRA_OPTIONS: plain + run: + using: mozharness + actions: [build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + extra-config: + disable_package_metrics: true + mozconfig-variant: plain-debug + script: mozharness/scripts/fx_desktop_build.py + tooltool-downloads: public + run-on-projects: [trunk] + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-dump_syms + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + optimization: + skip-unless-expanded: null + +linux64-devedition/opt: + description: "Linux64 devedition (shippable)" + use-pgo: linux64-shippable/opt + attributes: + shippable: true + enable-full-crashsymbols: true + shipping-phase: build + shipping-product: devedition + index: + product: devedition + job-name: linux64-opt + type: shippable + treeherder: + platform: linux64-devedition/opt + symbol: B + worker-type: b-linux-xlarge-gcp + worker: + max-run-time: 7200 + env: + 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 + extra-config: + stage_platform: 'linux64-devedition' + max_build_output_timeout: 3600 + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + tooltool-downloads: public + mozconfig-variant: devedition + run-on-projects: ['mozilla-beta'] + 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 + +linux/opt: + description: "Linux32 Opt" + index: + product: firefox + job-name: linux-opt + attributes: + enable-build-signing: true + enable-full-crashsymbols: true + treeherder: + platform: linux32/opt + symbol: B + worker: + max-run-time: 7200 + env: + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_32_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + tooltool-downloads: public + run-on-projects: + - 'mozilla-beta' + - 'mozilla-release' + - 'mozilla-esr115' + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump_syms + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-i686-linux-gnu + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + +linux-fuzzing/debug: + description: "Linux32 Fuzzing Debug" + index: + product: firefox + job-name: linux-fuzzing-debug + attributes: + # The gtest libxul contains libFuzzer targets + skip-verify-test-packaging: true + treeherder: + platform: linux32/debug + symbol: Bf + worker: + max-run-time: 5400 + env: + PERFHERDER_EXTRA_OPTIONS: fuzzing + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_32_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: fuzzing-debug + mozconfig-variant: debug-fuzzing + tooltool-downloads: public + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-cbindgen + - linux64-dump_syms + - linux32-llvm-symbolizer + - linux64-sccache + - linux64-rust + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-i686-linux-gnu + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + optimization: + skip-unless-expanded: null + +linux/debug: + description: "Linux32 Debug" + index: + product: firefox + job-name: linux-debug + attributes: + enable-full-crashsymbols: true + treeherder: + platform: linux32/debug + symbol: B + worker: + max-run-time: 5400 + env: + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_32_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: debug + mozconfig-variant: debug + tooltool-downloads: public + run-on-projects: ['release'] + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump_syms + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-i686-linux-gnu + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + +linux-rusttests/opt: + description: "Linux32 Rust Tests Opt" + index: + product: firefox + job-name: linux-rusttests-opt + treeherder: + platform: linux32/opt + symbol: BR + tier: 1 + worker: + max-run-time: 2700 + env: + PERFHERDER_EXTRA_OPTIONS: rusttests + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_32_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: rusttests + mozconfig-variant: rusttests + tooltool-downloads: public + keep-artifacts: false + run-on-projects: ['mozilla-central'] + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-dump_syms + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-i686-linux-gnu + - sysroot-x86_64-linux-gnu + optimization: + test-inclusive: [rusttests] + +linux-rusttests/debug: + description: "Linux32 Rust Tests Debug" + index: + product: firefox + job-name: linux-rusttests-debug + treeherder: + platform: linux32/debug + symbol: BR + tier: 1 + worker: + max-run-time: 2700 + env: + PERFHERDER_EXTRA_OPTIONS: rusttests + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_32_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: rusttests-debug + mozconfig-variant: rusttests-debug + tooltool-downloads: public + keep-artifacts: false + run-on-projects: ['mozilla-central'] + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-dump_syms + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-i686-linux-gnu + - sysroot-x86_64-linux-gnu + optimization: + test-inclusive: [rusttests] + +linux-devedition/opt: + description: "Linux32 devedition (shippable)" + use-pgo: linux-shippable/opt + attributes: + shippable: true + enable-full-crashsymbols: true + shipping-phase: build + shipping-product: devedition + index: + product: devedition + job-name: linux-opt + type: shippable + treeherder: + platform: linux32-devedition/opt + symbol: B + worker-type: b-linux-gcp + worker: + max-run-time: 7200 + env: + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_32_builds.py + - taskcluster_nightly.py + extra-config: + stage_platform: linux-devedition + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + tooltool-downloads: public + mozconfig-variant: devedition + run-on-projects: ['mozilla-beta'] + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump_syms + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-i686-linux-gnu + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + +linux-shippable/opt: + description: "Linux32 Shippable" + use-pgo: true + attributes: + shippable: true + enable-full-crashsymbols: true + shipping-phase: build + shipping-product: firefox + index: + product: firefox + job-name: linux-opt + type: shippable + treeherder: + platform: linux32-shippable/opt + symbol: Bpgo(B) + worker-type: b-linux-gcp + worker: + max-run-time: 9000 + env: + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_32_builds.py + - taskcluster_nightly.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + tooltool-downloads: public + run-on-projects: ['release'] + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump_syms + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-i686-linux-gnu + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + +linux-reproduced/opt: + description: "Linux32 Reproduced" + use-pgo: linux-shippable/opt + shipping-phase: build + shipping-product: firefox + index: + product: firefox + job-name: linux-reproduced-opt + treeherder: + platform: linux32-shippable/opt + symbol: Bpgo(repr) + worker-type: b-linux-gcp + worker: + max-run-time: 9000 + env: + PERFHERDER_EXTRA_OPTIONS: repr + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_32_builds.py + - taskcluster_nightly.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + tooltool-downloads: public + # Original comment: Limited to trunk until bug 1596350 is fixed. + # Addendum: Do not run on autoland, Bug 1599197 + run-on-projects: ['mozilla-central', 'comm-central'] + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump_syms + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-i686-linux-gnu + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + +linux-asan-fuzzing/opt: + description: "Linux32 Fuzzing Opt ASAN" + index: + product: firefox + job-name: linux-fuzzing-asan-opt + attributes: + # The gtest libxul contains libFuzzer targets + skip-verify-test-packaging: true + treeherder: + platform: linux32/asan + symbol: Bof + worker: + env: + PERFHERDER_EXTRA_OPTIONS: asan-fuzzing + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + max-run-time: 5400 + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_32_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: fuzzing-asan-tc + mozconfig-variant: nightly-fuzzing-asan + tooltool-downloads: public + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump_syms + - linux32-llvm-symbolizer + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-i686-linux-gnu + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + optimization: + skip-unless-expanded: null + +linux64-reproduced/opt: + description: "Linux64 Reproduced" + use-pgo: linux64-shippable/opt + shipping-phase: build + shipping-product: firefox + index: + product: firefox + job-name: linux64-reproduced-opt + treeherder: + platform: linux64-shippable/opt + symbol: Bpgo(repr) + worker-type: b-linux-xlarge-gcp + worker: + max-run-time: 9000 + env: + PERFHERDER_EXTRA_OPTIONS: repr + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + - taskcluster_nightly.py + extra-config: + max_build_output_timeout: 3600 + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + tooltool-downloads: public + # Original comment: Limited to trunk until bug 1596350 is fixed. + # Addendum: Do not run on autoland, Bug 1599197 + run-on-projects: ['mozilla-central', 'comm-central'] + 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-asan/opt: + description: "Linux64 Opt ASAN" + index: + product: firefox + job-name: linux64-asan-opt + treeherder: + platform: linux64/asan + symbol: Bo + worker: + env: + PERFHERDER_EXTRA_OPTIONS: "opt asan" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + max-run-time: 5400 + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: asan-tc + mozconfig-variant: nightly-asan + tooltool-downloads: public + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-rust-dev + - linux64-rust-size + - linux64-cbindgen + - linux64-dump_syms + - linux64-llvm-symbolizer + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + +linux64-tsan/opt: + description: "Linux64 Opt TSAN" + index: + product: firefox + job-name: linux64-tsan-opt + treeherder: + platform: linux64/tsan + symbol: Bo + worker: + env: + PERFHERDER_EXTRA_OPTIONS: "opt tsan" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + max-run-time: 5400 + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: tsan-tc + mozconfig-variant: tsan + tooltool-downloads: public + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-rust-dev + - linux64-rust-size + - linux64-cbindgen + - linux64-dump_syms + - linux64-llvm-symbolizer + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + +linux64-tsan-fuzzing/opt: + description: "Linux64 Fuzzing Opt TSAN" + index: + product: firefox + job-name: linux64-fuzzing-tsan-opt + attributes: + # The gtest libxul contains libFuzzer targets + skip-verify-test-packaging: true + treeherder: + platform: linux64/tsan + symbol: Bof + worker: + env: + PERFHERDER_EXTRA_OPTIONS: tsan-fuzzing + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + max-run-time: 5400 + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: fuzzing-tsan-tc + mozconfig-variant: tsan-fuzzing + tooltool-downloads: public + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-rust-dev + - linux64-rust-size + - linux64-cbindgen + - linux64-dump_syms + - linux64-llvm-symbolizer + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + optimization: + skip-unless-expanded: null + +linux64-asan-fuzzing/noopt: + description: "Linux64 Fuzzing No-optimize ASAN" + index: + product: firefox + job-name: linux64-fuzzing-asan-noopt + attributes: + # The gtest libxul contains libFuzzer targets + skip-verify-test-packaging: true + treeherder: + platform: linux64-noopt/asan + symbol: Bf + worker: + env: + PERFHERDER_EXTRA_OPTIONS: asan-fuzzing-noopt + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + max-run-time: 5400 + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: fuzzing-asan-tc + mozconfig-variant: nightly-fuzzing-asan-noopt + tooltool-downloads: public + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-rust-dev + - linux64-rust-size + - linux64-cbindgen + - linux64-dump_syms + - linux64-llvm-symbolizer + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + optimization: + skip-unless-expanded: null + +linux64-asan-fuzzing-nyx/opt: + description: "Linux64 Fuzzing Opt ASAN NYX" + index: + product: firefox + job-name: linux64-fuzzing-asan-nyx-opt + attributes: + # The gtest libxul contains libFuzzer targets + skip-verify-test-packaging: true + treeherder: + platform: linux64/asan + symbol: Bonf + worker: + env: + PERFHERDER_EXTRA_OPTIONS: asan-fuzzing-nyx + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + AFL_CC: /builds/worker/fetches/clang/bin/clang + AFL_CXX: /builds/worker/fetches/clang/bin/clang++ + AFL_LLVM_INSTRUMENT: llvmnative + AFL_LLVM_NO_RPATH: "1" + max-run-time: 7200 + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: fuzzing-asan-tc + mozconfig-variant: nightly-fuzzing-asan-nyx + tooltool-downloads: public + use-sccache: true + fetches: + toolchain: + - linux64-afl-instrumentation + - linux64-clang + - linux64-rust-dev + - linux64-rust-size + - linux64-cbindgen + - linux64-dump_syms + - linux64-llvm-symbolizer + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + optimization: + skip-unless-expanded: null + +linux64-asan-fuzzing-nyx-ccov/opt: + description: "Linux64 Fuzzing Opt ASAN NYX w/ Coverage" + index: + product: firefox + job-name: linux64-ccov-fuzzing-asan-nyx-opt + attributes: + # The gtest libxul contains libFuzzer targets + skip-verify-test-packaging: true + treeherder: + platform: linux64/asan + symbol: Bncf + worker: + env: + PERFHERDER_EXTRA_OPTIONS: asan-fuzzing-ccov-nyx + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + AFL_CC: /builds/worker/fetches/clang/bin/clang + AFL_CXX: /builds/worker/fetches/clang/bin/clang++ + AFL_LLVM_INSTRUMENT: llvmcodecov + AFL_LLVM_NO_RPATH: "1" + max-run-time: 7200 + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: fuzzing-asan-tc + mozconfig-variant: nightly-fuzzing-asan-nyx + tooltool-downloads: public + run-on-projects: ['mozilla-central'] + use-sccache: true + fetches: + toolchain: + - linux64-afl-instrumentation + - linux64-clang + - linux64-rust-dev + - linux64-rust-size + - linux64-cbindgen + - linux64-dump_syms + - linux64-llvm-symbolizer + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + optimization: + skip-unless-expanded: null + + +linux64-asan-fuzzing/opt: + description: "Linux64 Fuzzing Opt ASAN" + index: + product: firefox + job-name: linux64-fuzzing-asan-opt + attributes: + # The gtest libxul contains libFuzzer targets + skip-verify-test-packaging: true + treeherder: + platform: linux64/asan + symbol: Bof + worker: + env: + PERFHERDER_EXTRA_OPTIONS: asan-fuzzing + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + max-run-time: 5400 + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: fuzzing-asan-tc + mozconfig-variant: nightly-fuzzing-asan + tooltool-downloads: public + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-rust-dev + - linux64-rust-size + - linux64-cbindgen + - linux64-dump_syms + - linux64-llvm-symbolizer + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + optimization: + skip-unless-expanded: null + +linux64-asan-fuzzing-ccov/opt: + description: "Linux64 Fuzzing Opt ASAN w/ Coverage" + index: + product: firefox + job-name: linux64-ccov-fuzzing-asan-opt + attributes: + # The gtest libxul contains libFuzzer targets + skip-verify-test-packaging: true + treeherder: + platform: linux64/asan + symbol: Bocf + run-on-projects: ['mozilla-central'] + worker: + env: + PERFHERDER_EXTRA_OPTIONS: asan-fuzzing-ccov + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + max-run-time: 5400 + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + mozconfig-variant: asan-fuzzing-ccov + tooltool-downloads: public + use-sccache: false + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump_syms + - linux64-llvm-symbolizer + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + +linux64-fuzzing-ccov/opt: + description: "Linux64 Fuzzing Opt w/ Coverage" + index: + product: firefox + job-name: linux64-ccov-fuzzing-opt + treeherder: + platform: linux64/opt + symbol: Bocf + run-on-projects: ['mozilla-central'] + worker: + max-run-time: 5400 + env: + PERFHERDER_EXTRA_OPTIONS: fuzzing-ccov + RUSTC_BOOTSTRAP: '1' + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + mozconfig-variant: fuzzing-ccov + tooltool-downloads: public + use-sccache: false + fetches: + toolchain: + - linux64-clang + - linux64-cbindgen + - linux64-dump_syms + - linux64-llvm-symbolizer + - linux64-rust + - linux64-rust-size + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + optimization: + skip-unless-expanded: null + +linux64-asan-reporter-shippable/opt: + description: "Linux64 Opt ASAN Reporter (Shippable)" + attributes: + shippable: true + shipping-product: + by-release-type: + nightly: firefox + default: null + index: + product: firefox + job-name: linux64-asan-reporter-opt + type: shippable + treeherder: + platform: linux64-asan-reporter/opt + symbol: BoR + run-on-projects: ['mozilla-central'] + worker-type: b-linux-xlarge-gcp + worker: + env: + PERFHERDER_EXTRA_OPTIONS: asan-reporter + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + max-run-time: 3600 + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + - taskcluster_nightly.py + extra-config: + max_build_output_timeout: 3600 + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: asan-reporter-tc + mozconfig-variant: nightly-asan-reporter + tooltool-downloads: public + mar-channel-id: + firefox-mozilla-central-asan + accepted-mar-channel-ids: + firefox-mozilla-central-asan + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump_syms + - linux64-llvm-symbolizer + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + +linux64-asan/debug: + description: "Linux64 Debug ASAN" + index: + product: firefox + job-name: linux64-asan-debug + treeherder: + platform: linux64/asan + symbol: Bd + worker: + env: + PERFHERDER_EXTRA_OPTIONS: "debug asan" + max-run-time: 5400 + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: asan-tc-and-debug + mozconfig-variant: debug-asan + tooltool-downloads: public + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-rust-dev + - linux64-rust-size + - linux64-cbindgen + - linux64-dump_syms + - linux64-llvm-symbolizer + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + optimization: + skip-unless-expanded: null + +linux64-shippable/opt: + description: "Linux64 Shippable" + use-pgo: true + attributes: + shippable: true + enable-full-crashsymbols: true + shipping-phase: build + shipping-product: firefox + index: + product: firefox + job-name: linux64-opt + type: shippable + treeherder: + platform: linux64-shippable/opt + symbol: Bpgo(B) + run-on-projects: ['release'] + worker-type: b-linux-xlarge-gcp + worker: + max-run-time: 9000 + env: + 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 + extra-config: + max_build_output_timeout: 3600 + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + tooltool-downloads: public + 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-nightlyasrelease/opt: + description: "Linux64 Nightly-As-Release" + use-pgo: linux64-shippable/opt + attributes: + enable-full-crashsymbols: true + index: + product: firefox + job-name: linux64-nightlyasrelease-opt + treeherder: + platform: linux64-nightlyasrelease/opt + symbol: Bpgo(Bnar) + run-on-projects: [trunk-only] + worker-type: b-linux-xlarge-gcp + worker: + max-run-time: 9000 + env: + 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" + PERFHERDER_EXTRA_OPTIONS: nightly-as-release + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + - taskcluster_nightly.py + extra-config: + max_build_output_timeout: 3600 + script: "mozharness/scripts/fx_desktop_build.py" + mozconfig-variant: nightly-as-release + secrets: true + tooltool-downloads: public + 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-noopt/debug: + description: "Linux64 No-optimize Debug" + index: + product: firefox + job-name: linux64-noopt-debug + treeherder: + platform: linux64-noopt/debug + symbol: B + tier: 2 + attributes: + enable-full-crashsymbols: true + worker: + max-run-time: 5400 + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: noopt-debug + mozconfig-variant: noopt-debug + tooltool-downloads: public + keep-artifacts: false + run-on-projects: ['mozilla-central'] + use-sccache: true + 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 + +linux64-rusttests/opt: + description: "Linux64 Rust Tests Opt" + index: + product: firefox + job-name: linux64-rusttests-opt + treeherder: + platform: linux64/opt + symbol: BR + tier: 1 + worker: + max-run-time: 2700 + env: + PERFHERDER_EXTRA_OPTIONS: rusttests + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: rusttests + mozconfig-variant: rusttests + tooltool-downloads: public + keep-artifacts: false + run-on-projects: ['mozilla-central'] + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-dump_syms + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + optimization: + test-inclusive: [rusttests] + +linux64-rusttests/debug: + description: "Linux64 Rust Tests Debug" + index: + product: firefox + job-name: linux64-rusttests-debug + treeherder: + platform: linux64/debug + symbol: BR + tier: 1 + worker: + max-run-time: 2700 + env: + PERFHERDER_EXTRA_OPTIONS: rusttests + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: rusttests-debug + mozconfig-variant: rusttests-debug + tooltool-downloads: public + keep-artifacts: false + run-on-projects: ['trunk'] + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-dump_syms + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + optimization: + test-inclusive: [rusttests] + +linux64-ccov/opt: + description: "Linux64-CCov Opt" + index: + product: firefox + job-name: linux64-ccov-opt + treeherder: + platform: linux64-ccov/opt + symbol: B + tier: 2 + run-on-projects: ['mozilla-central'] + worker: + artifacts: + - name: public/code-coverage-grcov.zip + path: /builds/worker/workspace/obj-build/code-coverage-grcov.zip + type: file + max-run-time: 7200 + env: + RUSTC_BOOTSTRAP: '1' + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: code-coverage-opt + mozconfig-variant: code-coverage-opt + tooltool-downloads: public + use-sccache: false + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-dump_syms + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-grcov + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + +linux64-ccov/debug: + description: "Linux64-CCov Debug" + index: + product: firefox + job-name: linux64-ccov-debug + treeherder: + platform: linux64-ccov/debug + symbol: B + tier: 2 + run-on-projects: [] + worker: + max-run-time: 7200 + env: + RUSTC_BOOTSTRAP: '1' + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: code-coverage-debug + mozconfig-variant: code-coverage-debug + tooltool-downloads: public + use-sccache: false + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-dump_syms + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-grcov + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + +linux64-add-on-devel/opt: + description: "Linux64 add-on-devel" + index: + product: firefox + job-name: linux64-add-on-devel + treeherder: + platform: linux64-add-on-devel/opt + symbol: B + tier: 2 + worker: + max-run-time: 3600 + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: add-on-devel + mozconfig-variant: add-on-devel + tooltool-downloads: public + run-on-projects: ['mozilla-beta', 'mozilla-release'] + use-sccache: true + 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 + +linux64-aarch64/opt: + description: "Linux64 aarch64 Opt" + use-pgo: linux64-shippable/opt + index: + product: firefox + job-name: linux64-aarch64-opt + attributes: + enable-full-crashsymbols: true + treeherder: + platform: linux64-aarch64/opt + symbol: B + tier: 2 + worker: + max-run-time: 7200 + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + extra-config: + extra_mozconfig_content: + - ac_add_options --target=aarch64 + - unset MOZ_STDCXX_COMPAT + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + tooltool-downloads: public + run-on-projects: ['integration'] + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump_syms + - linux64-node + - linux64-pkgconf + - sysroot-aarch64-linux-gnu + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + optimization: + skip-unless-expanded: null diff --git a/taskcluster/ci/build/macosx-native.yml b/taskcluster/ci/build/macosx-native.yml new file mode 100644 index 0000000000..ad77b6e5aa --- /dev/null +++ b/taskcluster/ci/build/macosx-native.yml @@ -0,0 +1,145 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + index: + product: firefox + worker-type: b-osx-1015 + worker: + max-run-time: 7200 + run: + using: mozharness + script: "mozharness/scripts/fx_desktop_build.py" + +macosx64-plain/opt: + description: "MacOS X x64 Opt Plain" + index: + job-name: macosx64-plain-opt + treeherder: + symbol: Bp + platform: osx/opt + tier: 1 + worker: + env: + PERFHERDER_EXTRA_OPTIONS: plain + run: + actions: [build] + config: + - builds/releng_base_firefox.py + - builds/taskcluster_base_macosx.py + extra-config: + disable_package_metrics: true + stage_platform: macosx64 + mozconfig_platform: macosx64 + mozconfig-variant: plain-opt + run-on-projects: ['mozilla-central'] + fetches: + toolchain: + - macosx64-clang + - macosx64-cbindgen + - macosx64-nasm + - macosx64-node + - macosx64-rust + - macosx64-sdk + - sysroot-wasm32-wasi + optimization: + skip-unless-expanded: null + +macosx64-plain/debug: + description: "MacOS X x64 Debug Plain" + index: + job-name: macosx64-plain-debug + treeherder: + symbol: Bp + platform: osx/debug + tier: 1 + worker: + env: + PERFHERDER_EXTRA_OPTIONS: plain + run: + actions: [build] + config: + - builds/releng_base_firefox.py + - builds/taskcluster_base_macosx.py + extra-config: + disable_package_metrics: true + stage_platform: macosx64 + mozconfig_platform: macosx64 + mozconfig-variant: plain-debug + run-on-projects: ['trunk'] + fetches: + toolchain: + - macosx64-clang + - macosx64-cbindgen + - macosx64-nasm + - macosx64-node + - macosx64-rust + - macosx64-sdk + - sysroot-wasm32-wasi + optimization: + skip-unless-expanded: null + +macosx64-rusttests/opt: + description: "MacOS X x64 Rust Tests Opt" + index: + job-name: macosx64-rusttests-opt + treeherder: + platform: macosx64/opt + symbol: BR + tier: 1 + worker: + env: + PERFHERDER_EXTRA_OPTIONS: rusttests + run: + actions: [build] + config: + - builds/releng_base_firefox.py + - builds/taskcluster_base_macosx.py + - builds/releng_sub_mac_configs/rusttests.py + extra-config: + mozconfig_platform: macosx64 + mozconfig-variant: rusttests + run-on-projects: ['mozilla-central'] + fetches: + toolchain: + - macosx64-clang + - macosx64-rust + - macosx64-cbindgen + - macosx64-nasm + - macosx64-node + - macosx64-sdk + optimization: + test-inclusive: [rusttests] + +macosx64-rusttests/debug: + description: "MacOS X x64 Rust Tests Debug" + index: + job-name: macosx64-rusttests-debug + treeherder: + platform: macosx64/debug + symbol: BR + tier: 1 + worker: + env: + PERFHERDER_EXTRA_OPTIONS: rusttests + run: + actions: [build] + config: + - builds/releng_base_firefox.py + - builds/taskcluster_base_macosx.py + - builds/releng_sub_mac_configs/rusttests.py + extra-config: + mozconfig_platform: macosx64 + mozconfig-variant: rusttests-debug + run-on-projects: ['trunk'] + fetches: + toolchain: + - macosx64-clang + - macosx64-rust + - macosx64-cbindgen + - macosx64-nasm + - macosx64-node + - macosx64-sdk + optimization: + test-inclusive: [rusttests] diff --git a/taskcluster/ci/build/macosx.yml b/taskcluster/ci/build/macosx.yml new file mode 100644 index 0000000000..0b148f01d5 --- /dev/null +++ b/taskcluster/ci/build/macosx.yml @@ -0,0 +1,943 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + index: + product: firefox + worker-type: b-linux-gcp + run: + using: mozharness + actions: [get-secrets, build] + secrets: true + script: "mozharness/scripts/fx_desktop_build.py" + fetches: + toolchain: + - linux64-dump_syms + - linux64-hfsplus + - linux64-libdmg + - linux64-rust-macos + - linux64-rust-size + - linux64-cbindgen + - linux64-nasm + - linux64-node + - sysroot-x86_64-linux-gnu + +macosx64/debug: + description: "MacOS X x64 Cross-compile" + index: + job-name: macosx64-debug + attributes: + enable-build-signing: true + enable-full-crashsymbols: true + treeherder: + platform: osx-cross/debug + symbol: B + tier: 1 + worker: + max-run-time: 5400 + env: + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + config: + - builds/releng_base_firefox.py + - builds/releng_base_mac_64_cross_builds.py + custom-build-variant-cfg: cross-debug + mozconfig-variant: debug + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + - macosx64-sdk + - sysroot-wasm32-wasi + +macosx64-aarch64/debug: + description: "MacOS X Aarch64 Cross-compile" + index: + job-name: macosx64-aarch64-debug + attributes: + enable-build-signing: true + enable-full-crashsymbols: true + treeherder: + platform: osx-cross-aarch64/debug + symbol: B + tier: 1 + worker: + max-run-time: 5400 + env: + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + PERFHERDER_EXTRA_OPTIONS: aarch64 + run: + config: + - builds/releng_base_firefox.py + - builds/releng_base_mac_64_cross_builds.py + custom-build-variant-cfg: cross-debug + mozconfig-variant: debug + extra-config: + extra_mozconfig_content: + - ac_add_options --target=aarch64-apple-darwin + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + - macosx64-sdk + - sysroot-wasm32-wasi + +macosx64-non-unified/plain: + description: "MacOS X x64 Hybrid Cross-compile" + index: + job-name: macosx64-non-unified + treeherder: + platform: osx-cross/plain + symbol: Bp-nu + tier: 1 + worker: + max-run-time: 5400 + env: + PERFHERDER_EXTRA_OPTIONS: non-unified + run: + config: + - builds/releng_base_firefox.py + - builds/releng_base_mac_64_cross_builds.py + mozconfig-variant: non-unified + extra-config: + disable_package_metrics: true + use-sccache: true + run-on-projects: ['integration'] + fetches: + toolchain: + - linux64-clang + - linux64-sccache + - macosx64-sdk + - sysroot-wasm32-wasi + +macosx64/opt: + description: "MacOS X x64 Cross-compile" + index: + job-name: macosx64-opt + attributes: + enable-build-signing: true + enable-full-crashsymbols: true + treeherder: + platform: osx-cross/opt + symbol: B + tier: 1 + worker: + max-run-time: 7200 + env: + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + config: + - builds/releng_base_firefox.py + - builds/releng_base_mac_64_cross_builds.py + run-on-projects: ['integration'] + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + - macosx64-sdk + - sysroot-wasm32-wasi + +macosx64-asan-fuzzing/opt: + description: "MacOS X x64 Cross-compile Fuzzing ASAN" + index: + job-name: macosx64-fuzzing-asan-opt + attributes: + # The gtest libxul contains libFuzzer targets + skip-verify-test-packaging: true + treeherder: + platform: osx-cross/asan + symbol: Bof + worker: + max-run-time: 5400 + env: + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + PERFHERDER_EXTRA_OPTIONS: asan-fuzzing + run: + config: + - builds/releng_base_firefox.py + - builds/releng_base_mac_64_cross_builds.py + custom-build-variant-cfg: cross-fuzzing-asan + mozconfig-variant: nightly-fuzzing-asan + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + - macosx64-llvm-symbolizer + - macosx64-sdk + - sysroot-wasm32-wasi + optimization: + skip-unless-expanded: null + +macosx64-fuzzing/debug: + description: "MacOS X x64 Cross-compile Fuzzing Debug" + index: + job-name: macosx64-fuzzing-debug + attributes: + enable-full-crashsymbols: true + # The gtest libxul contains libFuzzer targets + skip-verify-test-packaging: true + treeherder: + platform: osx-cross/debug + symbol: Bf + worker: + max-run-time: 5400 + env: + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + PERFHERDER_EXTRA_OPTIONS: fuzzing + run: + config: + - builds/releng_base_firefox.py + - builds/releng_base_mac_64_cross_builds.py + custom-build-variant-cfg: cross-fuzzing-debug + mozconfig-variant: debug-fuzzing + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + - macosx64-sdk + - sysroot-wasm32-wasi + optimization: + skip-unless-expanded: null + +macosx64-aarch64-asan-fuzzing/opt: + description: "MacOS X Aarch64 Cross-compile Fuzzing ASAN" + index: + job-name: macosx64-aarch64-fuzzing-asan-opt + attributes: + # The gtest libxul contains libFuzzer targets + skip-verify-test-packaging: true + treeherder: + platform: osx-cross-aarch64/asan + symbol: Bof + worker: + max-run-time: 5400 + env: + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + PERFHERDER_EXTRA_OPTIONS: aarch64-asan-fuzzing + run: + config: + - builds/releng_base_firefox.py + - builds/releng_base_mac_64_cross_builds.py + custom-build-variant-cfg: cross-fuzzing-asan + mozconfig-variant: nightly-fuzzing-asan + extra-config: + mozconfig_platform: macosx64-aarch64 + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + - macosx64-aarch64-llvm-symbolizer + - macosx64-sdk + - sysroot-wasm32-wasi + optimization: + skip-unless-expanded: null + +macosx64-aarch64-fuzzing/debug: + description: "MacOS X Aarch64 Cross-compile Fuzzing Debug" + index: + job-name: macosx64-aarch64-fuzzing-debug + attributes: + enable-full-crashsymbols: true + # The gtest libxul contains libFuzzer targets + skip-verify-test-packaging: true + treeherder: + platform: osx-cross-aarch64/debug + symbol: Bf + worker: + max-run-time: 5400 + env: + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + PERFHERDER_EXTRA_OPTIONS: aarch64-fuzzing + run: + config: + - builds/releng_base_firefox.py + - builds/releng_base_mac_64_cross_builds.py + custom-build-variant-cfg: cross-fuzzing-debug + mozconfig-variant: debug-fuzzing + extra-config: + mozconfig_platform: macosx64-aarch64 + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + - macosx64-aarch64-llvm-symbolizer + - macosx64-sdk + - sysroot-wasm32-wasi + optimization: + skip-unless-expanded: null + +macosx64-x64-devedition/opt: + description: "MacOS X Dev Edition x64 (shippable)" + use-pgo: macosx64-shippable/opt + attributes: + enable-full-crashsymbols: true + skip-verify-test-packaging: true + upload-generated-sources: true + shipping-phase: build + shipping-product: devedition + index: + product: devedition + job-name: macosx64-x64-opt + type: shippable + treeherder: + platform: osx-cross-devedition/opt + symbol: Bx + tier: 1 + worker: + max-run-time: 7200 + env: + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + config: + - builds/releng_base_firefox.py + - builds/releng_base_mac_64_cross_builds.py + - taskcluster_nightly.py + extra-config: + stage_platform: macosx64-devedition + mozconfig-variant: devedition + run-on-projects: ['mozilla-beta'] + fetches: + toolchain: + - linux64-cctools-port + - linux64-clang + - macosx64-sdk + - sysroot-wasm32-wasi + +macosx64-aarch64-devedition/opt: + description: "MacOS X Dev Edition Aarch64 (shippable)" + use-pgo: macosx64-shippable/opt + attributes: + enable-full-crashsymbols: true + skip-verify-test-packaging: true + upload-generated-sources: true + shipping-phase: build + shipping-product: devedition + index: + product: devedition + job-name: macosx64-aarch64-opt + type: shippable + treeherder: + platform: osx-aarch64-devedition/opt + symbol: B + tier: 1 + worker: + max-run-time: 7200 + env: + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + PERFHERDER_EXTRA_OPTIONS: aarch64 + run: + config: + - builds/releng_base_firefox.py + - builds/releng_base_mac_64_cross_builds.py + - taskcluster_nightly.py + extra-config: + stage_platform: macosx64-aarch64-devedition + mozconfig_platform: macosx64-aarch64 + mozconfig-variant: devedition + run-on-projects: ['mozilla-beta'] + fetches: + toolchain: + - linux64-cctools-port + - linux64-clang + - macosx64-sdk + - sysroot-wasm32-wasi + +macosx64-devedition/opt: + description: "MacOS X Dev Edition Universal" + attributes: + shippable: true + enable-build-signing: true + skip-upload-crashsymbols: true + skip-verify-test-packaging: true + shipping-phase: build + shipping-product: devedition + index: + product: devedition + job-name: macosx64-opt + type: shippable + treeherder: + platform: osx-cross-devedition/opt + symbol: B + tier: 1 + run-on-projects: ['mozilla-beta'] + worker: + max-run-time: 1800 + run: + job-script: taskcluster/scripts/misc/unify.sh + config: + - builds/releng_base_firefox.py + dependencies: + macosx64-x64-devedition-opt: build-macosx64-x64-devedition/opt + macosx64-aarch64-devedition-opt: build-macosx64-aarch64-devedition/opt + fetches: + macosx64-x64-devedition-opt: + - artifact: target.dmg + extract: false + dest: x64 + - artifact: buildhub.json + extract: false + dest: ../artifacts + - artifact: host/bin/mar + extract: false + dest: ../artifacts/host/bin + - artifact: host/bin/mbsdiff + extract: false + dest: ../artifacts/host/bin + - artifact: target.txt + extract: false + dest: ../artifacts + - artifact: target_info.txt + extract: false + dest: ../artifacts + - artifact: target.json + extract: false + dest: ../artifacts + - artifact: target.mozinfo.json + extract: false + dest: ../artifacts + - artifact: target.test_packages.json + extract: false + dest: ../artifacts + - artifact: target.perftests.tests.tar.gz + extract: false + dest: ../artifacts + - artifact: target.xpt_artifacts.zip + extract: false + dest: ../artifacts + - artifact: target.common.tests.tar.gz + dest: x64/common + - artifact: target.cppunittest.tests.tar.gz + dest: x64/cppunittest + - artifact: target.gtest.tests.tar.gz + dest: x64/gtest + - artifact: target.jittest.tests.tar.gz + dest: x64/jittest + - artifact: target.jsreftest.tests.tar.gz + dest: x64/jsreftest + - artifact: target.mochitest.tests.tar.gz + dest: x64/mochitest + - artifact: target.reftest.tests.tar.gz + dest: x64/reftest + - artifact: target.talos.tests.tar.gz + dest: x64/talos + - artifact: target.raptor.tests.tar.gz + dest: x64/raptor + - artifact: target.condprof.tests.tar.gz + dest: x64/confprof + - artifact: target.awsy.tests.tar.gz + dest: x64/awsy + - artifact: target.xpcshell.tests.tar.gz + dest: x64/xpcshell + - artifact: target.web-platform.tests.tar.gz + dest: x64/web-platform + - artifact: target.updater-dep.tests.tar.gz + dest: x64/updater-dep + - artifact: target.crashreporter-symbols.zip + dest: x64/crashreporter-symbols + - artifact: target.jsshell.zip + dest: x64/jsshell + - artifact: target.generated-files.tar.gz + extract: false + dest: ../artifacts + - artifact: target.langpack.xpi + extract: false + dest: ../artifacts + - artifact: mozharness.zip + extract: false + dest: ../artifacts + macosx64-aarch64-devedition-opt: + - artifact: target.dmg + extract: false + dest: aarch64 + - artifact: target.common.tests.tar.gz + dest: aarch64/common + - artifact: target.cppunittest.tests.tar.gz + dest: aarch64/cppunittest + - artifact: target.gtest.tests.tar.gz + dest: aarch64/gtest + - artifact: target.jittest.tests.tar.gz + dest: aarch64/jittest + - artifact: target.jsreftest.tests.tar.gz + dest: aarch64/jsreftest + - artifact: target.mochitest.tests.tar.gz + dest: aarch64/mochitest + - artifact: target.reftest.tests.tar.gz + dest: aarch64/reftest + - artifact: target.talos.tests.tar.gz + dest: aarch64/talos + - artifact: target.raptor.tests.tar.gz + dest: aarch64/raptor + - artifact: target.condprof.tests.tar.gz + dest: aarch64/confprof + - artifact: target.awsy.tests.tar.gz + dest: aarch64/awsy + - artifact: target.xpcshell.tests.tar.gz + dest: aarch64/xpcshell + - artifact: target.web-platform.tests.tar.gz + dest: aarch64/web-platform + - artifact: target.updater-dep.tests.tar.gz + dest: aarch64/updater-dep + - artifact: target.crashreporter-symbols.zip + dest: aarch64/crashreporter-symbols + - artifact: target.jsshell.zip + dest: aarch64/jsshell + toolchain: + - linux64-cctools-port + +macosx64-noopt/debug: + description: "MacOS X x64 No-optimize Debug" + index: + job-name: macosx64-noopt-debug + treeherder: + platform: osx-cross-noopt/debug + symbol: B + tier: 2 + worker: + max-run-time: 3600 + run: + config: + - builds/releng_base_firefox.py + - builds/releng_base_mac_64_cross_builds.py + custom-build-variant-cfg: cross-noopt-debug + mozconfig-variant: cross-noopt-debug + keep-artifacts: false + run-on-projects: ['mozilla-central'] + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + - macosx64-sdk + - sysroot-wasm32-wasi + +macosx64-aarch64-noopt/debug: + description: "MacOS X aarch64 No-optimize Debug" + index: + job-name: macosx64-aarch64-noopt-debug + treeherder: + platform: osx-cross-noopt/debug + symbol: Baarch64 + tier: 2 + worker: + max-run-time: 3600 + env: + PERFHERDER_EXTRA_OPTIONS: aarch64 + run: + config: + - builds/releng_base_firefox.py + - builds/releng_base_mac_64_cross_builds.py + custom-build-variant-cfg: cross-noopt-debug + mozconfig-variant: cross-noopt-debug + keep-artifacts: false + extra-config: + mozconfig_platform: macosx64-aarch64 + run-on-projects: ['mozilla-central'] + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + - macosx64-sdk + - sysroot-wasm32-wasi + +macosx64-x64-add-on-devel/opt: + description: "MacOS X x64 add-on-devel" + index: + job-name: macosx64-x64-add-on-devel + treeherder: + platform: osx-cross-add-on-devel/opt + symbol: Bx + tier: 2 + worker: + max-run-time: 3600 + env: + PERFHERDER_EXTRA_OPTIONS: x64 + run: + config: + - builds/releng_base_firefox.py + - builds/releng_base_mac_64_cross_builds.py + custom-build-variant-cfg: add-on-devel + mozconfig-variant: add-on-devel + run-on-projects: ['mozilla-beta', 'mozilla-release'] + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + - macosx64-sdk + - sysroot-wasm32-wasi + +macosx64-aarch64-add-on-devel/opt: + description: "MacOS X Aarch64 add-on-devel" + index: + job-name: macosx64-aarch64-add-on-devel + treeherder: + platform: osx-cross-aarch64-add-on-devel/opt + symbol: B + tier: 2 + worker: + max-run-time: 3600 + env: + PERFHERDER_EXTRA_OPTIONS: aarch64 + run: + config: + - builds/releng_base_firefox.py + - builds/releng_base_mac_64_cross_builds.py + custom-build-variant-cfg: add-on-devel + mozconfig-variant: add-on-devel + extra-config: + mozconfig_platform: macosx64-aarch64 + run-on-projects: ['mozilla-beta', 'mozilla-release'] + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + - macosx64-sdk + - sysroot-wasm32-wasi + +macosx64-add-on-devel/opt: + description: "MacOS X add-on-devel" + index: + job-name: macosx64-add-on-devel + treeherder: + platform: osx-cross-add-on-devel/opt + symbol: B + tier: 2 + worker: + max-run-time: 1800 + run: + job-script: taskcluster/scripts/misc/unify.sh + config: + - builds/releng_base_firefox.py + run-on-projects: ['mozilla-beta', 'mozilla-release'] + dependencies: + macosx64-x64-add-on-devel-opt: build-macosx64-x64-add-on-devel/opt + macosx64-aarch64-add-on-devel-opt: build-macosx64-aarch64-add-on-devel/opt + fetches: + macosx64-x64-add-on-devel-opt: + - artifact: target.dmg + extract: false + dest: x64 + - artifact: buildhub.json + extract: false + dest: ../artifacts + - artifact: host/bin/mar + extract: false + dest: ../artifacts/host/bin + - artifact: host/bin/mbsdiff + extract: false + dest: ../artifacts/host/bin + - artifact: target.txt + extract: false + dest: ../artifacts + - artifact: target_info.txt + extract: false + dest: ../artifacts + - artifact: target.json + extract: false + dest: ../artifacts + - artifact: target.mozinfo.json + extract: false + dest: ../artifacts + - artifact: target.crashreporter-symbols.zip + dest: x64/crashreporter-symbols + - artifact: target.jsshell.zip + dest: x64/jsshell + - artifact: target.generated-files.tar.gz + extract: false + dest: ../artifacts + - artifact: target.langpack.xpi + extract: false + dest: ../artifacts + - artifact: mozharness.zip + extract: false + dest: ../artifacts + macosx64-aarch64-add-on-devel-opt: + - artifact: target.dmg + extract: false + dest: aarch64 + - artifact: target.crashreporter-symbols.zip + dest: aarch64/crashreporter-symbols + - artifact: target.jsshell.zip + dest: aarch64/jsshell + toolchain: + - linux64-cctools-port + +macosx64-nightlyasrelease/opt: + description: "MacOS X Nightly-As-Release" + use-pgo: macosx64-shippable/opt + attributes: + enable-full-crashsymbols: true + skip-verify-test-packaging: true + upload-generated-sources: true + index: + job-name: macosx64-nightlyasrelease-opt + treeherder: + platform: osx-nightlyasrelease/opt + symbol: Bpgo(Bnar) + tier: 1 + run-on-projects: [trunk-only] + worker: + max-run-time: 7200 + env: + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + PERFHERDER_EXTRA_OPTIONS: nightly-as-release + run: + config: + - builds/releng_base_firefox.py + - builds/releng_base_mac_64_cross_builds.py + - taskcluster_nightly.py + mozconfig-variant: nightly-as-release + fetches: + toolchain: + - linux64-cctools-port + - linux64-clang + - macosx64-sdk + - sysroot-wasm32-wasi + +macosx64-x64-shippable/opt: + description: "MacOS X x64 Cross-compile" + use-pgo: macosx64-shippable/opt + attributes: + enable-full-crashsymbols: true + skip-verify-test-packaging: true + upload-generated-sources: true + shipping-phase: build + shipping-product: firefox + index: + job-name: macosx64-x64-opt + type: shippable + treeherder: + platform: osx-shippable/opt + symbol: Bpgo(Bx) + tier: 1 + run-on-projects: ['release'] + worker: + max-run-time: 7200 + env: + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + config: + - builds/releng_base_firefox.py + - builds/releng_base_mac_64_cross_builds.py + - taskcluster_nightly.py + fetches: + toolchain: + - linux64-cctools-port + - linux64-clang + - macosx64-sdk + - sysroot-wasm32-wasi + +macosx64-aarch64-shippable/opt: + description: "MacOS X aarch64 Cross-compile" + use-pgo: macosx64-aarch64-shippable/opt + attributes: + enable-full-crashsymbols: true + skip-verify-test-packaging: true + upload-generated-sources: true + shipping-phase: build + shipping-product: firefox + index: + job-name: macosx64-aarch64-opt + type: shippable + treeherder: + platform: osx-aarch64-shippable/opt + symbol: Bpgo(B) + tier: 1 + run-on-projects: ['release'] + worker: + max-run-time: 7200 + env: + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + PERFHERDER_EXTRA_OPTIONS: aarch64 + run: + config: + - builds/releng_base_firefox.py + - builds/releng_base_mac_64_cross_builds.py + - taskcluster_nightly.py + extra-config: + mozconfig_platform: macosx64-aarch64 + fetches: + toolchain: + - linux64-cctools-port + - linux64-clang + - macosx64-sdk + - sysroot-wasm32-wasi + +macosx64-shippable/opt: + description: "MacOS X Universal" + attributes: + shippable: true + enable-build-signing: true + skip-upload-crashsymbols: true + skip-verify-test-packaging: true + shipping-phase: build + shipping-product: firefox + index: + job-name: macosx64-opt + type: shippable + treeherder: + platform: osx-shippable/opt + symbol: Bpgo(B) + tier: 1 + run-on-projects: ['release'] + worker: + max-run-time: 1800 + run: + job-script: taskcluster/scripts/misc/unify.sh + config: + - builds/releng_base_firefox.py + dependencies: + macosx64-x64-shippable-opt: build-macosx64-x64-shippable/opt + macosx64-aarch64-shippable-opt: build-macosx64-aarch64-shippable/opt + fetches: + macosx64-x64-shippable-opt: + - artifact: target.dmg + extract: false + dest: x64 + - artifact: buildhub.json + extract: false + dest: ../artifacts + - artifact: host/bin/mar + extract: false + dest: ../artifacts/host/bin + - artifact: host/bin/mbsdiff + extract: false + dest: ../artifacts/host/bin + - artifact: target.txt + extract: false + dest: ../artifacts + - artifact: target_info.txt + extract: false + dest: ../artifacts + - artifact: target.json + extract: false + dest: ../artifacts + - artifact: target.mozinfo.json + extract: false + dest: ../artifacts + - artifact: target.test_packages.json + extract: false + dest: ../artifacts + - artifact: target.perftests.tests.tar.gz + extract: false + dest: ../artifacts + - artifact: target.xpt_artifacts.zip + extract: false + dest: ../artifacts + - artifact: target.common.tests.tar.gz + dest: x64/common + - artifact: target.cppunittest.tests.tar.gz + dest: x64/cppunittest + - artifact: target.gtest.tests.tar.gz + dest: x64/gtest + - artifact: target.jittest.tests.tar.gz + dest: x64/jittest + - artifact: target.jsreftest.tests.tar.gz + dest: x64/jsreftest + - artifact: target.mochitest.tests.tar.gz + dest: x64/mochitest + - artifact: target.reftest.tests.tar.gz + dest: x64/reftest + - artifact: target.talos.tests.tar.gz + dest: x64/talos + - artifact: target.raptor.tests.tar.gz + dest: x64/raptor + - artifact: target.condprof.tests.tar.gz + dest: x64/confprof + - artifact: target.awsy.tests.tar.gz + dest: x64/awsy + - artifact: target.xpcshell.tests.tar.gz + dest: x64/xpcshell + - artifact: target.web-platform.tests.tar.gz + dest: x64/web-platform + - artifact: target.updater-dep.tests.tar.gz + dest: x64/updater-dep + - artifact: target.crashreporter-symbols.zip + dest: x64/crashreporter-symbols + - artifact: target.jsshell.zip + dest: x64/jsshell + - artifact: target.generated-files.tar.gz + extract: false + dest: ../artifacts + - artifact: target.langpack.xpi + extract: false + dest: ../artifacts + - artifact: mozharness.zip + extract: false + dest: ../artifacts + macosx64-aarch64-shippable-opt: + - artifact: target.dmg + extract: false + dest: aarch64 + - artifact: target.common.tests.tar.gz + dest: aarch64/common + - artifact: target.cppunittest.tests.tar.gz + dest: aarch64/cppunittest + - artifact: target.gtest.tests.tar.gz + dest: aarch64/gtest + - artifact: target.jittest.tests.tar.gz + dest: aarch64/jittest + - artifact: target.jsreftest.tests.tar.gz + dest: aarch64/jsreftest + - artifact: target.mochitest.tests.tar.gz + dest: aarch64/mochitest + - artifact: target.reftest.tests.tar.gz + dest: aarch64/reftest + - artifact: target.talos.tests.tar.gz + dest: aarch64/talos + - artifact: target.raptor.tests.tar.gz + dest: aarch64/raptor + - artifact: target.condprof.tests.tar.gz + dest: aarch64/confprof + - artifact: target.awsy.tests.tar.gz + dest: aarch64/awsy + - artifact: target.xpcshell.tests.tar.gz + dest: aarch64/xpcshell + - artifact: target.web-platform.tests.tar.gz + dest: aarch64/web-platform + - artifact: target.updater-dep.tests.tar.gz + dest: aarch64/updater-dep + - artifact: target.crashreporter-symbols.zip + dest: aarch64/crashreporter-symbols + - artifact: target.jsshell.zip + dest: aarch64/jsshell + toolchain: + - linux64-cctools-port + +macosx64-ccov/opt: + description: "MacOS X x64 Cross-compile Code Coverage" + index: + job-name: macosx64-ccov-opt + treeherder: + platform: osx-cross-ccov/opt + symbol: B + tier: 1 + worker: + max-run-time: 7200 + env: + RUSTC_BOOTSTRAP: '1' + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + config: + - builds/releng_base_firefox.py + - builds/releng_base_mac_64_cross_builds.py + custom-build-variant-cfg: code-coverage-opt + mozconfig-variant: code-coverage + run-on-projects: ['mozilla-central'] + use-sccache: false + fetches: + toolchain: + - linux64-clang + - linux64-sccache + - macosx64-sdk + - sysroot-wasm32-wasi diff --git a/taskcluster/ci/build/windows-mingw.yml b/taskcluster/ci/build/windows-mingw.yml new file mode 100644 index 0000000000..09c3ee0022 --- /dev/null +++ b/taskcluster/ci/build/windows-mingw.yml @@ -0,0 +1,173 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + worker-type: b-linux-gcp + worker: + max-run-time: 7200 + run: + using: mozharness + actions: [build] + script: mozharness/scripts/fx_desktop_build.py + optimization: + skip-unless-expanded: null + fetches: + toolchain: + - windows-rs + +win32-mingwclang/opt: + description: "Win32 MinGW-Clang Opt" + index: + product: firefox + job-name: win32-mingwclang-opt + treeherder: + platform: windows-mingw32/all + symbol: WMC32(Bo) + tier: 2 + worker: + env: + PERFHERDER_EXTRA_OPTIONS: "opt 32 clang" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + config: + - builds/releng_base_firefox.py + - builds/releng_base_windows_32_mingw_builds.py + - builds/releng_sub_windows_configs/32_mingwclang.py + mozconfig-variant: mingwclang + run-on-projects: + - 'mozilla-central' + - 'mozilla-esr115' + use-sccache: true + fetches: + toolchain: + - mingw32-rust + - linux64-upx + - linux64-wine + - linux64-sccache + - linux64-cbindgen + - linux64-nasm + - linux64-node + - linux64-clang-mingw-x86 + - linux64-mingw32-nsis + - linux64-mingw-fxc2-x86 + - linux64-dump_syms + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + +win32-mingwclang/debug: + description: "Win32 MinGW-Clang Debug" + index: + product: firefox + job-name: win32-mingwclang-debug + treeherder: + platform: windows-mingw32/all + symbol: WMC32(Bd) + tier: 2 + worker: + env: + PERFHERDER_EXTRA_OPTIONS: "debug 32 clang" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + config: + - builds/releng_base_firefox.py + - builds/releng_base_windows_32_mingw_builds.py + - builds/releng_sub_windows_configs/32_mingwclang.py + mozconfig-variant: mingwclang-debug + run-on-projects: + - 'mozilla-central' + - 'mozilla-esr115' + use-sccache: true + fetches: + toolchain: + - mingw32-rust + - linux64-upx + - linux64-wine + - linux64-sccache + - linux64-cbindgen + - linux64-nasm + - linux64-node + - linux64-clang-mingw-x86 + - linux64-mingw32-nsis + - linux64-mingw-fxc2-x86 + - linux64-dump_syms + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + +win64-mingwclang/opt: + description: "Win64 MinGW-Clang Opt" + index: + product: firefox + job-name: win64-mingwclang-opt + treeherder: + platform: windows-mingw32/all + symbol: WMC64(Bo) + tier: 2 + worker: + env: + PERFHERDER_EXTRA_OPTIONS: "opt 64 clang" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + config: + - builds/releng_base_firefox.py + - builds/releng_base_windows_64_mingw_builds.py + - builds/releng_sub_windows_configs/64_mingwclang.py + mozconfig-variant: mingwclang + run-on-projects: + - 'mozilla-central' + - 'mozilla-esr115' + use-sccache: true + fetches: + toolchain: + - mingw32-rust + - linux64-upx + - linux64-wine + - linux64-sccache + - linux64-cbindgen + - linux64-nasm + - linux64-node + - linux64-clang-mingw-x64 + - linux64-mingw32-nsis + - linux64-mingw-fxc2-x86 + - linux64-dump_syms + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + +win64-mingwclang/debug: + description: "Win64 MinGW-Clang Debug" + index: + product: firefox + job-name: win64-mingwclang-debug + treeherder: + platform: windows-mingw32/all + symbol: WMC64(Bd) + tier: 2 + worker: + env: + PERFHERDER_EXTRA_OPTIONS: "debug 64 clang" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + config: + - builds/releng_base_firefox.py + - builds/releng_base_windows_64_mingw_builds.py + - builds/releng_sub_windows_configs/64_mingwclang.py + mozconfig-variant: mingwclang-debug + run-on-projects: + - 'mozilla-central' + - 'mozilla-esr115' + use-sccache: true + fetches: + toolchain: + - mingw32-rust + - linux64-upx + - linux64-wine + - linux64-sccache + - linux64-cbindgen + - linux64-nasm + - linux64-node + - linux64-clang-mingw-x64 + - linux64-mingw32-nsis + - linux64-mingw-fxc2-x86 + - linux64-dump_syms + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi diff --git a/taskcluster/ci/build/windows.yml b/taskcluster/ci/build/windows.yml new file mode 100644 index 0000000000..cde5e216da --- /dev/null +++ b/taskcluster/ci/build/windows.yml @@ -0,0 +1,1583 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + run: + using: mozharness + fetches: + toolchain: + - windows-rs + +win32/debug: + description: "Win32 Debug" + index: + product: firefox + job-name: win32-debug + attributes: + enable-build-signing: true + enable-full-crashsymbols: true + treeherder: + platform: windows2012-32/debug + symbol: B + tier: 1 + worker-type: b-linux-gcp + worker: + max-run-time: 7200 + env: + 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 + - builds/taskcluster_sub_win32/debug.py + mozconfig-variant: debug + extra-config: + mozconfig_platform: win32 + use-sccache: true + 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 + fetch: + - upx-3.95-win + +win32/opt: + description: "Win32 Opt" + index: + product: firefox + job-name: win32-opt + attributes: + enable-build-signing: true + enable-full-crashsymbols: true + treeherder: + platform: windows2012-32/opt + symbol: B + tier: 1 + worker-type: b-linux-gcp + worker: + max-run-time: 7200 + env: + 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: win32 + mozconfig_platform: win32 + run-on-projects: ['integration'] + use-sccache: true + 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 + fetch: + - upx-3.95-win + +win32-fuzzing/debug: + description: "Win32 Fuzzing Debug" + index: + product: firefox + job-name: win32-fuzzing-debug + attributes: + enable-full-crashsymbols: true + treeherder: + platform: windows2012-32/debug + symbol: Bf + tier: 1 + worker-type: b-linux-gcp + worker: + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: fuzzing + run: + actions: [get-secrets, build] + options: [append-env-variables-from-configs] + script: mozharness/scripts/fx_desktop_build.py + secrets: true + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + - builds/taskcluster_sub_win32/debug.py + extra-config: + stage_platform: win32 + mozconfig_platform: win32 + mozconfig-variant: debug-fuzzing + run-on-projects: ['trunk'] + use-sccache: true + 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 + fetch: + - upx-3.95-win + optimization: + skip-unless-expanded: null + +win64/debug: + description: "Win64 Debug" + index: + product: firefox + job-name: win64-debug + attributes: + enable-build-signing: true + enable-full-crashsymbols: true + treeherder: + platform: windows2012-64/debug + symbol: B + tier: 1 + worker-type: b-linux-gcp + worker: + max-run-time: 7200 + env: + 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 + - builds/taskcluster_sub_win64/debug.py + mozconfig-variant: debug + extra-config: + mozconfig_platform: win64 + use-sccache: true + 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 + fetch: + - upx-3.95-win + +win64-non-unified/plain: + description: "Win64 Hybrid Plain" + index: + product: firefox + job-name: win64-non-unified-plain + treeherder: + platform: windows2012-64/debug + symbol: Bp-nu + tier: 1 + worker-type: b-linux-gcp + worker: + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: non-unified + 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 + mozconfig-variant: non-unified + extra-config: + mozconfig_platform: win64 + use-sccache: true + run-on-projects: ['integration'] + 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 + fetch: + - upx-3.95-win + +win64-fuzzing/debug: + description: "Win64 Fuzzing Debug" + index: + product: firefox + job-name: win64-fuzzing-debug + attributes: + enable-full-crashsymbols: true + treeherder: + platform: windows2012-64/debug + symbol: Bf + tier: 1 + worker-type: b-linux-gcp + worker: + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: fuzzing + run: + actions: [get-secrets, build] + options: [append-env-variables-from-configs] + script: mozharness/scripts/fx_desktop_build.py + secrets: true + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + - builds/taskcluster_sub_win64/debug.py + extra-config: + mozconfig_platform: win64 + mozconfig-variant: debug-fuzzing + run-on-projects: ['trunk'] + use-sccache: true + 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 + fetch: + - upx-3.95-win + optimization: + skip-unless-expanded: null + +win64-plain/debug: + description: "Win64 Debug Plain" + index: + product: firefox + job-name: win64-plain-debug + treeherder: + platform: windows2012-64/debug + symbol: Bp + tier: 1 + worker-type: b-win2022 + worker: + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: plain + run: + actions: [build] + options: [append-env-variables-from-configs] + script: mozharness/scripts/fx_desktop_build.py + config: + - builds/releng_base_firefox.py + - builds/taskcluster_base_windows.py + - builds/taskcluster_base_win64.py + extra-config: + disable_package_metrics: true + stage_platform: win64 + mozconfig-variant: plain-debug + run-on-projects: ['trunk'] + fetches: + toolchain: + - win64-clang + - win64-rust + - win64-node + - win64-nasm + - win64-cbindgen + - win64-winchecksec + - win64-mozmake + - win64-dump_syms + - vs + - nsis + - sysroot-wasm32-wasi + optimization: + skip-unless-expanded: null + +win64/opt: + description: "Win64 Opt" + index: + product: firefox + job-name: win64-opt + attributes: + enable-build-signing: true + enable-full-crashsymbols: true + treeherder: + platform: windows2012-64/opt + symbol: B + tier: 1 + worker-type: b-linux-gcp + worker: + max-run-time: 7200 + env: + 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: ['integration'] + use-sccache: true + 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 + fetch: + - upx-3.95-win + +win64-plain/opt: + description: "Win64 Opt Plain" + index: + product: firefox + job-name: win64-plain-opt + treeherder: + platform: windows2012-64/opt + symbol: Bp + tier: 1 + worker-type: b-win2022 + worker: + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: plain + run: + actions: [build] + options: [append-env-variables-from-configs] + script: mozharness/scripts/fx_desktop_build.py + config: + - builds/releng_base_firefox.py + - builds/taskcluster_base_windows.py + - builds/taskcluster_base_win64.py + extra-config: + disable_package_metrics: true + stage_platform: win64 + mozconfig-variant: plain-opt + run-on-projects: ['mozilla-central'] + fetches: + toolchain: + - win64-clang + - win64-rust + - win64-nasm + - win64-node + - win64-cbindgen + - win64-winchecksec + - win64-mozmake + - win64-dump_syms + - vs + - nsis + - sysroot-wasm32-wasi + optimization: + skip-unless-expanded: null + +win32-shippable/opt: + description: "Win32 Opt Shippable" + use-pgo: true + index: + product: firefox + job-name: win32-opt + type: shippable + attributes: + shippable: true + enable-full-crashsymbols: true + stub-installer: + by-release-type: + nightly: true + beta: true + release.*: true + esr.*: false + default: + by-project: + # browser/confvars.sh looks for nightly-try + try: true + default: false + shipping-phase: build + shipping-product: firefox + treeherder: + platform: windows2012-32-shippable/opt + symbol: Bpgo(B) + tier: 1 + run-on-projects: ['release'] + worker-type: b-linux-gcp + worker: + max-run-time: 10800 + env: + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + actions: [get-secrets, build] + options: [append-env-variables-from-configs] + script: mozharness/scripts/fx_desktop_build.py + secrets: true + config: + - builds/releng_base_firefox.py + builds/releng_base_linux_64_builds.py + - taskcluster_nightly.py + extra-config: + stage_platform: win32 + mozconfig_platform: win32 + 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 + fetch: + - upx-3.95-win + +win64-shippable/opt: + description: "Win64 Shippable" + use-pgo: true + index: + product: firefox + job-name: win64-opt + type: shippable + attributes: + shippable: true + enable-full-crashsymbols: true + shipping-phase: build + shipping-product: firefox + treeherder: + platform: windows2012-64-shippable/opt + symbol: Bpgo(B) + tier: 1 + run-on-projects: ['release'] + worker-type: b-linux-xlarge-gcp + worker: + max-run-time: 10800 + env: + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + actions: [get-secrets, build] + options: [append-env-variables-from-configs] + script: mozharness/scripts/fx_desktop_build.py + secrets: true + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + - taskcluster_nightly.py + extra-config: + stage_platform: win64 + mozconfig_platform: win64 + max_build_output_timeout: 3600 + 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 + fetch: + - upx-3.95-win + +win64-nightlyasrelease/opt: + description: "Win64 Opt Nightly-As-Release" + use-pgo: win64-shippable/opt + attributes: + enable-full-crashsymbols: true + index: + product: firefox + job-name: win64-nightlyasrelease-opt + treeherder: + platform: win64-nightlyasrelease/opt + symbol: Bpgo(Bnar) + worker-type: b-linux-xlarge-gcp + worker: + max-run-time: 10800 + env: + PERFHERDER_EXTRA_OPTIONS: "nightly-as-release" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + actions: [get-secrets, build] + options: [append-env-variables-from-configs] + script: mozharness/scripts/fx_desktop_build.py + secrets: true + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + - taskcluster_nightly.py + extra-config: + stage_platform: win64 + mozconfig_platform: win64 + max_build_output_timeout: 3600 + mozconfig-variant: nightly-as-release + run-on-projects: [trunk-only] + 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 + fetch: + - upx-3.95-win + +win32-add-on-devel/opt: + description: "Windows32 add-on-devel" + index: + product: firefox + job-name: win32-add-on-devel + treeherder: + platform: windows2012-32-add-on-devel/opt + symbol: B + tier: 2 + worker-type: b-linux-gcp + worker: + max-run-time: 10800 + run: + actions: [get-secrets, build] + options: [append-env-variables-from-configs] + 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: win32-add-on-devel + mozconfig_platform: win32 + mozconfig-variant: add-on-devel + run-on-projects: ['mozilla-beta', 'mozilla-release'] + use-sccache: true + 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 + fetch: + - upx-3.95-win + +win64-add-on-devel/opt: + description: "Windows64 add-on-devel" + index: + product: firefox + job-name: win64-add-on-devel + treeherder: + platform: windows2012-64-add-on-devel/opt + symbol: B + tier: 2 + worker-type: b-linux-gcp + worker: + max-run-time: 10800 + run: + actions: [get-secrets, build] + options: [append-env-variables-from-configs] + 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-on-devel + mozconfig_platform: win64 + mozconfig-variant: add-on-devel + run-on-projects: ['mozilla-beta', 'mozilla-release'] + use-sccache: true + 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 + fetch: + - upx-3.95-win + +win64-noopt/debug: + description: "Win64 No-optimize Debug" + index: + product: firefox + job-name: win64-noopt-debug + treeherder: + platform: windows2012-64-noopt/debug + symbol: B + tier: 2 + worker-type: b-linux-gcp + worker: + max-run-time: 7200 + run: + actions: [get-secrets, build] + options: [append-env-variables-from-configs] + script: mozharness/scripts/fx_desktop_build.py + secrets: true + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + - builds/taskcluster_sub_win64/noopt_debug.py + mozconfig-variant: noopt-debug + extra-config: + mozconfig_platform: win64 + run-on-projects: ['mozilla-central'] + use-sccache: true + 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 + fetch: + - upx-3.95-win + +win32-noopt/debug: + description: "Win32 No-optimize Debug" + index: + product: firefox + job-name: win32-noopt-debug + treeherder: + platform: windows2012-32-noopt/debug + symbol: B + tier: 2 + worker-type: b-linux-gcp + worker: + max-run-time: 7200 + run: + actions: [get-secrets, build] + options: [append-env-variables-from-configs] + script: mozharness/scripts/fx_desktop_build.py + secrets: true + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + - builds/taskcluster_sub_win32/noopt_debug.py + mozconfig-variant: noopt-debug + extra-config: + mozconfig_platform: win32 + run-on-projects: ['mozilla-central'] + use-sccache: true + 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 + fetch: + - upx-3.95-win + +win32-rusttests/opt: + description: "Win32 Rust Tests Opt" + index: + product: firefox + job-name: win32-rusttests-opt + treeherder: + platform: windows2012-32/opt + symbol: BR + tier: 1 + worker-type: b-win2022 + worker: + max-run-time: 5400 + env: + PERFHERDER_EXTRA_OPTIONS: rusttests + run: + actions: [get-secrets, build] + options: [append-env-variables-from-configs] + script: mozharness/scripts/fx_desktop_build.py + secrets: true + config: + - builds/releng_base_firefox.py + - builds/taskcluster_base_windows.py + - builds/taskcluster_base_win32.py + extra-config: + stage_platform: win32-rusttests + app_name: tools/rusttests + disable_package_metrics: true + mozconfig-variant: rusttests + run-on-projects: ['mozilla-central'] + fetches: + toolchain: + - win64-clang + - win64-rust + - win64-cbindgen + - win64-nasm + - win64-node + - win64-winchecksec + - win64-mozmake + - win64-dump_syms + - vs + optimization: + test-inclusive: [rusttests] + +win32-rusttests/debug: + description: "Win32 Rust Tests Debug" + index: + product: firefox + job-name: win32-rusttests-debug + treeherder: + platform: windows2012-32/debug + symbol: BR + tier: 1 + worker-type: b-win2022 + worker: + max-run-time: 5400 + env: + PERFHERDER_EXTRA_OPTIONS: rusttests + run: + actions: [get-secrets, build] + options: [append-env-variables-from-configs] + script: mozharness/scripts/fx_desktop_build.py + secrets: true + config: + - builds/releng_base_firefox.py + - builds/taskcluster_base_windows.py + - builds/taskcluster_base_win32.py + extra-config: + stage_platform: win32-rusttests + app_name: tools/rusttests + disable_package_metrics: true + mozconfig-variant: rusttests-debug + run-on-projects: ['mozilla-central'] + fetches: + toolchain: + - win64-clang + - win64-rust + - win64-cbindgen + - win64-nasm + - win64-node + - win64-winchecksec + - win64-mozmake + - win64-dump_syms + - vs + optimization: + test-inclusive: [rusttests] + +win64-rusttests/opt: + description: "Win64 Rust Tests Opt" + index: + product: firefox + job-name: win64-rusttests-opt + treeherder: + platform: windows2012-64/opt + symbol: BR + tier: 1 + worker-type: b-win2022 + worker: + max-run-time: 5400 + env: + PERFHERDER_EXTRA_OPTIONS: rusttests + run: + actions: [get-secrets, build] + options: [append-env-variables-from-configs] + script: mozharness/scripts/fx_desktop_build.py + secrets: true + config: + - builds/releng_base_firefox.py + - builds/taskcluster_base_windows.py + - builds/taskcluster_base_win64.py + - builds/taskcluster_sub_win64/rusttests_opt.py + mozconfig-variant: rusttests + run-on-projects: ['mozilla-central'] + fetches: + toolchain: + - win64-clang + - win64-rust + - win64-cbindgen + - win64-nasm + - win64-node + - win64-winchecksec + - win64-mozmake + - win64-dump_syms + - vs + optimization: + test-inclusive: [rusttests] + +win64-rusttests/debug: + description: "Win64 Rust Tests Debug" + index: + product: firefox + job-name: win64-rusttests-debug + treeherder: + platform: windows2012-64/debug + symbol: BR + tier: 1 + worker-type: b-win2022 + worker: + max-run-time: 5400 + env: + PERFHERDER_EXTRA_OPTIONS: rusttests + run: + actions: [get-secrets, build] + options: [append-env-variables-from-configs] + script: mozharness/scripts/fx_desktop_build.py + secrets: true + config: + - builds/releng_base_firefox.py + - builds/taskcluster_base_windows.py + - builds/taskcluster_base_win64.py + - builds/taskcluster_sub_win64/rusttests_opt.py + mozconfig-variant: rusttests-debug + run-on-projects: ['trunk'] + fetches: + toolchain: + - win64-clang + - win64-rust + - win64-cbindgen + - win64-nasm + - win64-node + - win64-winchecksec + - win64-mozmake + - win64-dump_syms + - vs + optimization: + test-inclusive: [rusttests] + +win64-ccov/opt: + description: "Win64 Opt Code Coverage" + index: + product: firefox + job-name: win64-ccov-opt + attributes: + enable-build-signing: true + treeherder: + platform: windows2012-64/ccov + symbol: B + tier: 2 + worker-type: b-win2022 + worker: + artifacts: + - name: public/code-coverage-grcov.zip + path: workspace\obj-build\code-coverage-grcov.zip + type: file + max-run-time: 9000 + env: + RUSTC_BOOTSTRAP: '1' + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + options: [append-env-variables-from-configs] + script: mozharness/scripts/fx_desktop_build.py + secrets: true + config: + - builds/releng_base_firefox.py + - builds/taskcluster_base_windows.py + - builds/taskcluster_base_win64.py + - builds/taskcluster_sub_win64/ccov_opt.py + mozconfig-variant: code-coverage + run-on-projects: ['mozilla-central'] + use-sccache: false + fetches: + toolchain: + - win64-clang + - win64-rust + - win64-rust-size + - win64-cbindgen + - win64-grcov + - win64-sccache + - win64-nasm + - win64-node + - win64-winchecksec + - win64-mozmake + - win64-dump_syms + - vs + - nsis + - sysroot-wasm32-wasi + +win64-fuzzing-ccov/opt: + description: "Win64 Fuzzing Opt w/ Coverage" + index: + product: firefox + job-name: win64-ccov-fuzzing-opt + treeherder: + platform: windows2012-64/ccov + symbol: Bocf + worker-type: b-win2022 + worker: + artifacts: + - name: public/code-coverage-grcov.zip + path: workspace\obj-build\code-coverage-grcov.zip + type: file + max-run-time: 9000 + env: + RUSTC_BOOTSTRAP: '1' + PERFHERDER_EXTRA_OPTIONS: "fuzzing-ccov" + run: + using: mozharness + actions: [get-secrets, build] + options: [append-env-variables-from-configs] + config: + - builds/releng_base_firefox.py + - builds/taskcluster_base_windows.py + - builds/taskcluster_base_win64.py + - builds/taskcluster_sub_win64/ccov_opt.py + script: mozharness/scripts/fx_desktop_build.py + secrets: true + mozconfig-variant: fuzzing-ccov + tooltool-downloads: public + run-on-projects: ['mozilla-central'] + use-sccache: false + fetches: + toolchain: + - win64-clang + - win64-rust + - win64-rust-size + - win64-cbindgen + - win64-grcov + - win64-sccache + - win64-nasm + - win64-node + - win64-winchecksec + - win64-mozmake + - win64-dump_syms + - vs + - nsis + - sysroot-wasm32-wasi + +win64-asan/debug: + description: "Win64 Debug ASAN" + index: + product: firefox + job-name: win64-asan-debug + treeherder: + platform: windows2012-64/asan + symbol: Bd + tier: 1 + worker-type: b-linux-gcp + worker: + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: "debug asan" + run: + actions: [get-secrets, build] + options: [append-env-variables-from-configs] + script: mozharness/scripts/fx_desktop_build.py + secrets: true + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + - builds/taskcluster_sub_win64/asan_debug.py + extra-config: + mozconfig_platform: win64 + mozconfig-variant: debug-asan + use-sccache: true + 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 + - win64-llvm-symbolizer + - vs + fetch: + - upx-3.95-win + optimization: + skip-unless-expanded: null + +win64-asan/opt: + description: "Win64 Opt ASAN" + index: + product: firefox + job-name: win64-asan-opt + treeherder: + platform: windows2012-64/asan + symbol: Bo + tier: 1 + worker-type: b-linux-gcp + worker: + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: "opt asan" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + actions: [get-secrets, build] + options: [append-env-variables-from-configs] + 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-asan + mozconfig_platform: win64 + mozconfig-variant: nightly-asan + use-sccache: true + 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 + - win64-llvm-symbolizer + - vs + fetch: + - upx-3.95-win + +win64-asan-reporter-shippable/opt: + description: "Win64 Opt ASAN Reporter (Shippable)" + attributes: + shippable: true + shipping-product: + by-release-type: + nightly: firefox + default: null + index: + product: firefox + job-name: win64-asan-reporter-opt + type: shippable + treeherder: + platform: win64-asan-reporter/opt + symbol: BoR + worker-type: b-linux-xlarge-gcp + worker: + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: "asan-reporter" + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + actions: [get-secrets, build] + options: [append-env-variables-from-configs] + script: mozharness/scripts/fx_desktop_build.py + secrets: true + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + - builds/taskcluster_sub_win64/asan_reporter_opt.py + - taskcluster_nightly.py + extra-config: + stage_platform: win64-asan-reporter + mozconfig_platform: win64 + max_build_output_timeout: 3600 + mozconfig-variant: nightly-asan-reporter + mar-channel-id: + firefox-mozilla-central-asan + accepted-mar-channel-ids: + firefox-mozilla-central-asan + run-on-projects: ['mozilla-central'] + 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 + - win64-llvm-symbolizer + - vs + fetch: + - upx-3.95-win + +win64-asan-fuzzing/opt: + description: "Win64 Fuzzing Opt ASAN" + index: + product: firefox + job-name: win64-fuzzing-asan-opt + treeherder: + platform: windows2012-64/asan + symbol: Bof + worker-type: b-linux-gcp + worker: + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: fuzzing-asan + run: + actions: [get-secrets, build] + options: [append-env-variables-from-configs] + 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-fuzzing-asan + mozconfig_platform: win64 + mozconfig-variant: nightly-fuzzing-asan + use-sccache: true + 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 + - win64-llvm-symbolizer + - vs + fetch: + - upx-3.95-win + optimization: + skip-unless-expanded: null + +win32-devedition/opt: + description: "Win32 Dev Edition (shippable)" + use-pgo: win32-shippable/opt + index: + product: devedition + job-name: win32-opt + type: shippable + attributes: + shippable: true + enable-full-crashsymbols: true + stub-installer: + by-release-type: + nightly: true + beta: true + release.*: true + default: + by-project: + # browser/confvars.sh looks for nightly-try + try: true + default: false + shipping-phase: build + shipping-product: devedition + treeherder: + platform: windows2012-32-devedition/opt + symbol: B + tier: 1 + worker-type: b-linux-gcp + worker: + max-run-time: 10800 + env: + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + actions: [get-secrets, build] + script: mozharness/scripts/fx_desktop_build.py + secrets: true + options: [append-env-variables-from-configs] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + - taskcluster_nightly.py + extra-config: + stage_platform: win32-devedition + mozconfig_platform: win32 + mozconfig-variant: devedition + run-on-projects: ['mozilla-beta'] + 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 + fetch: + - upx-3.95-win + +win64-devedition/opt: + description: "Win64 Dev Edition (shippable)" + use-pgo: win64-shippable/opt + index: + product: devedition + job-name: win64-opt + type: shippable + attributes: + shippable: true + enable-full-crashsymbols: true + shipping-phase: build + shipping-product: devedition + treeherder: + platform: windows2012-64-devedition/opt + symbol: B + tier: 1 + worker-type: b-linux-xlarge-gcp + worker: + max-run-time: 10800 + env: + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + actions: [get-secrets, build] + options: [append-env-variables-from-configs] + script: mozharness/scripts/fx_desktop_build.py + secrets: true + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + - taskcluster_nightly.py + extra-config: + stage_platform: win64-devedition + mozconfig_platform: win64 + max_build_output_timeout: 3600 + mozconfig-variant: devedition + run-on-projects: ['mozilla-beta'] + 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 + fetch: + - upx-3.95-win + +win64-aarch64/debug: + description: "AArch64 Win64 Debug" + index: + product: firefox + job-name: win64-aarch64-debug + attributes: + enable-full-crashsymbols: true + treeherder: + platform: windows2012-aarch64/debug + symbol: B + tier: 1 + worker-type: b-linux-gcp + worker: + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: aarch64 + run: + actions: [get-secrets, build] + options: [append-env-variables-from-configs] + script: mozharness/scripts/fx_desktop_build.py + secrets: true + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + - builds/taskcluster_sub_win64/debug.py + extra-config: + mozconfig_platform: win64-aarch64 + mozconfig-variant: debug + use-sccache: true + 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 + fetch: + - upx-3.95-win + optimization: + skip-unless-expanded: null + +win64-aarch64/opt: + description: "AArch64 Win64 Opt" + index: + product: firefox + job-name: win64-aarch64-opt + attributes: + enable-build-signing: true + enable-full-crashsymbols: true + treeherder: + platform: windows2012-aarch64/opt + symbol: B + tier: 1 + worker-type: b-linux-gcp + worker: + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: aarch64 + run: + actions: [get-secrets, build] + options: [append-env-variables-from-configs] + 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-aarch64 + mozconfig_platform: win64-aarch64 + run-on-projects: ['integration'] + use-sccache: true + 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 + fetch: + - upx-3.95-win + optimization: + skip-unless-expanded: null + +win64-aarch64-shippable/opt: + description: "AArch64 Win64 Shippable" + use-pgo: win64-shippable/opt + index: + product: firefox + job-name: win64-aarch64-opt + type: shippable + attributes: + shippable: true + enable-full-crashsymbols: true + shipping-phase: build + shipping-product: firefox + treeherder: + platform: windows2012-aarch64-shippable/opt + symbol: Bpgo(B) + tier: 1 + run-on-projects: ['release'] + worker-type: b-linux-xlarge-gcp + worker: + max-run-time: 10800 + env: + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + actions: [get-secrets, build] + options: [append-env-variables-from-configs] + script: mozharness/scripts/fx_desktop_build.py + secrets: true + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + - taskcluster_nightly.py + extra-config: + stage_platform: win64-aarch64 + mozconfig_platform: win64-aarch64 + max_build_output_timeout: 3600 + 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 + fetch: + - upx-3.95-win + +win64-aarch64-devedition/opt: + description: "AArch64 Win64 Dev Edition (shippable)" + use-pgo: win64-shippable/opt + index: + product: devedition + job-name: win64-aarch64-opt + type: shippable + attributes: + shippable: true + enable-full-crashsymbols: true + shipping-phase: build + shipping-product: devedition + treeherder: + platform: windows2012-aarch64-devedition/opt + symbol: Bpgo(B) + tier: 1 + worker-type: b-linux-xlarge-gcp + worker: + max-run-time: 10800 + env: + MOZ_AUTOMATION_PACKAGE_TESTS: "1" + run: + actions: [get-secrets, build] + options: [append-env-variables-from-configs] + script: mozharness/scripts/fx_desktop_build.py + secrets: true + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + - taskcluster_nightly.py + extra-config: + stage_platform: win64-aarch64 + mozconfig_platform: win64-aarch64 + max_build_output_timeout: 3600 + mozconfig-variant: devedition + run-on-projects: ['mozilla-beta'] + 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 + fetch: + - upx-3.95-win diff --git a/taskcluster/ci/code-review/kind.yml b/taskcluster/ci/code-review/kind.yml new file mode 100644 index 0000000000..b57af6acaf --- /dev/null +++ b/taskcluster/ci/code-review/kind.yml @@ -0,0 +1,45 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.code_review:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +kind-dependencies: + - source-test + - toolchain + +job-defaults: + use-system-python: false + +jobs: + issues: + label: code-review-issues + description: List all issues found in static analysis and linting tasks + worker-type: b-linux-gcp + + # Only run by using the code-review target_tasks_method + run-on-projects: [] + + # This option permits to run the task + # regardless of the soft-dependencies tasks exit status + # as we are interested in the task failures + requires: all-resolved + + # Publish on pulse + routes: + - project.relman.codereview.v1.try_ending + + # Dummy execution for now, we only need the pulse message + worker: + docker-image: + in-tree: debian12-base + max-run-time: 600 + run: + using: run-task + checkout: false + command: /bin/true diff --git a/taskcluster/ci/condprof/kind.yml b/taskcluster/ci/condprof/kind.yml new file mode 100644 index 0000000000..75afd4a3e2 --- /dev/null +++ b/taskcluster/ci/condprof/kind.yml @@ -0,0 +1,136 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - build + - toolchain + +transforms: + - gecko_taskgraph.transforms.condprof:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + treeherder: + kind: other + tier: 2 + scenarios: + - settled + run: + using: run-task + cwd: fetches/condprofile + checkout: false + tooltool-downloads: public + scopes: + - secrets:get:project/releng/gecko/build/level-{level}/conditioned-profiles + worker: + taskcluster-proxy: true + max-run-time: 10800 + use-system-python: false +jobs: + windows2012-64-firefox: + worker-type: b-win2022 + description: Creates or updates conditioned profiles on Win64 + run-on-projects: ['mozilla-central'] + treeherder: + symbol: condprof(firefox) + platform: windows2012-64/opt + index: + product: firefox + job-name: condprof-win64 + dependencies: + build: build-win64-shippable/opt + scenarios: + - settled + - full + fetches: + build: + - artifact: target.condprof.tests.tar.gz + - artifact: target.zip + toolchain: + - win64-geckodriver + run: + command: >- + python3.exe condprof/main.py + ${EXTRA_ARGS} + --geckodriver ${MOZ_FETCHES_DIR}/geckodriver.exe + --firefox ${MOZ_FETCHES_DIR}/firefox/firefox.exe + --scenario ${SCENARIO} + ../../archive + worker: + artifacts: + - name: public/condprof + path: archive + type: directory + linux64-firefox: + worker-type: b-linux-gcp + description: Creates or updates conditioned profiles on Linux + run-on-projects: ['mozilla-central'] + treeherder: + symbol: condprof(firefox) + platform: linux64/opt + index: + product: firefox + job-name: condprof-linux64 + dependencies: + build: build-linux64-shippable/opt + scenarios: + - settled + - full + fetches: + build: + - artifact: target.condprof.tests.tar.gz + - artifact: target.tar.bz2 + toolchain: + - linux64-geckodriver + run: + command: >- + python3 -m venv . && + bin/python3 condprof/main.py + ${EXTRA_ARGS} + --geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --firefox ${MOZ_FETCHES_DIR}/firefox/firefox-bin + --scenario ${SCENARIO} + ../../archive + worker: + docker-image: {in-tree: condprof} + artifacts: + - name: public/condprof + path: /builds/worker/archive + type: directory + macosx64-firefox: + worker-type: t-osx-1015-r8 + description: Creates or updates conditioned profiles on macOS + run-on-projects: ['mozilla-central'] + treeherder: + symbol: condprof(firefox) + platform: macosx1015-64-qr/opt + index: + product: firefox + job-name: condprof-macosx64 + dependencies: + build: build-macosx64-shippable/opt + fetches: + build: + - artifact: target.condprof.tests.tar.gz + - artifact: target.dmg + extract: false + toolchain: + - macosx64-geckodriver + run: + command: >- + python3 -m venv . && + bin/python3 condprof/main.py + ${EXTRA_ARGS} + --geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --firefox ${MOZ_FETCHES_DIR}/target.dmg + --scenario ${SCENARIO} + ../../archive + worker: + artifacts: + - name: public/condprof + path: archive + type: directory diff --git a/taskcluster/ci/config.yml b/taskcluster/ci/config.yml new file mode 100644 index 0000000000..73496c538b --- /dev/null +++ b/taskcluster/ci/config.yml @@ -0,0 +1,879 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +trust-domain: gecko +project-repo-param-prefix: '' +product-dir: 'browser' +treeherder: + group-names: + 'cram': 'Cram tests' + 'js-bench-sm': 'JavaScript shell benchmarks with Spidermonkey' + 'js-bench-v8': 'JavaScript shell benchmarks with Google V8' + 'node': 'Node tests' + 'py3': 'Python 3 unit tests' + 'A': 'Android Gradle tests' + 'Bpgo': 'Profile-guided optimization builds' + 'Btime': 'Browsertime performance tests on Firefox' + 'Btime-cache': 'Browsertime performance tests on Firefox with populated bytecode cache.' + 'Btime-1proc': 'Browsertime performance tests on Firefox without e10s' + 'Btime-nofis': 'Browsertime tests on Firefox without fission enabled' + 'Btime-P-nofis': 'Browsertime power tests on Firefox without fission enabled' + 'Btime-Prof-nofis': 'Browsertime tests on Firefox with profiling and without fission enabled' + 'Btime-P-nofis-refbrow': 'Browsertime Power Usage Tests on reference browser without fission enabled' + 'Btime-P-nofis-fenix': 'Browsertime Power Usage Tests on Fenix without fission enabled' + 'Btime-live-nofis-fenix': 'Browsertime tests on Fenix without fission enabled using live sites' + 'Btime-nofis-fenix': 'Browsertime tests on Fenix without fission enabled' + 'Btime-webext-nofis-fenix': 'Browsertime performance tests on Fenix with extensions and without fission enabled' + 'Btime-webext': 'Browsertime performance tests on Firefox with extensions' + 'Btime-live-nofis': 'Browsertime tests on Firefox without fission enabled using live sites' + 'Btime-nofis-refbrow': 'Browsertime tests on reference browser without fission enabled' + 'Btime-live-nofis-ChR': 'Browsertime tests on Chrome without fission enabled using live sites' + 'Btime-Prof': 'Browsertime performance tests on Firefox with Gecko Profiling' + 'Btime-Prof-1proc': 'Browsertime performance tests on Firefox with Gecko Profiling and without e10s' + 'Btime-live': 'Browsertime performance tests on Firefox' + 'Btime-live-fenix': 'Browsertime performance tests on Firefox' + 'Btime-live-ChR': 'Browsertime performance tests on Firefox' + 'Btime-live-Cr': 'Browsertime performance tests on Google Chromium' + 'Btime-live-Saf': 'Browsertime performance tests on Safari' + 'Btime-ChR': 'Browsertime performance tests on Google Chrome Release' + 'Btime-nofis-ChR': 'Browsertime performance tests on Google Chrome Release without fission enabled' + 'Btime-Cr': 'Browsertime performance tests on Google Chromium' + 'Btime-P': 'Browsertime power tests on Firefox/Geckoview' + 'Btime-P-fenix': 'Browsertime power tests on Fenix' + 'Btime-P-refbrow': 'Browsertime power tests on reference browser' + 'Btime-fenix': 'Browsertime performance tests on Fenix' + 'Btime-refbrow': 'Browsertime performance tests on the reference browser' + 'Btime-Saf': 'Browsertime performance tests on Safari' + 'Btime-CaR': 'Browsertime performance tests on Chromium-as-Release' + 'Btime-nofis-CaR': 'Browsertime performance tests on Chromium-as-Release without fission enabled' + 'Fetch': 'Fetch and store content' + 'Fxfn': 'Firefox functional tests' + 'l10n-bump': 'L10n Bumper' + 'M': 'Mochitests' + 'M-cf': 'Mochitests confirm failure' + 'M-condprof': "Mochitests with conditioned profile" + 'M-condprof-cf': "Mochitests confirm failure with conditioned profile" + 'M-fis-hv': "Mochitests that run on Fission with isolateHighValue isolation strategy (Android-specific)" + 'M-fis-hv-cf': "Mochitests confirm failure that run on Fission with isolateHighValue isolation strategy (Android-specific)" + 'M-headless': 'Headless Mochitests' + 'M-headless-cf': 'Headless Mochitests confirm failure' + 'M-headless-spi-nw': 'Headless Mochitests with fission and socketprocess networking.' + 'M-headless-spi-nw-cf': 'Headless Mochitests confirm failure with fission and socketprocess networking.' + 'M-http3': 'Mochitests with Http/3 server' + 'M-http3-cf': 'Mochitests confirm failure with Http/3 server' + 'M-http2': 'Mochitests with Http/2 server' + 'M-http2-cf': 'Mochitests confirm failure with Http/2 server' + 'M-aab': 'Mochitests with AAB test_runner.' + 'M-aab-cf': 'Mochitests confirm failure with AAB test_runner.' + 'M-aab-nofis': 'Mochitests with AAB test_runner without fission enabled.' + 'M-aab-nofis-cf': 'Mochitests confirm failure with AAB test_runner without fission enabled.' + 'M-1proc': 'Mochitests without e10s or fission' + 'M-1proc-cf': 'Mochitests confirm failure without e10s or fission' + 'M-a11y-checks': 'Mochitests with accessibility checks enabled' + 'M-a11y-checks-cf': 'Mochitests confirm failure with accessibility checks enabled' + 'M-xorig': 'Mochitests with cross-origin and fission enabled' + 'M-xorig-cf': 'Mochitests confirm failure with cross-origin and fission enabled' + 'M-gli': 'Mochitests with WebGL over IPC' + 'M-gli-cf': 'Mochitests confirm failure with WebGL over IPC' + 'M-nofis': 'Mochitests without fission enabled' + 'M-nofis-cf': 'Mochitests confirm failure without fission enabled' + 'M-spi': 'Mochitests with socket process' + 'M-spi-cf': 'Mochitests confirm failure with socket process' + 'M-spi-nofis': 'Mochitests with socket process without fission enabled' + 'M-spi-nofis-cf': 'Mochitests confirm failure with socket process without fission enabled' + 'M-spi-nw': 'Mochitests with networking on socket process' + 'M-spi-nw-cf': 'Mochitests confirm failure with networking on socket process' + 'M-spi-nw-nofis': 'Mochitests with networking on socket process without fission enabled' + 'M-spi-nw-nofis-cf': 'Mochitests confirm failure with networking on socket process without fission enabled' + 'M-spi-nw-1proc': 'Mochitests with networking on socket process without e10s' + 'M-spi-nw-1proc-cf': 'Mochitests confirm failure with networking on socket process without e10s' + 'M-swr': 'Mochitests with software webrender enabled' + 'M-swr-cf': 'Mochitests confirm failure with software webrender enabled' + 'M-swr-a11y-checks': 'Mochitests with software webrender and accessibility checks enabled' + 'M-swr-a11y-checks-cf': 'Mochitests confirm failure with software webrender and accessibility checks enabled' + 'M-swr-1proc': 'Mochitests with software webrender enabled without e10s' + 'M-swr-1proc-cf': 'Mochitests confirm failure with software webrender enabled without e10s' + 'M-swr-nofis': 'Mochitests with software webrender without fission enabled' + 'M-swr-nofis-cf': 'Mochitests confirm failure with software webrender without fission enabled' + 'M-wmfme': 'Mochitests with Windows Media Foundation media engine enabled' + 'M-wmfme-cf': 'Mochitests confirm failure with Windows Media Foundation media engine enabled' + 'M-mda-gpu': 'Mochitests Media on GPU worker' + 'M-mda-gpu-cf': 'Mochitests confirm failure Media on GPU worker' + 'M-f': 'Mochitest failures' + 'M-f-swr': 'Mochitest failures software webrender' + 'M-f-cf': 'Mochitest failures w/confirm failure' + 'M-f-swr-cf': 'Mochitest failures software webrender w/confirm failure' + 'M-dt-no-eft-nofis': 'DevTools Mochitests with EFT disabled without fission enabled' + 'M-dt-no-eft-nofis-cf': 'DevTools Mochitests confirm failure with EFT disabled without fission enabled' + 'M-msix': 'Mochitests from MSIX builds' + 'M-msix-cf': 'Mochitests confirm failure from MSIX builds' + 'MSI': 'Repack installers into MSIs' + 'MSIs': 'Signing of Repacked installers of MSIs' + 'MSIX': 'Repack into MSIX package' + 'MSIXs': 'Signing of Repack into MSIX package' + 'Pup': "Puppeteer tests" + 'R': 'Reftests' + 'R-cf': 'Reftests confirm failure' + 'R-nofis': 'Reftests without fission enabled' + 'R-nofis-cf': 'Reftests confirm failure without fission enabled' + 'R-swr': 'Reftests with software webrender enabled' + 'R-swr-cf': 'Reftests confirm failure with software webrender enabled' + 'R-swr-nofis': 'Reftests with software webrender enabled without fission enabled' + 'R-swr-nofis-cf': 'Reftests confirm failure with software webrender enabled without fission enabled' + 'R-wr-dc0': 'Reftests with dcomp disabled' + 'R-wr-dc0-cf': 'Reftests confirm failure with dcomp disabled' + 'R-wr-dc1-p': 'Reftests with dcomp present but not overlays' + 'R-wr-dc1-p-cf': 'Reftests confirm failure with dcomp present but not overlays' + 'R-wr-dc2-o': 'Reftests with dcomp overlays but not compositing' + 'R-wr-dc2-o-cf': 'Reftests confirm failure with dcomp overlays but not compositing' + 'R-wr-dc3-c': 'Reftests with dcomp compositing' + 'R-wr-dc3-c-cf': 'Reftests confirm failure with dcomp compositing' + 'Rap': 'Raptor performance tests on Firefox' + 'Rap-live': 'Raptor performance tests on Firefox with live sites' + 'Rap-Prof': 'Raptor performance tests on Firefox with Gecko Profiling' + 'Rap-ChR': 'Raptor performance tests on Google Chrome Release' + 'Rap-Cr': 'Raptor performance tests on Google Chromium' + 'Rap-refbrow': 'Raptor performance tests on the reference browser' + 'T': 'Talos performance tests' + 'T-gli': 'Talos performance tests with WebGL over IPC' + 'T-Prof': 'Talos performance tests on Firefox with Gecko Profiling' + 'T-Prof-gli': 'Talos performance tests with WebGL over IPC and Gecko Profiling' + 'T-swr': 'Talos performance tests with software webrender enabled' + 'tt': 'Telemetry tests' + 'tt-nofis': 'Telemetry tests without fission enabled' + 'SY': 'Are we slim yet tests by TaskCluster' + 'W': 'Web platform tests' + 'W-cf': 'Web platform tests confirm failure' + 'W-nofis': 'Web platform tests without fission enabled' + 'W-nofis-cf': 'Web platform tests confirm failure without fission enabled' + 'W-headless': 'Headless web platform tests' + 'W-headless-cf': 'Headless web platform tests confirm failure' + 'W-swr-nofis': 'Web platform tests with software webrender enabled without fission enabled' + 'W-swr-nofis-cf': 'Web platform tests confirm failure with software webrender enabled without fission enabled' + 'W-swr': 'Web platform tests with software webrender enabled' + 'W-swr-cf': 'Web platform tests confirm falure with software webrender enabled' + 'W-b': 'Web platform tests (backlog)' + 'W-b-nofis': 'Web platform tests (backlog) without fission enabled' + 'W-pb': 'Web platform tests with private browsing enabled' + 'X': 'Xpcshell tests' + 'X-cf': 'Xpcshell tests confirm failure' + 'X-condprof': 'Xpcshell tests with a conditioned profile' + 'X-condprof-cf': 'Xpcshell tests confirm failure with a conditioned profile' + 'X-nofis': 'Xpcshell tests without fission enabled' + 'X-nofis-cf': 'Xpcshell tests confirm failure without fission enabled' + 'X-spi-nw': 'Xpcshell tests with networking on socket process' + 'X-spi-nw-cf': 'Xpcshell tests confirm failure with networking on socket process' + 'X-spi-nw-nofis': 'Xpcshell tests with networking on socket process without fission enabled' + 'X-spi-nw-nofis-cf': 'Xpcshell tests confirm failure with networking on socket process without fission enabled' + 'X-f': 'Xpcshell tests that fail on a given config' + 'X-f-spi-nw': 'Xpcshell tests that fail on a given config w/socket process' + 'X-msix': 'Xpcshell tests on msix packages' + 'X-msix-cf': 'Xpcshell tests confirm failure on msix packages' + 'L10n': 'Localised Repacks' + 'L10n-Rpk': 'Localized Repackaged Repacks' + 'deb-L10n': 'Localized Debian Repacks' + 'BM': 'Beetmover' + 'BMR': 'Beetmover repackages' + 'BM-apt': 'Beetmover .deb packages' + 'c-Up': 'Balrog submission of complete updates' + 'css': 'Checksum signing for source' + 'rs': 'Repackage signing' + 'BMcs': 'Beetmover checksums' + 'BMcslang': 'Beetmover checksums for language packs' + 'BMcss': 'Beetmover checksums for source' + 'Deb8': 'Packages for Debian 8' + 'Deb8-32': 'Packages for Debian 8 32-bits' + 'Deb9': 'Packages for Debian 9' + 'Deb10': 'Packages for Debian 10' + 'Deb11': 'Packages for Debian 11' + 'Deb12': 'Packages for Debian 12' + 'Ub18': 'Packages for Ubuntu 18.04' + 'Ub20': 'Packages for Ubuntu 20.04' + 'Ub22': 'Packages for Ubuntu 22.04' + 'I': 'Docker Image Builds' + 'TA': 'Toolchain builds for Android' + 'TL': 'Toolchain builds for Linux 64-bits' + 'TL32': 'Toolchain builds for Linux 32-bits' + 'TM': 'Toolchain builds for OSX' + 'TMW': 'Toolchain builds for Windows MinGW' + 'TW32': 'Toolchain builds for Windows 32-bits' + 'TW64': 'Toolchain builds for Windows 64-bits' + 'WMC32': 'MinGW-Clang builds for Windows 32-bits' + 'WMC64': 'MinGW-Clang builds for Windows 64-bits' + 'Searchfox': 'Searchfox builds' + 'SM': 'Spidermonkey builds' + 'p': 'Partial generation' + 'ps': 'Partials signing' + 'ms': 'Complete MAR signing' + 'ms-stage': 'Autograph-stage MAR signing test' + 'Rel': 'Release promotion' + 'Snap': 'Snap image generation' + 'Flatpak': 'Flatpak image generation' + 'langpack': 'Langpack sigatures and uploads' + 'TPS': 'Sync tests' + 'UV': 'Update verify' + 'UVnext': 'Update verify for esr-next' + 'pydep': 'python dependency update' + 'WR': 'WebRender standalone' + 'Wgpu': 'WebGPU standalone' + 'cpp': 'C/C++ checks' + 'pedantic': 'pedantic checks' + 'text': 'Check on texts' + 'misc': 'Misc checks' + 'js': 'JavaScript checks' + 'py': 'Python checks' + 'java': 'Java checks' + 'rust': 'Rust checks' + 'Static-Analysis': 'Full tree static-analysis' + 'SS': 'Shadow scheduler' + 'Sel': 'Selenium Snap tests' + 'Sentry': 'Sentry synchronization' + 'test-info': 'Test manifest skip/fail information' + 'condprof': 'Conditioned Profile Builder' + 'doc': 'Documentation' + 'GhS': 'GitHub Synchronization' + 'perftest': 'Performance tests' + 'perftest-detect': 'Performance regression detection tooling' + 'perftest-chrome': 'Performance tests using Chrone' + 'perftest-http3': 'Performance tests with HTTP/3' + 'l10n': 'Localization checks' + 'fxrec': 'Desktop startup recorder (fxrecord)' + 'wc': 'webcompat' + 'Boot': 'Bootstrap' + 'Attr-L10n': 'Build Attribution' + +index: + products: + - 'firefox' + - 'fennec' + - 'mobile' + - 'static-analysis' + - 'devedition' + - 'source' + - 'system-symbols' + - 'geckodriver' + +try: + # We have a few platforms for which we want to do some "extra" builds, or at + # least build-ish things. Sort of. Anyway, these other things are implemented + # as different "platforms". These do *not* automatically ride along with "-p + # all" + ridealong-builds: + 'linux': + - 'sm-plain-linux32' + - 'sm-arm-sim-linux32' + 'linux64': + - 'sm-plain-linux64' + - 'sm-nojit-linux64' + - 'sm-nonunified-linux64' + - 'sm-arm-sim-linux32' + - 'sm-arm64-sim-linux64' + - 'sm-compacting-linux64' + - 'sm-rootanalysis-linux64' + - 'sm-package-linux64' + - 'sm-tsan-linux64' + - 'sm-asan-linux64' + - 'sm-msan-linux64' + - 'sm-fuzzing-linux64' + 'win32': + - 'sm-plain-win32' + - 'sm-compacting-win32' + +release-promotion: + products: + - 'devedition' + - 'fennec' + - 'firefox' + rebuild-kinds: + - docker-image + - fetch + - packages + - toolchain + flavors: + promote_devedition: + product: devedition + target-tasks-method: promote_desktop + partial-updates: true + promote_firefox: + product: firefox + target-tasks-method: promote_desktop + partial-updates: true + promote_firefox_partner_repack: + product: firefox + rebuild-kinds: + - release-partner-repack + - release-partner-repack-chunking-dummy + - release-partner-repack-signing + - release-partner-repack-mac-signing + - release-partner-repack-mac-notarization + - release-partner-repack-repackage + - release-partner-repack-repackage-signing + - release-partner-repack-beetmover + target-tasks-method: promote_desktop + promote_firefox_partner_attribution: + product: firefox + rebuild-kinds: + - release-partner-attribution + - release-partner-attribution-beetmover + target-tasks-method: promote_desktop + promote_firefox_rc: + product: firefox + is-rc: true + target-tasks-method: promote_desktop + partial-updates: true + push_devedition: + product: devedition + target-tasks-method: push_desktop + partial-updates: true + push_firefox: + product: firefox + target-tasks-method: push_desktop + partial-updates: true + ship_devedition: + product: devedition + target-tasks-method: ship_desktop + version-bump: true + partial-updates: true + ship_firefox: + product: firefox + target-tasks-method: ship_desktop + version-bump: true + partial-updates: true + ship_firefox_rc: + product: firefox + is-rc: true + target-tasks-method: ship_desktop + partial-updates: true + + +merge-automation: + behaviors: + central-to-beta: + fetch-version-from: "browser/config/version.txt" + version-files: + - filename: "config/milestone.txt" + new-suffix: '' + - filename: "browser/config/version.txt" + new-suffix: '' + - filename: "browser/config/version_display.txt" + new-suffix: 'b1' + replacements: + - - browser/config/mozconfigs/linux32/l10n-mozconfig + - ac_add_options --with-branding=browser/branding/nightly + - ac_add_options --enable-official-branding + - - browser/config/mozconfigs/linux64/l10n-mozconfig + - ac_add_options --with-branding=browser/branding/nightly + - ac_add_options --enable-official-branding + - - browser/config/mozconfigs/win32/l10n-mozconfig + - ac_add_options --with-branding=browser/branding/nightly + - ac_add_options --enable-official-branding + - - browser/config/mozconfigs/win64/l10n-mozconfig + - ac_add_options --with-branding=browser/branding/nightly + - ac_add_options --enable-official-branding + - - browser/config/mozconfigs/win64-aarch64/l10n-mozconfig + - ac_add_options --with-branding=browser/branding/nightly + - ac_add_options --enable-official-branding + - - browser/config/mozconfigs/macosx64/l10n-mozconfig + - ac_add_options --with-branding=browser/branding/nightly + - ac_add_options --enable-official-branding + merge-old-head: true + base-tag: 'FIREFOX_BETA_{major_version}_BASE' + end-tag: 'FIREFOX_BETA_{major_version}_END' + from-repo: 'https://hg.mozilla.org/mozilla-central' + from-branch: 'central' + to-repo: 'https://hg.mozilla.org/releases/mozilla-beta' + to-branch: 'beta' + early-to-late-beta: + fetch-version-from: "browser/config/version.txt" + version-files: [] + replacements: + - - build/defines.sh + - EARLY_BETA_OR_EARLIER=1 + - EARLY_BETA_OR_EARLIER= + merge-old-head: false + to-repo: 'https://hg.mozilla.org/releases/mozilla-beta' + to-branch: 'beta' + beta-to-release: + fetch-version-from: "browser/config/version.txt" + version-files: + - filename: "browser/config/version_display.txt" + new-suffix: '' + replacements: [] + merge-old-head: true + base-tag: 'FIREFOX_RELEASE_{major_version}_BASE' + end-tag: 'FIREFOX_RELEASE_{major_version}_END' + from-repo: 'https://hg.mozilla.org/releases/mozilla-beta' + from-branch: 'beta' + to-repo: 'https://hg.mozilla.org/releases/mozilla-release' + to-branch: 'release' + release-to-esr: + fetch-version-from: "browser/config/version.txt" + version-files: + - filename: "browser/config/version_display.txt" + new-suffix: 'esr' + replacements: [] + merge-old-head: false + end-tag: "FIREFOX_ESR_{major_version}_BASE" + to-repo: 'https://hg.mozilla.org/releases/mozilla-esr115' + to-branch: 'esr115' + bump-central: + fetch-version-from: "browser/config/version.txt" + version-files: + - filename: "config/milestone.txt" + version-bump: "major" + new-suffix: 'a1' + - filename: "browser/config/version.txt" + version-bump: "major" + new-suffix: 'a1' + - filename: "browser/config/version_display.txt" + version-bump: "major" + new-suffix: 'a1' + replacements: + - - "services/sync/modules/constants.sys.mjs" + - 'WEAVE_VERSION = "1.{current_weave_version}.0"' + - 'WEAVE_VERSION = "1.{next_weave_version}.0"' + merge-old-head: false + end-tag: 'FIREFOX_NIGHTLY_{major_version}_END' + to-repo: 'https://hg.mozilla.org/mozilla-central' + to-branch: 'central' + bump-esr115: + fetch-version-from: "browser/config/version.txt" + version-files: + - filename: "config/milestone.txt" + version-bump: "minor" + - filename: "browser/config/version.txt" + version-bump: "minor" + - filename: "browser/config/version_display.txt" + version-bump: "minor" + replacements: [] + merge-old-head: false + to-repo: 'https://hg.mozilla.org/releases/mozilla-esr115' + to-branch: 'esr115' + +scriptworker: + # See additional configuration in taskcluster/gecko_taskgraph/util/scriptworker.py + scope-prefix: 'project:releng' + +partner-urls: + release-partner-repack: + by-release-product: + default: null + firefox: + by-release-type: + default: null + beta|release.*: + by-release-level: + production: 'git@github.com:mozilla-partners/repack-manifests.git' + staging: 'git@github.com:moz-releng-automation-stage/repack-manifests.git' + esr.*: + by-release-level: + production: 'git@github.com:mozilla-partners/esr-repack-manifests.git' + staging: 'git@github.com:moz-releng-automation-stage/esr-repack-manifests.git' + release-partner-attribution: + by-release-product: + default: null + firefox: + by-release-type: + default: null + beta|release.*: + by-release-level: + production: 'git@github.com:mozilla-partners/repack-manifests.git' + staging: 'git@github.com:moz-releng-automation-stage/repack-manifests.git' + esr.*: + by-release-level: + production: 'git@github.com:mozilla-partners/esr-repack-manifests.git' + staging: 'git@github.com:moz-releng-automation-stage/esr-repack-manifests.git' + release-eme-free-repack: + by-release-product: + default: null + firefox: + by-release-type: + default: null + beta|release.*: + by-release-level: + production: 'git@github.com:mozilla-partners/mozilla-EME-free-manifest.git' + staging: 'git@github.com:moz-releng-automation-stage/mozilla-EME-free-manifest.git' + + +task-priority: + by-project: + 'mozilla-release': 'highest' + 'mozilla-esr.*': 'very-high' + 'mozilla-beta': 'high' + 'mozilla-central': 'medium' + 'autoland': 'low' + 'mozilla-inbound': 'low' + 'default': 'very-low' + +taskgraph: + register: gecko_taskgraph:register + +workers: + aliases: + b-linux.*: + provisioner: '{trust-domain}-{level}' + implementation: docker-worker + os: linux + worker-type: '{alias}' + b-win2012: + provisioner: '{trust-domain}-{level}' + implementation: generic-worker + os: windows + worker-type: '{alias}-azure' + b-win2022: + provisioner: '{trust-domain}-{level}' + implementation: generic-worker + os: windows + worker-type: '{alias}' + image: + provisioner: '{trust-domain}-{level}' + implementation: docker-worker + os: linux + worker-type: '{alias}' + images: + provisioner: '{trust-domain}-{level}' + implementation: docker-worker + os: linux + worker-type: '{alias}' + images-gcp: + provisioner: '{trust-domain}-{level}' + implementation: docker-worker + os: linux + worker-type: '{alias}' + addon: + provisioner: scriptworker-k8s + implementation: push-addons + os: scriptworker + worker-type: + by-release-level: + production: '{trust-domain}-3-addon' + staging: '{trust-domain}-1-addon' + balrog: + provisioner: scriptworker-k8s + implementation: balrog + os: scriptworker + worker-type: + by-release-level: + production: '{trust-domain}-3-balrog' + staging: '{trust-domain}-1-balrog' + bouncer: + provisioner: scriptworker-k8s + # Note that this implementation doesn't correspond with an + # payload_builder, there are several `bouncer-*` implemenations. + implementation: bouncer + os: scriptworker + worker-type: + by-release-level: + production: '{trust-domain}-3-bouncer' + staging: '{trust-domain}-1-bouncer' + beetmover: + provisioner: scriptworker-k8s + implementation: beetmover + os: scriptworker + worker-type: + by-release-level: + production: '{trust-domain}-3-beetmover' + staging: '{trust-domain}-1-beetmover' + shipit: + provisioner: scriptworker-k8s + implementation: shipit + os: scriptworker + worker-type: + by-release-level: + production: '{trust-domain}-3-shipit' + staging: '{trust-domain}-1-shipit' + linux-depsigning: + provisioner: scriptworker-k8s + implementation: scriptworker-signing + os: linux + worker-type: '{trust-domain}-t-signing' + linux-signing: + provisioner: scriptworker-k8s + implementation: scriptworker-signing + os: linux + worker-type: + by-release-level: + production: '{trust-domain}-3-signing' + staging: '{trust-domain}-t-signing' + mac-depsigning: + provisioner: scriptworker-prov-v1 + implementation: scriptworker-signing + os: macosx + worker-type: depsigning-mac-v1 + mac-signing: + provisioner: scriptworker-prov-v1 + implementation: scriptworker-signing + os: macosx + worker-type: + by-release-level: + production: signing-mac-v1 + staging: depsigning-mac-v1 + tree: + provisioner: scriptworker-k8s + implementation: treescript + os: scriptworker + worker-type: + by-release-level: + production: '{trust-domain}-3-tree' + staging: + by-project: + autoland: '{trust-domain}-3-tree' + default: '{trust-domain}-1-tree' + tree-dev: + provisioner: scriptworker-k8s + implementation: treescript + os: scriptworker + worker-type: '{trust-domain}-1-tree-dev' + t-bitbar-gw.*: + provisioner: proj-autophone + implementation: generic-worker + os: linux-bitbar + worker-type: 'gecko-{alias}' + t-linux(-large|-xlarge|-xlarge-source): + provisioner: '{trust-domain}-t' + implementation: docker-worker + os: linux + worker-type: '{alias}-gcp' + t-linux-kvm: + provisioner: '{trust-domain}-t' + implementation: docker-worker + os: linux + worker-type: 't-linux-kvm-gcp' + t-linux-talos: + provisioner: releng-hardware + implementation: generic-worker + os: linux + worker-type: 'gecko-{alias}' + t-linux-talos-1804: + provisioner: releng-hardware + implementation: generic-worker + os: linux + worker-type: 'gecko-{alias}' + t-linux-wayland: + provisioner: '{trust-domain}-t' + implementation: generic-worker + os: linux + worker-type: 't-linux-vm-2204-wayland' + t-osx-1015-r8: + provisioner: releng-hardware + implementation: generic-worker + os: macosx + worker-type: 'gecko-{alias}' + t-osx-1100-m1: + provisioner: releng-hardware + implementation: generic-worker + os: macosx + worker-type: 'gecko-{alias}' + t-osx-1400-m2: + provisioner: releng-hardware + implementation: generic-worker + os: macosx + worker-type: 'gecko-{alias}' + t-osx-1015-power: + provisioner: releng-hardware + implementation: generic-worker + os: macosx + worker-type: 'gecko-{alias}' + t-linux-xlarge-pgo: + provisioner: + by-level: + '3': '{trust-domain}-{level}' + default: '{trust-domain}-t' + implementation: docker-worker + os: linux + worker-type: 't-linux-xlarge-gcp' + b-osx-1015: + provisioner: releng-hardware + implementation: generic-worker + os: macosx + worker-type: + by-level: + '3': 'gecko-3-b-osx-1015' + default: 'gecko-1-b-osx-1015' + b-osx-arm64: + provisioner: releng-hardware + implementation: generic-worker + os: macosx + worker-type: + by-level: + '3': 'gecko-3-b-osx-arm64' + default: 'gecko-1-b-osx-arm64' + t-win10-64(|-gpu-s|-source): + provisioner: '{trust-domain}-t' + implementation: generic-worker + os: windows + worker-type: '{alias}' + t-win10-64(-hw|-ref-hw|-1803-hw): + provisioner: releng-hardware + implementation: generic-worker + os: windows + worker-type: 'gecko-{alias}' + win11-64-2009(-hw-ref): + provisioner: releng-hardware + implementation: generic-worker + os: windows + worker-type: '{alias}' + win10-64-2009(|-gpu|-ssd|-source|-ssd-gpu): + provisioner: 'gecko-t' + implementation: generic-worker + os: windows + worker-type: '{alias}' + t-win11-64(|-gpu-s|-source): + provisioner: '{trust-domain}-t' + implementation: generic-worker + os: windows + worker-type: '{alias}' + win11-64-2009(|-gpu|-ssd|-source|-ssd-gpu): + provisioner: 'gecko-t' + implementation: generic-worker + os: windows + worker-type: '{alias}' + t-win7-32-gpu: + provisioner: '{trust-domain}-t' + implementation: generic-worker + os: windows + worker-type: '{alias}' + t-win7-32: + provisioner: releng-hardware + implementation: generic-worker + os: windows + worker-type: 'gecko-{alias}-hw' + t-win64-aarch64-laptop: + provisioner: bitbar + implementation: generic-worker + os: windows + worker-type: 'gecko-{alias}' + succeed: + provisioner: built-in + implementation: succeed + os: none + worker-type: succeed + misc: + provisioner: '{trust-domain}-t' + implementation: docker-worker + os: linux + worker-type: misc-gcp + + +mac-notarization: + mac-entitlements: + by-platform: + macosx64.*: + by-release-level: + production: security/mac/hardenedruntime/v1/production/browser.xml + default: security/mac/hardenedruntime/v1/developer/browser.xml + default: '' + mac-requirements: + by-platform: + macosx64.*: build/package/mac_osx/requirements.plist + default: '' + +mac-signing: + hardened-sign-config: + by-hardened-signing-type: + production: + - deep: false + runtime: true + force: true + entitlements: security/mac/hardenedruntime/v2/production/plugin-container.xml + globs: + - "/Contents/MacOS/plugin-container.app" + + - deep: false + runtime: true + force: true + entitlements: security/mac/hardenedruntime/v2/production/media-plugin-helper.xml + globs: + - "/Contents/MacOS/media-plugin-helper.app" + + - deep: false + runtime: true + force: true + # These files are signed wihtout entitlements + globs: + - "/Contents/MacOS/crashreporter.app" + - "/Contents/MacOS/updater.app" + - "/Contents/Library/LaunchServices/org.mozilla.updater" + - "/Contents/MacOS/XUL" + - "/Contents/MacOS/pingsender" + - "/Contents/MacOS/minidump-analyzer" + - "/Contents/MacOS/*.dylib" + - "/Contents/Resources/gmp-clearkey/*/*.dylib" + + - deep: false + runtime: true + force: true + entitlements: + by-build-platform: + .*devedition.*: security/mac/hardenedruntime/v2/production/firefoxdeveloperedition.browser.xml + default: + by-project: + mozilla-central: security/mac/hardenedruntime/v2/production/nightly.browser.xml + default: security/mac/hardenedruntime/v2/production/firefox.browser.xml + globs: + - "/" # The .app + + default: + - deep: false + runtime: true + force: true + entitlements: security/mac/hardenedruntime/v2/developer/plugin-container.xml + globs: + - "/Contents/MacOS/plugin-container.app" + + - deep: false + runtime: true + force: true + entitlements: security/mac/hardenedruntime/v2/developer/media-plugin-helper.xml + globs: + - "/Contents/MacOS/media-plugin-helper.app" + + - deep: false + runtime: true + force: true + entitlements: security/mac/hardenedruntime/v2/developer/utility.xml + globs: + - "/Contents/MacOS/crashreporter.app" + - "/Contents/MacOS/updater.app" + - "/Contents/Library/LaunchServices/org.mozilla.updater" + - "/Contents/MacOS/pingsender" + - "/Contents/MacOS/minidump-analyzer" + + - deep: false + runtime: true + force: true + # These files are signed without entitlements + globs: + - "/Contents/MacOS/XUL" + - "/Contents/MacOS/*.dylib" + - "/Contents/Resources/gmp-clearkey/*/*.dylib" + + - deep: false + runtime: true + force: true + entitlements: security/mac/hardenedruntime/v2/developer/browser.xml + globs: + - "/" # The .app + +expiration-policy: + by-project: + try: + default: 28 days + shortest: 7 days + short: 14 days + medium: 28 days + long: 28 days + autoland: + default: 1 year + shortest: 14 days + short: 3 months + medium: 1 year + # To avoid keeping shippable builds for over a year + long: 1 year + default: + default: 3 months + shortest: 7 days + short: 1 month + medium: 1 year + long: 1 year diff --git a/taskcluster/ci/cron-bouncer-check/kind.yml b/taskcluster/ci/cron-bouncer-check/kind.yml new file mode 100644 index 0000000000..62d2c80960 --- /dev/null +++ b/taskcluster/ci/cron-bouncer-check/kind.yml @@ -0,0 +1,82 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.bouncer_check:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + name: bouncer-check + description: bouncer check + worker-type: b-linux-gcp + worker: + max-run-time: 1200 + docker-image: {in-tree: "update-verify"} + run: + sparse-profile: mozharness + extra-config: + bouncer_prefix: "https://download.mozilla.org/" + attributes: + build_platform: linux64 + build_type: opt + cron: true + treeherder: + symbol: Rel(ckbouncer) + kind: test + tier: 1 + +jobs: + firefox: + shipping-product: firefox + index: + product: firefox + job-name: firefox-bouncer-check + run: + config: + by-release-type: + nightly: + - releases/bouncer_firefox_nightly.py + beta: + - releases/bouncer_firefox_beta.py + release: + - releases/bouncer_firefox_release.py + esr.*: + - releases/bouncer_firefox_esr.py + default: + - releases/bouncer_firefox_beta.py + product-field: + by-project: + mozilla-central: FIREFOX_NIGHTLY + mozilla-beta: LATEST_FIREFOX_RELEASED_DEVEL_VERSION + mozilla-release: LATEST_FIREFOX_VERSION + mozilla-esr115: FIREFOX_ESR + # mozilla-esrXX: FIREFOX_ESR_NEXT + default: LATEST_FIREFOX_DEVEL_VERSION + products-url: https://product-details.mozilla.org/1.0/firefox_versions.json + treeherder: + platform: firefox-release/opt + + devedition: + shipping-product: devedition + run-on-projects: [mozilla-beta] + index: + product: devedition + job-name: devedition-bouncer-check + run: + config: + by-project: + mozilla-beta: + - releases/bouncer_firefox_devedition.py + default: + - releases/dev_bouncer_firefox_devedition.py + product-field: + by-project: + mozilla-beta: LATEST_FIREFOX_RELEASED_DEVEL_VERSION + default: LATEST_FIREFOX_DEVEL_VERSION + products-url: https://product-details.mozilla.org/1.0/firefox_versions.json + treeherder: + platform: devedition-release/opt diff --git a/taskcluster/ci/diffoscope/artifacts.yml b/taskcluster/ci/diffoscope/artifacts.yml new file mode 100644 index 0000000000..0e901f50fd --- /dev/null +++ b/taskcluster/ci/diffoscope/artifacts.yml @@ -0,0 +1,52 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + # Artifact builds always build with nightly branding, so these checks don't + # work on non-trunk branches. + run-on-projects: ['trunk'] + unpack: true + fail-on-diff: true + pre-diff-commands: + # jogfile.json is only created in artifact builds. + - rm b/"$RESOURCE_DIR"/jogfile.json + # Remove noise from differences in line numbers in preprocessor output + # due to #if/#else branches. + - sed -i '/^\/\/@line /d' {a,b}/"$RESOURCE_DIR"/browser/defaults/preferences/firefox.js + # bug 1825141 - telemetry.fog.artifact_build isn't stable between + # artifact and not-artifact builds, so remove its line if present. + - sed -i '/telemetry\.fog\.artifact\_build/d' b/"$RESOURCE_DIR"/browser/defaults/preferences/firefox.js + # artifact builds are not fed with accepted-mar-channel-ids + - sed -i '/ACCEPTED_MAR_CHANNEL_IDS/d' {a,b}/"$RESOURCE_DIR"/update-settings.ini + # Extra diffoscope arguments to account for: + # - about:buildconfig being expectedly different. + extra-args: >- + --exclude b/"$RESOURCE_DIR"/chrome/toolkit/content/global/buildconfig.html + # This is necessary to avoid building the dependencies on every push on autoland + # A more robust fix for this is https://bugzilla.mozilla.org/show_bug.cgi?id=1643346 + optimization: + skip-unless-expanded: null + +artifact-linux64-validation: + symbol: Linux64a + new: artifact-build-linux64-artifact/opt + original: build-linux64/opt + +artifact-macosx64-validation: + symbol: Macosx64a + new: artifact-build-macosx64-artifact/opt + original: build-macosx64/opt + +artifact-win64-validation: + symbol: Win64a + new: artifact-build-win64-artifact/opt + original: build-win64/opt + # Extra diffoscope arguments to account for: + # - about:buildconfig being expectedly different. + # - There are some differences in PE metadata in helper.exe because + # it's (re)built in the EME build, and that part of the build is + # not reproducible. + extra-args: >- + --exclude b/"$RESOURCE_DIR"/chrome/toolkit/content/global/buildconfig.html + --exclude b/firefox/uninstall/helper.exe diff --git a/taskcluster/ci/diffoscope/kind.yml b/taskcluster/ci/diffoscope/kind.yml new file mode 100644 index 0000000000..89b38fc665 --- /dev/null +++ b/taskcluster/ci/diffoscope/kind.yml @@ -0,0 +1,61 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - artifact-build + - build + - toolchain + +transforms: + - gecko_taskgraph.transforms.diffoscope:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +# Note: --exclude-command .--line-numbers is because of +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=879003 +# That skips `objdump --disassemble --line-numbers` and falls back to +# `objdump --disassemble` +# Note: the .chk excludes are for files that are known to differ between +# builds because they are signed with an ephemeral private key that is +# generated for each build. +job-defaults: + tier: 2 + args: >- + --output-empty + --no-default-limits + --max-page-size 100000000 + --max-page-diff-block-lines 10000 + --exclude-directory-metadata=yes + --exclude-command .--line-numbers + +jobs-from: + - artifacts.yml + - reproducible.yml + +# Make a task for each diff we might want. The following are just examples, +# Both original and new can point to builds from the full set of tasks or +# from other sets through an index-search. Other kinds than `build` can be +# compared (for example, static-analysis), provided you adjust the +# kind-dependencies above. +# jobs: +# android-build-vs-previous-try: +# symbol: A +# new: build-android-arm/opt +# original: {index-search: gecko.v2.try.revision.aabd5deb0156f9b55ab60ad6a01ebfc4580bf2e1.mobile.android-arm-opt} +# linux64-build-vs-previous-try: +# symbol: L +# new: build-linux64/opt +# original: {index-search: gecko.v2.try.revision.aabd5deb0156f9b55ab60ad6a01ebfc4580bf2e1.firefox.linux64-opt} +# extra-args: >- +# --exclude-command .--hex-dump=.gnu_debuglink +# macosx-build-vs-previous-try: +# symbol: M +# new: build-macosx64/opt +# original: {index-search: gecko.v2.try.revision.aabd5deb0156f9b55ab60ad6a01ebfc4580bf2e1.firefox.macosx64-opt} +# win32-build-vs-previous-try: +# symbol: W +# new: build-win32/opt +# original: {index-search: gecko.v2.try.revision.aabd5deb0156f9b55ab60ad6a01ebfc4580bf2e1.firefox.win32-opt} diff --git a/taskcluster/ci/diffoscope/reproducible.yml b/taskcluster/ci/diffoscope/reproducible.yml new file mode 100644 index 0000000000..4f89bfca4e --- /dev/null +++ b/taskcluster/ci/diffoscope/reproducible.yml @@ -0,0 +1,29 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + fail-on-diff: true + run-on-projects: ['mozilla-central'] + +reproducible-linux32: + symbol: Linux32 + new: build-linux-reproduced/opt + original: build-linux-shippable/opt + +reproducible-linux32-generated-files: + symbol: Linux32g + artifact: target.generated-files.tar.gz + new: build-linux-reproduced/opt + original: build-linux-shippable/opt + +reproducible-linux64: + symbol: Linux64 + new: build-linux64-reproduced/opt + original: build-linux64-shippable/opt + +reproducible-linux64-generated-files: + symbol: Linux64g + artifact: target.generated-files.tar.gz + new: build-linux64-reproduced/opt + original: build-linux64-shippable/opt diff --git a/taskcluster/ci/docker-image/kind.yml b/taskcluster/ci/docker-image/kind.yml new file mode 100644 index 0000000000..149186fb3b --- /dev/null +++ b/taskcluster/ci/docker-image/kind.yml @@ -0,0 +1,247 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - packages + +transforms: + - gecko_taskgraph.transforms.docker_image:transforms + - gecko_taskgraph.transforms.cached_tasks:transforms + - gecko_taskgraph.transforms.task:transforms + +# make a task for each docker-image we might want. For the moment, since we +# write artifacts for each, these are whitelisted, but ideally that will change +# (to use subdirectory clones of the proper directory), at which point we can +# generate tasks for every docker image in the directory, secure in the +# knowledge that unnecessary images will be omitted from the target task graph +jobs: + image_builder: + symbol: I(ib) + # Neither the ubuntu1804-*raw nor the ubuntu1804-*packages images can have + # packages dependencies. + ubuntu1804-raw: + symbol: I(ub18-raw) + definition: debian-raw + args: + BASE_IMAGE: ubuntu:bionic + ubuntu1804-packages: + symbol: I(ub18-pkg) + definition: debian-packages + parent: ubuntu1804-raw + ubuntu1804-i386-raw: + symbol: I(ub18-32-raw) + definition: debian-raw + args: + BASE_IMAGE: i386/ubuntu:bionic + ubuntu1804-i386-packages: + symbol: I(ub18-32-pkg) + definition: debian-packages + parent: ubuntu1804-i386-raw + ubuntu1804-base: + symbol: I(ub18-base) + parent: ubuntu1804-raw + packages: + - ub18-mercurial + - ub18-python-zstandard + - ub18-python-psutil + ubuntu1804-test-base: + symbol: I(ub18-test-base) + parent: ubuntu1804-base + packages: + - ub18-libc6 + - ub18-pygobject + - ub18-pyatspi + - ub18-32-libc6 + ubuntu1804-test: + symbol: I(ub18-test) + parent: ubuntu1804-test-base + ubuntu1804-build-python: + symbol: I(ub18-build-python) + parent: ubuntu1804-base + # Neither the ubuntu1804-*raw nor the ubuntu1804-*packages images can have + # packages dependencies. + ubuntu2004-raw: + symbol: I(ub20-raw) + definition: debian-raw + args: + BASE_IMAGE: ubuntu:focal + ubuntu2204-raw: + symbol: I(ub22-raw) + definition: debian-raw + args: + BASE_IMAGE: ubuntu:jammy + ubuntu2004-packages: + symbol: I(ub20-pkg) + definition: debian-packages + parent: ubuntu2004-raw + ubuntu2204-packages: + symbol: I(ub22-pkg) + definition: debian-packages + parent: ubuntu2204-raw + ubuntu2004-base: + symbol: I(ub20-base) + definition: debian-base + parent: ubuntu2004-raw + packages: + - ub20-mercurial + - ub20-python-zstandard + ubuntu2204-base: + symbol: I(ub22-base) + definition: debian-base + parent: ubuntu2204-raw + packages: + - ub22-mercurial + - ub22-python-zstandard + # Neither the debian8-*raw nor the debian8-*packages images can have + # packages dependencies. + debian8-raw: + symbol: I(deb8-raw) + definition: debian-raw + args: + BASE_IMAGE: debian:jessie-20210208 + DIST: jessie + debian8-packages: + symbol: I(deb8-pkg) + definition: debian-packages + parent: debian8-raw + debian8-i386-raw: + symbol: I(deb8-32-raw) + definition: debian-raw + args: + BASE_IMAGE: i386/debian:jessie-20210208 + DIST: jessie + debian8-i386-packages: + symbol: I(deb8-32-pkg) + definition: debian-packages + parent: debian8-i386-raw + custom-v8: + symbol: I(custom-v8) + parent: debian12-base + # Chromium-as-Release + custom-car-linux: + symbol: I(custom-car-linux) + parent: debian12-base + # Chromium-as-Release Android + custom-car-android: + symbol: I(custom-car-android) + parent: debian12-base + valgrind-build: + symbol: I(vb) + parent: debian12-amd64-build + packages: + - deb12-valgrind + lint: + symbol: I(lnt) + parent: debian12-base + # Neither the debian12-raw nor the debian12-packages images can have + # packages dependencies. + debian12-raw: + symbol: I(deb12-raw) + definition: debian-raw + args: + BASE_IMAGE: debian:bookworm-20230612 + DIST: bookworm + SNAPSHOT: '20230611T210420Z' + debian12-packages: + symbol: I(deb12-pkg) + definition: debian-packages + parent: debian12-raw + debian12-base: + symbol: I(deb12-base) + definition: debian-base + parent: debian12-raw + packages: + - deb12-mercurial + - deb12-python-zstandard + debian12-amd64-build: + symbol: I(deb12) + parent: debian12-base + definition: debian-build + debian12-repackage: + symbol: I(deb12-rpk) + parent: debian12-base + definition: debian-repackage + packages: + - deb12-mercurial + deb12-toolchain-build: + symbol: I(deb12-toolchain) + parent: debian12-base + definition: toolchain-build + android-build: + symbol: I(agb) + parent: debian12-base + fetch: + symbol: I(fetch) + parent: debian12-raw + packages: + - deb12-python-zstandard + static-analysis-build: + symbol: I(static-analysis-build) + parent: debian12-base + gdb-test: + symbol: I(gdb) + parent: debian12-amd64-build + index-task: + symbol: I(idx) + funsize-update-generator: + symbol: I(pg) + update-verify: + symbol: I(uv) + parent: ubuntu2004-base + diffoscope: + symbol: I(diff) + parent: debian12-base + partner-repack: + symbol: I(PR) + parent: debian12-base + definition: partner-repack + updatebot: + symbol: I(3rdp) + parent: push-to-try + periodic-updates: + symbol: I(file) + parent: debian12-base + firefox-snap: + symbol: I(snap) + firefox-flatpak: + symbol: I(flatpak) + webrender: + symbol: I(webrender) + parent: debian12-base + condprof: + symbol: I(condprof) + parent: ubuntu1804-test + github-sync: + symbol: I(github-sync) + parent: debian12-base + sentry: + symbol: I(sentry) + parent: debian12-base + system-symbols-mac: + symbol: I(system-symbols-mac) + parent: debian12-base + system-symbols-win: + symbol: I(system-symbols-win) + parent: debian12-base + system-symbols-win-gfx: + symbol: I(system-symbols-win-gfx) + parent: debian12-base + system-symbols-linux-scraper: + symbol: I(system-symbols-linux) + parent: debian12-base + push-to-try: + symbol: I(push-to-try) + parent: debian12-base + decision: + symbol: I(decision) + parent: ubuntu2004-base + snap-build-core22: + symbol: I(snap22-build) + parent: ubuntu2204-base + definition: snap-coreXX-build + args: + SNAP_BASE: core22 + SNAP_LIST: "gnome-42-2204 gtk-common-themes gnome-42-2204-sdk" diff --git a/taskcluster/ci/fetch/benchmarks.yml b/taskcluster/ci/fetch/benchmarks.yml new file mode 100644 index 0000000000..7e31470baf --- /dev/null +++ b/taskcluster/ci/fetch/benchmarks.yml @@ -0,0 +1,19 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +octane: + description: Octane benchmark + fetch: + type: static-url + url: https://github.com/mozilla/perf-automation/releases/download/octane-v1/octane-0f5b8d48d4a9.zip + sha256: 38425ee1abfc5feca178b2f60fbd82b5873897c345112a85359be00024402f9f + size: 1816138 + +web-tooling-benchmark: + description: Web Tooling Benchmark + fetch: + type: static-url + url: https://github.com/mozilla/perf-automation/releases/download/V1/web-tooling-benchmark-b2ac25c897c9.zip + sha256: 93b0b51df0cec3ca9bfa0bdf81d782306dcf18532e39b3ff3180409125daaff1 + size: 5444135 diff --git a/taskcluster/ci/fetch/browsertime.yml b/taskcluster/ci/fetch/browsertime.yml new file mode 100644 index 0000000000..614ddce593 --- /dev/null +++ b/taskcluster/ci/fetch/browsertime.yml @@ -0,0 +1,180 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +win64-ffmpeg-4.4.1: + description: 'Win64 ffmpeg' + fetch: + type: static-url + # url: https://github.com/GyanD/codexffmpeg/releases/tag/4.4.1 + url: https://github.com/mozilla/perf-automation/releases/download/FFMPEG-v4.4.1/ffmpeg-4.4.1-full_build.zip + sha256: f0f407041f82905c310b79f4f76973815700d1e438a10c3cbce66a345ff4f457 + size: 134760541 + +linux64-ffmpeg-4.4.1: + description: 'Linux64 ffmpeg' + fetch: + type: static-url + # url: https://www.johnvansickle.com/ffmpeg/old-releases/ + url: https://github.com/mozilla/perf-automation/releases/download/FFMPEG-v4.4.1/ffmpeg-4.4.1-i686-static.tar.xz + sha256: 1f38d1c99b6eb3d36f709a481f5a5526448567a800ee9cddcfe4be54f8b68e62 + size: 17592088 + +mac64-ffmpeg-4.4.1: + description: 'Mac64 ffmpeg' + fetch: + type: static-url + # url: https://evermeet.cx/pub/ffmpeg/ + url: https://github.com/mozilla/perf-automation/releases/download/FFMPEG-v4.4.1/ffmpeg-macos.zip + sha256: 9d07411bce176f56314cc5624f5df51f9cffa76a59e3e81abe2175d4ebaf87ae + size: 49100208 + +linux64-chromedriver: + description: 'Linux64 chromedriver' + fetch: + type: static-url + url: https://chromedriver.storage.googleapis.com/2.46/chromedriver_linux64.zip + sha256: 461919e080e19335a34224e2d353b96b07c7d068621aa940f9c136e86d090047 + size: 5404417 + +win32-chromedriver-120: + description: "Win32 chromedriver v120" + fetch: + type: static-url + artifact-name: chromedriver_win32_120.tar.zst + add-prefix: "120" + url: https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/120.0.6099.18/win32/chromedriver-win32.zip + sha256: f07b320a3e739c619b9bda0c62169d6173350e7415317125fba76c8b002458ce + size: 7360109 + +linux64-chromedriver-120: + description: "Linux64 chromedriver v120" + fetch: + type: static-url + artifact-name: chromedriver_linux64_120.tar.zst + add-prefix: "120" + url: https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/120.0.6099.18/linux64/chromedriver-linux64.zip + sha256: 3990b819b9b8866784dcd634e284e6e02f2b92f81ba89fb7b6c98061ad2b3c6e + size: 8575905 + +mac64-chromedriver-120: + description: "Mac64 chromedriver v120" + fetch: + type: static-url + artifact-name: chromedriver_mac64_120.tar.zst + add-prefix: "120" + url: https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/120.0.6099.18/mac-x64/chromedriver-mac-x64.zip + sha256: f645302e046e4314477b72244335c60098563d202fc0c9467df7d71b850c21f1 + size: 9235668 + +mac-arm-chromedriver-120: + description: "Mac64 arm chromedriver v120" + fetch: + type: static-url + artifact-name: chromedriver_mac-arm_120.tar.zst + add-prefix: "120" + url: https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/120.0.6099.18/mac-arm64/chromedriver-mac-arm64.zip + sha256: 141e0abedfe2a1df6c3eb334becdf1993dce8b4fc0f906457606470c6542f236 + size: 8293703 + +win32-chromedriver-121: + description: "Win32 chromedriver v121" + fetch: + type: static-url + artifact-name: chromedriver_win32_121.tar.zst + add-prefix: "121" + url: https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/121.0.6167.57/win32/chromedriver-win32.zip + sha256: a6618777d23e2d65a4938c150df1c7516be6d8e52748f635c7bf1df36e0a143f + size: 7989797 + + +linux64-chromedriver-121: + description: "Linux64 chromedriver v121" + fetch: + type: static-url + artifact-name: chromedriver_linux64_121.tar.zst + add-prefix: "121" + url: https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/121.0.6167.57/linux64/chromedriver-linux64.zip + sha256: f4a3fe88694cd67484041d01dfc33e9769b9709335e97e3283f11da0e95a73f8 + size: 8625832 + + +mac64-chromedriver-121: + description: "Mac64 chromedriver v121" + fetch: + type: static-url + artifact-name: chromedriver_mac64_121.tar.zst + add-prefix: "121" + url: https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/121.0.6167.57/mac-x64/chromedriver-mac-x64.zip + sha256: c89fa84060d18ed03f3f68de67400051691836b85e8b7d77b386d6239f9b8ced + size: 9233941 + + +mac-arm-chromedriver-121: + description: "Mac-arm chromedriver v121" + fetch: + type: static-url + artifact-name: chromedriver_mac-arm_121.tar.zst + add-prefix: "121" + url: https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/121.0.6167.57/mac-arm64/chromedriver-mac-arm64.zip + sha256: e162f11cebcb7d255daf3f7af2e8f6046389f2b5264c0a991022957af0524afc + size: 8318525 + +win32-chromedriver-122: + description: "Win32 chromedriver v122" + fetch: + type: static-url + artifact-name: chromedriver_win32_122.tar.zst + add-prefix: "122" + url: https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/122.0.6261.18/win32/chrome-win32.zip + sha256: 4778e327a30972fa1d39a9aabc60c04e82553b7cafa2f8f768eaec9ee0935eab + size: 134566218 + +linux64-chromedriver-122: + description: "Linux64 chromedriver v122" + fetch: + type: static-url + artifact-name: chromedriver_linux64_122.tar.zst + add-prefix: "122" + url: https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/122.0.6261.18/linux64/chrome-linux64.zip + sha256: 5514382fc80e092f76a6a7ea85bdfcafacd7e62e1c831a7842f0eca003383c5d + size: 149627735 + +mac64-chromedriver-122: + description: "Mac64 chromedriver v122" + fetch: + type: static-url + artifact-name: chromedriver_mac64_122.tar.zst + add-prefix: "122" + url: https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/122.0.6261.18/mac-x64/chrome-mac-x64.zip + sha256: 753d2814bb82d723289eea76628e9b043bc36666d7cf285876dc4f19ca811c04 + size: 155446914 + +mac-arm-chromedriver-122: + description: "Mac64 arm chromedriver v122" + fetch: + type: static-url + artifact-name: chromedriver_mac-arm_122.tar.zst + add-prefix: "122" + url: https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/122.0.6261.18/mac-arm64/chrome-mac-arm64.zip + sha256: 1edd4096771669e6c429eff5a459f520defd43afb798fc86d58608d95355be6e + size: 146946870 + +upload-speed-test-file: + description: "File used for the upload speed performance test" + fetch: + type: static-url + artifact-name: upload-test-32MB.dat + url: https://github.com/mozilla/perf-automation/raw/master/test_files/upload-test-32MB.dat + sha256: 72caa47a951e9f37d1e1be2119a64b1fbc6348c4f37d574bee4587e02b8f96a5 + size: 32000000 + +firefox-addons: + description: "Download a tar archive of real Firefox extensions xpi files available on AMO (used to run perftests with real extensions installed)" + fetch: + type: static-url + artifact-name: firefox-addons.tar.zst + add-prefix: firefox-addons/ + url: https://github.com/mozilla/perf-automation/raw/c9e497eaa86f45538e3509120947215c6f97c95b/test_files/firefox-addons.tar + sha256: 20372ff1d58fc33d1568f8922fe66e2e2e01c77663820344d2a364a8ddd68281 + size: 3584000 diff --git a/taskcluster/ci/fetch/chromium-fetch.yml b/taskcluster/ci/fetch/chromium-fetch.yml new file mode 100644 index 0000000000..88f7e4fc62 --- /dev/null +++ b/taskcluster/ci/fetch/chromium-fetch.yml @@ -0,0 +1,38 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + fetch: + type: chromium-fetch + script: /builds/worker/bin/fetch-chromium.py + +linux64-chromium: + description: 'Linux64 Chromium Fetch' + fetch: + platform: linux + artifact-name: chromium-linux.tar.bz2 + +win32-chromium: + description: 'Windows32 Chromium Fetch' + fetch: + platform: win32 + artifact-name: chromium-win32.tar.bz2 + +win64-chromium: + description: 'Windows64 Chromium Fetch' + fetch: + platform: win64 + artifact-name: chromium-win64.tar.bz2 + +mac-chromium: + description: 'MacOSX Chromium Fetch' + fetch: + platform: mac + artifact-name: chromium-mac.tar.bz2 + +mac-chromium-arm: + description: 'MacOSX ARM Chromium Fetch' + fetch: + platform: mac-arm + artifact-name: chromium-mac-arm.tar.bz2 diff --git a/taskcluster/ci/fetch/kind.yml b/taskcluster/ci/fetch/kind.yml new file mode 100644 index 0000000000..027ab7f1eb --- /dev/null +++ b/taskcluster/ci/fetch/kind.yml @@ -0,0 +1,20 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.fetch:transforms + - gecko_taskgraph.transforms.try_job:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +jobs-from: + - benchmarks.yml + - browsertime.yml + - chromium-fetch.yml + - resource-monitor.yml + - toolchain-clang-tidy-external.yml + - toolchains.yml + - updatebot.yml diff --git a/taskcluster/ci/fetch/moz.build b/taskcluster/ci/fetch/moz.build new file mode 100644 index 0000000000..28b8003edf --- /dev/null +++ b/taskcluster/ci/fetch/moz.build @@ -0,0 +1,8 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +with Files("updatebot.yml"): + BUG_COMPONENT = ("Developer Infrastructure", "Mach Vendor & Updatebot") diff --git a/taskcluster/ci/fetch/resource-monitor.yml b/taskcluster/ci/fetch/resource-monitor.yml new file mode 100644 index 0000000000..2fe94cb4f9 --- /dev/null +++ b/taskcluster/ci/fetch/resource-monitor.yml @@ -0,0 +1,10 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +resource-monitor: + description: Resource monitoring tools + fetch: + type: git + repo: https://github.com/mozilla-releng/resource-monitor + revision: 17371502a3b04579375d707844e6bf08dee95d22 diff --git a/taskcluster/ci/fetch/toolchain-clang-tidy-external.yml b/taskcluster/ci/fetch/toolchain-clang-tidy-external.yml new file mode 100644 index 0000000000..d71058c06b --- /dev/null +++ b/taskcluster/ci/fetch/toolchain-clang-tidy-external.yml @@ -0,0 +1,13 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +civet-source: + description: Repository for external static analysis checks + artifact-prefix: project/civet + fetch: + type: git + repo: git@github.com:mozilla-services/civet.git + revision: fa787d2047a5c3759e67f0df58415a984dcc8777 + ssh-key: project/civet/github-deploy-key + artifact-name: civet-source.tar.zst diff --git a/taskcluster/ci/fetch/toolchains.yml b/taskcluster/ci/fetch/toolchains.yml new file mode 100644 index 0000000000..50ffb065b0 --- /dev/null +++ b/taskcluster/ci/fetch/toolchains.yml @@ -0,0 +1,714 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +binutils-2.31.1: + description: binutils 2.31.1 source code + fetch: + type: static-url + url: https://ftp.gnu.org/gnu/binutils/binutils-2.31.1.tar.xz + sha256: 5d20086ecf5752cc7d9134246e9588fa201740d540f7eb84d795b1f7a93bca86 + size: 20467996 + gpg-signature: + sig-url: "{url}.sig" + key-path: build/unix/build-binutils/3A24BC1E8FB409FA9F14371813FCEF89DD9E3C4F.key + artifact-name: binutils-source.tar.zst + strip-components: 1 + add-prefix: binutils-source/ + +binutils-2.41: + description: binutils 2.41 source code + fetch: + type: static-url + url: https://ftp.gnu.org/gnu/binutils/binutils-2.41.tar.xz + sha256: ae9a5789e23459e59606e6714723f2d3ffc31c03174191ef0d015bdf06007450 + size: 26765692 + gpg-signature: + sig-url: "{url}.sig" + key-path: build/unix/build-binutils/3A24BC1E8FB409FA9F14371813FCEF89DD9E3C4F.key + artifact-name: binutils-source.tar.zst + strip-components: 1 + add-prefix: binutils-source/ + +gcc-8.5.0: + description: GCC 8.5.0 source code + fetch: + type: static-url + url: https://ftp.gnu.org/gnu/gcc/gcc-8.5.0/gcc-8.5.0.tar.xz + sha256: d308841a511bb830a6100397b0042db24ce11f642dab6ea6ee44842e5325ed50 + size: 63841008 + gpg-signature: + sig-url: "{url}.sig" + key-path: build/unix/build-gcc/D3A93CAD751C2AF4F8C7AD516C35B99309B5FA62.key + artifact-name: gcc-source.tar.zst + strip-components: 1 + add-prefix: gcc-source/ + +gcc-9.5.0: + description: GCC 9.5.0 source code + fetch: + type: static-url + url: https://ftp.gnu.org/gnu/gcc/gcc-9.5.0/gcc-9.5.0.tar.xz + sha256: 27769f64ef1d4cd5e2be8682c0c93f9887983e6cfd1a927ce5a0a2915a95cf8f + size: 72462752 + gpg-signature: + sig-url: "{url}.sig" + key-path: build/unix/build-gcc/7F74F97C103468EE5D750B583AB00996FC26A641.key + artifact-name: gcc-source.tar.zst + strip-components: 1 + add-prefix: gcc-source/ + +gcc-11.4.0: + description: GCC 11.4.0 source code + fetch: + type: static-url + url: https://ftp.gnu.org/gnu/gcc/gcc-11.4.0/gcc-11.4.0.tar.xz + sha256: 3f2db222b007e8a4a23cd5ba56726ef08e8b1f1eb2055ee72c1402cea73a8dd9 + size: 79837032 + gpg-signature: + sig-url: "{url}.sig" + key-path: build/unix/build-gcc/D3A93CAD751C2AF4F8C7AD516C35B99309B5FA62.key + artifact-name: gcc-source.tar.zst + strip-components: 1 + add-prefix: gcc-source/ + +gmp-6.1.0: + description: GMP 6.1.0 source code + fetch: + type: static-url + url: https://ftp.gnu.org/gnu/gmp/gmp-6.1.0.tar.bz2 + sha256: 498449a994efeba527885c10405993427995d3f86b8768d8cdf8d9dd7c6b73e8 + size: 2383840 + gpg-signature: + sig-url: "{url}.sig" + key-path: build/unix/build-gcc/343C2FF0FBEE5EC2EDBEF399F3599FF828C67298.key + artifact-name: gmp-source.tar.zst + strip-components: 1 + add-prefix: gmp-source/ + +go-1.14.4: + description: Golang 1.14.4 build tools + fetch: + type: static-url + url: https://dl.google.com/go/go1.14.4.linux-amd64.tar.gz + sha256: aed845e4185a0b2a3c3d5e1d0a35491702c55889192bb9c30e67a3de6849c067 + size: 123711003 + +isl-0.16.1: + description: ISL 0.16.1 source code + fetch: + type: static-url + url: https://gcc.gnu.org/pub/gcc/infrastructure/isl-0.16.1.tar.bz2 + sha256: 412538bb65c799ac98e17e8cfcdacbb257a57362acfaaff254b0fcae970126d2 + size: 1626446 + artifact-name: isl-source.tar.zst + strip-components: 1 + add-prefix: isl-source/ + +mpc-1.0.3: + description: mpc 1.0.3 source code + fetch: + type: static-url + url: https://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz + sha256: 617decc6ea09889fb08ede330917a00b16809b8db88c29c31bfbb49cbf88ecc3 + size: 669925 + gpg-signature: + sig-url: "{url}.sig" + key-path: build/unix/build-gcc/AD17A21EF8AED8F1CC02DBD9F7D5C9BF765C61E3.key + artifact-name: mpc-source.tar.zst + strip-components: 1 + add-prefix: mpc-source/ + +mpfr-3.1.4: + description: mpfr 3.1.4 source code + fetch: + type: static-url + url: http://www.mpfr.org/mpfr-3.1.4/mpfr-3.1.4.tar.bz2 + sha256: d3103a80cdad2407ed581f3618c4bed04e0c92d1cf771a65ead662cc397f7775 + size: 1279284 + gpg-signature: + sig-url: "{url}.asc" + key-path: build/unix/build-gcc/07F3DBBECC1A39605078094D980C197698C3739D.key + artifact-name: mpfr-source.tar.zst + strip-components: 1 + add-prefix: mpfr-source/ + +nasm-2.14.02: + description: nasm 2.14.02 source code + fetch: + type: static-url + url: https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.xz + sha256: e24ade3e928f7253aa8c14aa44726d1edf3f98643f87c9d72ec1df44b26be8f5 + size: 827620 + +nasm-2.15.05: + description: nasm 2.15.05 source code + fetch: + type: static-url + url: https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.xz + sha256: 3caf6729c1073bf96629b57cee31eeb54f4f8129b01902c73428836550b30a3f + size: 995732 + +wix-3.14.0: + description: wix 3.14.0 binary release + # WIX doesn't use a wrapping toplevel DIR, so we should really repackage it when + # Bug 1479533 and related code is ready. + fetch: + type: static-url + url: https://github.com/wixtoolset/wix3/releases/download/wix314rtm/wix314-binaries.zip + sha256: 13f067f38969faf163d93a804b48ea0576790a202c8f10291f2000f0e356e934 + size: 41282726 + +zlib-1.3.1: + description: zlib 1.3.1 source code + fetch: + type: static-url + url: https://zlib.net/fossils/zlib-1.3.1.tar.gz + sha256: 9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23 + size: 1512791 + +nsis-3.07: + description: nsis 3.07 source code + fetch: + type: static-url + url: https://downloads.sourceforge.net/project/nsis/NSIS%203/3.07/nsis-3.07-src.tar.bz2 + sha256: 4dfad3388589985b4cd91d20e18e1458aa31e7d139b5b8adf25c3a9c1015efba + size: 1784292 + +nsis-3.07-win: + description: nsis 3.07 for windows + fetch: + type: static-url + # Temporary: pull down our own repackage of NSIS, with its plugin DLLs signed by Mozilla + # See https://bugzilla.mozilla.org/show_bug.cgi?id=1751450#c38 for more details + # bug 1771192 tracks adding a signing task downstream of the NSIS toolchain task + # to fix this more robustly. + url: https://github.com/mozilla-releng/adhoc-signing-blobs/raw/nsis/nsis-3.07-signed.zip + sha256: 5856cd49b52870caa41814d71ce30c4304d5001b80c04f4eb7028ffedd91df7e + size: 2618390 + artifact-name: nsis.tar.zst + strip-components: 1 + add-prefix: nsis/ + +upx-3.95-win: + description: upx 3.95 for windows + fetch: + type: static-url + url: https://hg.mozilla.org/mozilla-build/raw-file/3b8c537ca3c879551956ad47ca9f089583f647c5/upx-3.95-win64.zip + sha256: 5c076f87ba64d82f11513f4af0ceb07246a3540aa3c72ca3ffc2d53971fa56e3 + size: 462820 + +wine: + description: wine source code + fetch: + type: static-url + url: https://dl.winehq.org/wine/source/8.0/wine-8.0.2.tar.xz + sha256: 6ec8fb6f2c72d576cb11f52b2f8d59af64404802154651d122b98466d91dc847 + size: 29060452 + gpg-signature: + sig-url: "{url}.sign" + key-path: build/unix/build-gcc/DA23579A74D4AD9AF9D3F945CEFAC8EAAF17519D.key + artifact-name: wine.tar.zst + strip-components: 1 + add-prefix: wine-source/ + +cbindgen-0.26.0: + description: cbindgen source code + fetch: + type: git + repo: https://github.com/mozilla/cbindgen + revision: 703b53c06f9fe2dbc0193d67626558cfa84a0f62 + +cctools-port: + description: cctools-port source code + fetch: + type: git + repo: https://github.com/tpoechtrager/cctools-port + revision: 30518813875aed656aa7f18b6d485feee25f8f87 + +libtapi: + description: libtapi source code + fetch: + type: git + repo: https://github.com/tpoechtrager/apple-libtapi + revision: b4f141a16c7c82f75973429c92242a8c7de3ddb1 + +ldid: + description: ldid source code + fetch: + type: git + repo: https://github.com/tpoechtrager/ldid + revision: 4bf8f4d60384a0693dbbe2084ce62a35bfeb87ab + +libdmg-hfsplus: + description: libdmg-hfsplug source code + fetch: + type: git + repo: https://github.com/mozilla/libdmg-hfsplus/ + revision: a0a959bd25370c1c0a00c9ec525e3e78285adbf9 + +hfsplus-tools: + description: hfstools-plus source code + fetch: + type: static-url + # Most-upstream is https://opensource.apple.com/source/diskdev_cmds/ + url: https://src.fedoraproject.org/repo/pkgs/hfsplus-tools/diskdev_cmds-540.1.linux3.tar.gz/0435afc389b919027b69616ad1b05709/diskdev_cmds-540.1.linux3.tar.gz + sha256: b01b203a97f9a3bf36a027c13ddfc59292730552e62722d690d33bd5c24f5497 + size: 411205 + +xar: + description: xar source code + fetch: + type: git + repo: https://github.com/gabrielesvelto/xar + revision: 199ff76a7463f6b6a2548b4db29cd3dd5026df69 + +bomutils: + description: bomutils (mkbom) source code + fetch: + type: git + repo: https://github.com/hogliux/bomutils + revision: 0e7dc7eefefb3a0ba2ef3a432cdc1089ac40740c + +rust-size: + description: rust-size source code + fetch: + type: git + repo: https://github.com/luser/rust-size + revision: ab659d93b1faba95307df952aefe3fbed3583669 + +gn: + description: GN source code + fetch: + type: git + repo: https://gn.googlesource.com/gn + revision: 7e05276308f3d49f8514ef02afe4f94487b1efb2 + +grcov: + description: grcov source code + fetch: + type: git + repo: https://github.com/mozilla/grcov + revision: 322fc39acacd75aca0ff1c0a1ec2a3e91f04011c + +sccache: + description: sccache source code + fetch: + type: git + repo: https://github.com/mozilla/sccache + # 0.7.6 release + revision: 794c987b7843f404b9e50513dae978f807ba0a60 + +fxc2: + description: fxc2 source code + fetch: + type: git + repo: https://github.com/mozilla/fxc2 + revision: 63ad74b7faa7033f2c1be9cc1cd0225241a1a9a5 + +mingw-w64: + description: mingw-w64 source code + fetch: + type: git + repo: https://git.code.sf.net/p/mingw-w64/mingw-w64 + revision: 95a2cf4b7260200c4a60f4f1d1127e72799a3541 + +mingw-w64-trunk: + description: mingw-w64 master branch source code + attributes: + cached_task: false + fetch: + type: git + repo: https://git.code.sf.net/p/mingw-w64/mingw-w64 + branch: master + +llvm-mingw: + description: llvm-mingw source code + fetch: + type: git + repo: https://github.com/mstorsjo/llvm-mingw + revision: 9f8e5cebd6dbbb7546e8917e6c59284699a48d26 + +android-ndk-rs: + description: android-ndk-rs source code + fetch: + type: git + # Until there's a version of cargo-apk published on crates.io that has + # https://github.com/rust-windowing/android-ndk-rs/pull/236, we need to use + # an unpublished version. Additionally, until we update the NDK version used + # in gecko we must use our own patched version. See bug 1615148. + repo: https://github.com/jamienicol/android-ndk-rs + revision: 595f4e14a78371e3ab59b12f7bd8131f2ec5b4a1 + +clang-8.0: + description: clang 8.0.0 source code + fetch: + type: git + repo: https://github.com/llvm/llvm-project + revision: d2298e74235598f15594fe2c99bbac870a507c59 + +clang-14: + description: clang 14.0.5 source code + fetch: + type: git + repo: https://github.com/llvm/llvm-project + revision: 4bc1d0b51c8e488d78ab69c8b19cfbcd1f7db6a4 + +clang-17: + description: clang 17.0.6 source code + fetch: + type: git + repo: https://github.com/llvm/llvm-project + revision: 6009708b4367171ccdbf4b5905cb6a803753fe18 + +clang-18: + description: clang 18.1.0-rc2 source code + fetch: + type: git + repo: https://github.com/llvm/llvm-project + revision: c6c86965d967886ca5a2ed8968c949cd42cdd49a + +clang-trunk: + description: clang main branch source code + attributes: + cached_task: false + fetch: + type: git + repo: https://github.com/llvm/llvm-project + branch: main + +# We build stable rust from source so the resulting compiler acts as a nightly +# rust compiler, allowing to use unstable features like -Zbuild-std and +# sanitizers. +rust-1.76.0: + description: Rust 1.76.0 source code + fetch: + type: git + include-dot-git: true + repo: https://github.com/rust-lang/rust/ + revision: 07dca489ac2d933c78d3c5158e3f43beefeb02ce + +wasi-sdk-11: + description: wasi-sdk-11 source code + fetch: + type: git + repo: https://github.com/WebAssembly/wasi-sdk + revision: ceabbfe181599bca83d81e087a229797e472c09c + +wasi-sdk: + description: wasi-sdk-20 source code + fetch: + type: git + repo: https://github.com/WebAssembly/wasi-sdk + revision: 935fe1acd2fcd7ea4aed2d5ee4527482862b6344 + +ninja: + description: ninja 1.9.0 + fetch: + type: static-url + url: https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-win.zip + sha256: 2d70010633ddaacc3af4ffbd21e22fae90d158674a09e132e06424ba3ab036e9 + size: 254497 + artifact-name: ninja.tar.zst + add-prefix: ninja/bin/ + +cmake: + description: cmake 3.25.1 + fetch: + type: static-url + url: https://github.com/Kitware/CMake/releases/download/v3.25.1/cmake-3.25.1-windows-x86_64.zip + sha256: d93958d87cc9b91983489f0b37a268b03a3c891894d11f5437fa2a5ce94aab24 + size: 41460154 + artifact-name: cmake.tar.zst + strip-components: 1 + add-prefix: cmake/ + +dump-syms: + description: dump_syms source code + fetch: + type: git + repo: https://github.com/mozilla/dump_syms/ + revision: b1951e4ccec48a2e97460a7ec40be35aa79e0037 + +rust-minidump: + description: rust-minidump 0.19.1 source code (for minidump-stackwalk) + fetch: + type: git + repo: https://github.com/rust-minidump/rust-minidump/ + revision: c3de84b061339c686a572fb9f059e7ba3fad38d6 + +fix-stacks: + description: fix-stacks source code + fetch: + type: git + repo: https://github.com/mozilla/fix-stacks/ + revision: 1fb1bcc8cb4dd65fbe342853954651563a0a88e7 + +winchecksec: + description: winchecksec source code + fetch: + type: git + repo: https://github.com/trailofbits/winchecksec/ + revision: 93ffe67dbfc757bf6f440d80b8acf88e652ed60a + +sonatype-nexus: + description: Sonatype Nexus Maven repository service + fetch: + type: static-url + url: https://download.sonatype.com/nexus/oss/nexus-2.14.18-01-bundle.tar.gz + sha256: 350af8b270bec7fda5861a15b8a5b7870fd8903d0b9a210754113d5a966ce6a6 + size: 83493896 + artifact-name: sonatype-nexus.tar.zst + strip-components: 1 + add-prefix: sonatype-nexus/ + +jdk-8-linux64: + description: Java 8 JDK + fetch: + type: static-url + url: https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u312-b07/OpenJDK8U-jdk_x64_linux_hotspot_8u312b07.tar.gz + sha256: 699981083983b60a7eeb511ad640fae3ae4b879de5a3980fe837e8ade9c34a08 + size: 103016010 + artifact-name: jdk-8.tar.zst + strip-components: 1 + add-prefix: jdk-8/ + +makecab: + description: makecab source code + fetch: + type: git + repo: https://github.com/luser/rust-makecab/ + revision: 236cd02baefa754fc7a61b161c71d2aa13a87c2a + +nodejs-12-linux64: + description: nodejs 12 for x64 linux + fetch: + type: static-url + url: https://nodejs.org/dist/v12.22.12/node-v12.22.12-linux-x64.tar.xz + sha256: e6d052364bfa2c17da92cf31794100cfd709ba147415ddaeed2222eec9ca1469 + size: 14584388 + artifact-name: nodejs.tar.zst + strip-components: 1 + add-prefix: node/ + +nodejs-16-linux64: + description: nodejs 16 for x64 linux + fetch: + type: static-url + url: https://nodejs.org/dist/v16.19.0/node-v16.19.0-linux-x64.tar.xz + sha256: c88b52497ab38a3ddf526e5b46a41270320409109c3f74171b241132984fd08f + size: 22492000 + artifact-name: nodejs.tar.zst + strip-components: 1 + add-prefix: node/ + +nodejs-16-macosx64: + description: nodejs 16 for x64 macOS + fetch: + type: static-url + url: https://nodejs.org/dist/v16.19.0/node-v16.19.0-darwin-x64.tar.xz + sha256: 601d1d632b9815dbb647f5cd440a95fa651110b5b4bcaf07ed3aa7886525716b + size: 20975524 + artifact-name: nodejs.tar.zst + strip-components: 1 + add-prefix: node/ + +nodejs-18-macosx64: + description: nodejs 18 for x64 macOS + fetch: + type: static-url + url: https://nodejs.org/dist/v18.19.0/node-v18.19.0-darwin-x64.tar.xz + sha256: 4f60b40071c6a67482b99d22a5265839177b8706a2b13b493396f368f0b42b00 + size: 22496376 + artifact-name: nodejs.tar.zst + strip-components: 1 + add-prefix: node/ + +nodejs-16-macosx64-arm64: + description: nodejs 16 for arm64 macOS + fetch: + type: static-url + url: https://nodejs.org/dist/v16.19.0/node-v16.19.0-darwin-arm64.tar.xz + sha256: 7313c9db5f5140ece847a97f366032a10bddb6d87fa28a361ada918addcd5c73 + size: 19363804 + artifact-name: nodejs.tar.zst + strip-components: 1 + add-prefix: node/ + +nodejs-18-macosx64-arm64: + description: nodejs 18 for arm64 macOS + fetch: + type: static-url + url: https://nodejs.org/dist/v18.19.0/node-v18.19.0-darwin-arm64.tar.xz + sha256: 857885257c586fb13c93d33d326ca82056ba8b7445ce27cf34dd406add04158e + size: 20768464 + artifact-name: nodejs.tar.zst + strip-components: 1 + add-prefix: node/ + +nodejs-16-win32: + description: nodejs 16 for x86 Windows + fetch: + type: static-url + url: https://nodejs.org/dist/v16.19.0/node-v16.19.0-win-x86.zip + sha256: 17e2bf8ed00b3d15321743104104c8b6ef55677dfc18ee2ed44de64fbf2c4def + size: 25424808 + artifact-name: nodejs.tar.zst + strip-components: 1 + add-prefix: node/ + +nodejs-18-win32: + description: nodejs 18 for x86 Windows + fetch: + type: static-url + url: https://nodejs.org/dist/v18.19.0/node-v18.19.0-win-x86.zip + sha256: 3171148f735954bdca8adccb2200379e61142e0f5a2bdb4ca6432afb0d9951df + size: 27504941 + artifact-name: nodejs.tar.zst + strip-components: 1 + add-prefix: node/ + +nodejs-16-win64: + description: nodejs 16 for x64 Windows + fetch: + type: static-url + url: https://nodejs.org/dist/v16.19.0/node-v16.19.0-win-x64.zip + sha256: 534ca7a24e999c81cec847a498cc43d47e2bb158f6edf639e5297f2718350e96 + size: 27072850 + artifact-name: nodejs.tar.zst + strip-components: 1 + add-prefix: node/ + +nodejs-18-win64: + description: nodejs 18 for x64 Windows + fetch: + type: static-url + url: https://nodejs.org/dist/v18.19.0/node-v18.19.0-win-x64.zip + sha256: 5311913d45e1fcc3643c58d1e3926eb85437b180f025fe5857413c9f02403645 + size: 29332158 + artifact-name: nodejs.tar.zst + strip-components: 1 + add-prefix: node/ + +nodejs-18-source: + description: nodejs 18 source + fetch: + type: static-url + url: https://nodejs.org/dist/v18.19.0/node-v18.19.0.tar.xz + sha256: f52b41af20596a9abd8ed75241837ec43945468221448bbf841361e2091819b6 + size: 41248748 + artifact-name: nodejs.tar.zst + strip-components: 1 + add-prefix: node/ + +gnumake: + description: GNU make source + fetch: + type: static-url + url: https://ftp.gnu.org/gnu/make/make-4.3.tar.gz + sha256: e05fdde47c5f7ca45cb697e973894ff4f5d79e13b750ed57d7b66d8defc78e19 + size: 2317073 + artifact-name: make.tar.zst + strip-components: 1 + add-prefix: make/ + +msix-packaging: + description: Microsoft msix-packaging + fetch: + type: git + repo: https://github.com/mozilla/msix-packaging + revision: 8164b7ac5a67688e18fa2497fb31ba13ce9bfb15 + +pkgconf: + description: pkgconf 1.8.0 + fetch: + type: static-url + url: https://distfiles.dereferenced.org/pkgconf/pkgconf-1.8.0.tar.xz + sha256: ef9c7e61822b7cb8356e6e9e1dca58d9556f3200d78acab35e4347e9d4c2bbaf + size: 296304 + artifact-name: pkgconf.tar.zst + strip-components: 1 + add-prefix: pkgconf/ + +afl-plus-plus-4.0: + description: AFL++ 4.0x source + fetch: + type: git + repo: https://github.com/AFLplusplus/AFLplusplus + revision: 0d164e4c1811c4d05f940f78e90fc56b661fb3b4 + +cargo-vet: + description: cargo-vet source + fetch: + type: git + repo: https://github.com/mozilla/cargo-vet + revision: 5bd670061a22074eb5ee9d69feccc5900df00ec3 + +symbol-scrapers: + description: Linux distribution symbol scraper source + fetch: + type: git + repo: https://github.com/mozilla/symbol-scrapers + revision: 95ea2e4c5f82469cb394620c8d332e3457466e45 + +xz-5.4.4: + description: xz 5.4.4 source code + fetch: + type: static-url + url: https://tukaani.org/xz/xz-5.4.4.tar.gz + sha256: aae39544e254cfd27e942d35a048d592959bd7a79f9a624afb0498bb5613bdf8 + size: 2874706 + artifact-name: xz-source.tar.zst + strip-components: 1 + add-prefix: xz-source/ + +cpython-3.8.10: + description: cpython 3.8.10 source code + fetch: + type: static-url + url: https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tgz + sha256: b37ac74d2cbad2590e7cd0dd2b3826c29afe89a734090a87bf8c03c45066cb65 + size: 24720640 + artifact-name: cpython-source.tar.zst + strip-components: 1 + add-prefix: cpython-source/ + +cpython-3.8.10.exe: + description: cpython 3.8.10 installer + fetch: + type: static-url + url: https://www.python.org/ftp/python/3.8.10/python-3.8.10-amd64.exe + sha256: 7628244cb53408b50639d2c1287c659f4e29d3dfdb9084b11aed5870c0c6a48a + size: 28296784 + artifact-name: python-3.8.10-amd64.exe + +cpython-3.11.7: + description: cpython 3.11.7 source code + fetch: + type: static-url + url: https://www.python.org/ftp/python/3.11.7/Python-3.11.7.tgz + sha256: 068c05f82262e57641bd93458dfa883128858f5f4997aad7a36fd25b13b29209 + size: 26601929 + artifact-name: cpython-source.tar.zst + strip-components: 1 + add-prefix: cpython-source/ + +cpython-3.11.7.exe: + description: cpython 3.11.7 installer + fetch: + type: static-url + url: https://www.python.org/ftp/python/3.11.7/python-3.11.7-amd64.exe + sha256: c117c6444494bbe4cc937e8a5a61899d53f7f5c5bc573c5d130304e457d54024 + size: 26009544 + artifact-name: python-3.11.7-amd64.exe + +windows-rs: + description: Source of the windows rust crate + fetch: + type: static-url + url: https://crates.io/api/v1/crates/windows/0.52.0/download + sha256: e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be + size: 11843715 + artifact-name: windows-rs.tar.zst + strip-components: 1 + add-prefix: windows-rs/ diff --git a/taskcluster/ci/fetch/updatebot.yml b/taskcluster/ci/fetch/updatebot.yml new file mode 100644 index 0000000000..b757a383f8 --- /dev/null +++ b/taskcluster/ci/fetch/updatebot.yml @@ -0,0 +1,33 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +cloud-sql-proxy-1.25.0: + description: Windows executable for Google's Cloud SQL Proxy + fetch: + type: static-url + url: https://storage.googleapis.com/cloudsql-proxy/v1.25.0/cloud_sql_proxy_x64.exe + sha256: b922a8d3924499b829bfe53a25382f9b340ea804a738e2a7d8b34957a329a2dd + size: 16195072 + artifact-name: cloud_sql_proxy.exe +php-windows-7.4.24: + description: VC15 x64 Non Thread Safe (2021-Sep-21 16:58:34) + fetch: + type: static-url + url: https://windows.php.net/downloads/releases/archives/php-7.4.24-nts-Win32-vc15-x64.zip + sha256: 1e93fb390ab2761a47d27c97225a518759731c632c0dd87436cbf25f19582436 + size: 26067094 + artifact-name: php.tar.zst + add-prefix: php-win/ +arcanist: + description: checkout of arcanist for running on Windows + fetch: + type: git + repo: https://github.com/phacility/arcanist + revision: a028291f8e5e79b6446ad67ed8b0be9c5ec8f029 +depot_tools: + description: Google's depot_tools package + fetch: + type: git + repo: https://chromium.googlesource.com/chromium/tools/depot_tools.git + revision: 7b3351443198f4e7d068999b169385b55a43679a diff --git a/taskcluster/ci/fuzzing/kind.yml b/taskcluster/ci/fuzzing/kind.yml new file mode 100644 index 0000000000..68e212bb9c --- /dev/null +++ b/taskcluster/ci/fuzzing/kind.yml @@ -0,0 +1,69 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.source_test:transforms + - taskgraph.transforms.task_context + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +kind-dependencies: + - fetch + - toolchain + - build + +job-defaults: + worker-type: b-linux-gcp + worker: + max-run-time: 3600 + docker-image: {in-tree: debian12-amd64-build} + use-system-python: false + treeherder: + kind: test + tier: 3 + task-context: + from-object: {} + substitution-fields: [] + if-dependencies: [build] + +jobs: + simple: + platform: linux64/opt + require-build: + linux64/opt: build-linux64/opt + description: Simple Fuzzing Test + treeherder: + symbol: simple-fuzzing + fetches: + build: + - target.jsshell.zip + - target.fuzztest.tests.tar.gz + worker: + env: + LD_LIBRARY_PATH: /builds/worker/fetches + JSSHELL: ./js + run: + using: run-task + command: >- + cd $MOZ_FETCHES_DIR && + python3 tools/fuzzing/smoke/smoke.py + + python: + platform: linux64-asan-fuzzing/opt + require-build: + linux64-asan-fuzzing/opt: build-linux64-asan-fuzzing/opt + description: Python Fuzzing Smoke Tests + treeherder: + symbol: fuzzing-python + fetches: + build: + - target.tar.bz2 + run: + using: run-task + cwd: '{checkout}' + command: > + export GECKO_BINARY_PATH=$MOZ_FETCHES_DIR/firefox/firefox && + ./mach python-test --subsuite fuzzing diff --git a/taskcluster/ci/fxrecord/kind.yml b/taskcluster/ci/fxrecord/kind.yml new file mode 100644 index 0000000000..7ff7816e7e --- /dev/null +++ b/taskcluster/ci/fxrecord/kind.yml @@ -0,0 +1,46 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - build + +only-for-build-platforms: + - win64-shippable/opt + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.fxrecord + - gecko_taskgraph.transforms.release_notifications + - gecko_taskgraph.transforms.task + +jobs: + fxrecord: + name: notify-fxrecord-failure + description: "Desktop Startup Visual Metrics" + from-deps: + group-by: single-with-filters + run-on-projects: + - "mozilla-central" + worker-type: performance-hardware/gecko-t-fxrecorder + worker: + implementation: generic-worker + max-run-time: 1800 + os: windows + command: ["C:\\fxrecorder\\fxrecorder.exe --config C:\\fxrecorder\\fxrecord.toml record"] + treeherder: + symbol: fxrec(1st) + tier: 2 + kind: other + notifications: + status-types: + - "on-failed" + - "on-exception" + subject: fxrecord run failed + message: fxrecord run failed + emails: + - "barret@mozilla.com" + - "perftest-alerts@mozilla.com" diff --git a/taskcluster/ci/geckodriver-mac-notarization/kind.yml b/taskcluster/ci/geckodriver-mac-notarization/kind.yml new file mode 100644 index 0000000000..a90e6faa2e --- /dev/null +++ b/taskcluster/ci/geckodriver-mac-notarization/kind.yml @@ -0,0 +1,37 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.mac_notarization + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.geckodriver_mac_notarization + - gecko_taskgraph.transforms.task + +kind-dependencies: + - geckodriver-signing + +only-for-build-platforms: + - macosx64-geckodriver/opt + - macosx64-aarch64-geckodriver/opt + +jobs: + geckodriver-mac-notarization: + from-deps: + group-by: single-with-filters + worker-type: linux-signing + treeherder: + symbol: TM(gd-n) + worker: + implementation: scriptworker-signing + max-run-time: 3600 + upstream-artifacts: + - taskType: signing + paths: + - public/build/geckodriver.tar.gz + formats: ["apple_notarization_geckodriver"] + taskId: + task-reference: <geckodriver-signing> diff --git a/taskcluster/ci/geckodriver-signing/kind.yml b/taskcluster/ci/geckodriver-signing/kind.yml new file mode 100644 index 0000000000..08007495e5 --- /dev/null +++ b/taskcluster/ci/geckodriver-signing/kind.yml @@ -0,0 +1,20 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.geckodriver_signing + - gecko_taskgraph.transforms.task + +kind-dependencies: + - toolchain + +jobs: + geckodriver-signing: + from-deps: + with-attributes: + geckodriver: [true] diff --git a/taskcluster/ci/generate-profile/kind.yml b/taskcluster/ci/generate-profile/kind.yml new file mode 100644 index 0000000000..839c5aa7fe --- /dev/null +++ b/taskcluster/ci/generate-profile/kind.yml @@ -0,0 +1,324 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + - instrumented-build + +transforms: + - gecko_taskgraph.transforms.build_attrs:transforms + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.run_pgo_profile:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + + +job-defaults: + treeherder: + symbol: Bpgo(run) + kind: build + tier: 1 + run-on-projects: ['release'] + use-system-python: false + +jobs: + linux-shippable/opt: + description: "Linux Profile Generation" + shipping-phase: build + shipping-product: firefox + index: + product: firefox + job-name: linux-profile + treeherder: + platform: linux32-shippable/opt + worker-type: b-linux-gcp + worker: + chain-of-trust: true + env: + NEED_XVFB: "true" + max-run-time: 1200 + docker-image: {in-tree: ubuntu1804-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: ['release'] + fetches: + toolchain: + - linux64-clang + - linux64-minidump-stackwalk + + linux64-shippable/opt: + description: "Linux64 Profile Generation" + shipping-phase: build + shipping-product: firefox + index: + product: firefox + job-name: linux64-profile + treeherder: + platform: linux64-shippable/opt + worker-type: b-linux-gcp + worker: + chain-of-trust: true + env: + NEED_XVFB: "true" + max-run-time: 1200 + docker-image: {in-tree: ubuntu1804-test} + artifacts: + - type: directory + name: public/build + path: /builds/worker/artifacts/ + run: + using: run-task + cwd: '{checkout}' + command: > + ./taskcluster/scripts/misc/run-profileserver.sh + fetches: + toolchain: + - linux64-clang + - linux64-minidump-stackwalk + + android-x86-shippable/opt: + description: "Android 5.0 x86 Profile Generation" + shipping-phase: build + shipping-product: fennec + index: + product: mobile + job-name: android-x86-profile + treeherder: + platform: android-5-0-x86/pgo + worker-type: t-linux-xlarge-pgo + worker: + chain-of-trust: true + max-run-time: 2700 + docker-image: {in-tree: ubuntu1804-test} + env: + WORKING_DIR: "/builds/worker" + MOZHARNESS_PATH: "/builds/worker/checkouts/gecko/testing/mozharness" + PYTHON: "/builds/worker/checkouts/gecko/mach python" + artifacts: + - type: directory + name: public/build + path: /builds/worker/artifacts/ + run: + using: mozharness + job-script: taskcluster/scripts/tester/test-linux.sh + script: android_emulator_pgo.py + tooltool-downloads: internal + options: [installer-path=/builds/worker/fetches/geckoview-test_runner.apk] + config: + - android/android_common.py + - android/android-x86_64-profile-generation.py + - android/android_pgo.py + fetches: + toolchain: + - linux64-clang + - linux64-minidump-stackwalk + - android-sdk-linux + - android-system-image-x86_64-linux + - android-avd-x86_64-linux + + android-x86_64-shippable/opt: + description: "Android 5.0 x86_64 Profile Generation" + shipping-phase: build + shipping-product: fennec + index: + product: mobile + job-name: android-x86_64-profile + treeherder: + platform: android-5-0-x86_64/pgo + worker-type: t-linux-xlarge-pgo + worker: + chain-of-trust: true + max-run-time: 2700 + docker-image: {in-tree: ubuntu1804-test} + env: + WORKING_DIR: "/builds/worker" + MOZHARNESS_PATH: "/builds/worker/checkouts/gecko/testing/mozharness" + PYTHON: "/builds/worker/checkouts/gecko/mach python" + artifacts: + - type: directory + name: public/build + path: /builds/worker/artifacts/ + run: + using: mozharness + job-script: taskcluster/scripts/tester/test-linux.sh + script: android_emulator_pgo.py + tooltool-downloads: internal + options: [installer-path=/builds/worker/fetches/geckoview-test_runner.apk] + config: + - android/android_common.py + - android/android-x86_64-profile-generation.py + - android/android_pgo.py + fetches: + toolchain: + - linux64-clang + - linux64-minidump-stackwalk + - android-sdk-linux + - android-system-image-x86_64-linux + - android-avd-x86_64-linux + + android-aarch64-shippable/opt: + description: "Android 5.0 Aarch64 Profile Generation" + shipping-phase: build + shipping-product: fennec + index: + product: mobile + job-name: android-aarch64-profile + treeherder: + platform: android-5-0-aarch64/pgo + worker-type: b-linux-kvm-gcp + worker: + chain-of-trust: true + max-run-time: 2700 + kvm: true # for access to /dev/kvm for hw accel in the emulator + docker-image: {in-tree: ubuntu1804-test} + env: + WORKING_DIR: "/builds/worker" + MOZHARNESS_PATH: "/builds/worker/checkouts/gecko/testing/mozharness" + PYTHON: "/builds/worker/checkouts/gecko/mach python" + artifacts: + - type: directory + name: public/build + path: /builds/worker/artifacts/ + run: + using: mozharness + job-script: taskcluster/scripts/tester/test-linux.sh + script: android_emulator_pgo.py + tooltool-downloads: internal + options: [installer-path=/builds/worker/fetches/geckoview-test_runner.apk] + config: + - android/android_common.py + - android/android-aarch64-profile-generation.py + - android/android_pgo.py + fetches: + toolchain: + - linux64-clang + - linux64-minidump-stackwalk + - android-sdk-linux + - android31-system-image-x86_64-linux + - android31-avd-x86_64-linux + + win32-shippable/opt: + description: "Win32 Profile Generation" + shipping-phase: build + shipping-product: firefox + index: + product: firefox + job-name: win32-profile + treeherder: + platform: windows2012-32-shippable/opt + worker-type: b-win2022 + worker: + chain-of-trust: true + max-run-time: 2400 + env: + UPLOAD_PATH: "artifacts" + 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 + fetches: + toolchain: + - win64-clang-toolchain + - win32-minidump-stackwalk + + win64-shippable/opt: + description: "Win64 Profile Generation" + shipping-phase: build + shipping-product: firefox + index: + product: firefox + job-name: win64-profile + treeherder: + platform: windows2012-64-shippable/opt + worker-type: b-win2022 + worker: + chain-of-trust: true + max-run-time: 2400 + env: + UPLOAD_PATH: "artifacts" + 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 + fetches: + toolchain: + - win64-clang-toolchain + - win32-minidump-stackwalk + + macosx64-shippable/opt: + description: "macosx64 Profile Generation" + shipping-phase: build + shipping-product: firefox + index: + product: firefox + job-name: macosx64-profile + treeherder: + platform: macosx1015-64-shippable/opt + worker-type: b-osx-1015 + worker: + chain-of-trust: true + max-run-time: 7200 + env: + SHELL: "/bin/bash" + 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 + fetches: + toolchain: + - macosx64-clang + - macosx64-minidump-stackwalk + + macosx64-aarch64-shippable/opt: + description: "macosx64 aarch64 Profile Generation" + shipping-phase: build + shipping-product: firefox + index: + product: firefox + job-name: macosx64-aarch64-profile + treeherder: + platform: macosx1100-64-shippable/opt + worker-type: b-osx-arm64 + worker: + chain-of-trust: true + max-run-time: 7200 + env: + SHELL: "/bin/bash" + 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 + fetches: + toolchain: + - macosx64-clang + - macosx64-minidump-stackwalk diff --git a/taskcluster/ci/github-sync/kind.yml b/taskcluster/ci/github-sync/kind.yml new file mode 100644 index 0000000000..7c0b8136c4 --- /dev/null +++ b/taskcluster/ci/github-sync/kind.yml @@ -0,0 +1,53 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + - build + +transforms: + - gecko_taskgraph.transforms.github_sync:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + attributes: + retrigger: true + run-on-projects: ['mozilla-central-only'] + worker-type: b-linux-gcp + treeherder: + platform: other/opt + tier: 2 + kind: other + worker: + max-run-time: 3600 + docker-image: {in-tree: github-sync} + run: + sparse-profile: github-sync + using: run-task + +jobs: + webrender: + description: Sync webrender to github mirror + secret: gecko/gfx-github-sync/token + run: + command: '$GECKO_PATH/tools/github-sync/sync-to-github.sh webrender gfx/wr servo/webrender @bors-servo' + when: + files-changed: + - 'gfx/wr/**' + treeherder: + symbol: GhS(wr) + + qcms: + description: Sync qcms to github mirror + secret: gecko/gfx-github-sync/token + run: + command: '$GECKO_PATH/tools/github-sync/sync-to-github.sh qcms gfx/qcms FirefoxGraphics/qcms @jrmuizel' + when: + files-changed: + - 'gfx/qcms/**' + treeherder: + symbol: GhS(qcms) diff --git a/taskcluster/ci/hazard/kind.yml b/taskcluster/ci/hazard/kind.yml new file mode 100644 index 0000000000..569141e8c8 --- /dev/null +++ b/taskcluster/ci/hazard/kind.yml @@ -0,0 +1,83 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + +transforms: + - gecko_taskgraph.transforms.build_attrs:transforms + - gecko_taskgraph.transforms.build_lints:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + attributes: + retrigger: true + treeherder: + kind: build + tier: 1 + worker-type: b-linux-gcp + worker: + max-run-time: 10800 + docker-image: {in-tree: debian12-amd64-build} + use-system-python: false + +jobs: + linux64-shell-haz/debug: + description: "JS Shell Hazard Analysis Linux" + index: + product: firefox + job-name: shell-haz-debug + treeherder: + platform: linux64/debug + symbol: SM(H) + run: + using: hazard + command: > + cd /builds/worker/checkouts/gecko/taskcluster/scripts/builder + && ./build-haz-linux.sh --project js $HOME/workspace + when: + files-changed: + - js/public/** + - js/src/** + fetches: + toolchain: + - linux64-clang + - linux64-gcc-9 + - linux64-gcc-sixgill + - linux64-rust + - linux64-cbindgen + - linux64-node + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + + linux64-haz/debug: + description: "Browser Hazard Analysis Linux" + index: + product: firefox + job-name: browser-haz-debug + treeherder: + platform: linux64/debug + symbol: H + run: + using: hazard + command: > + cd /builds/worker/checkouts/gecko/taskcluster/scripts/builder + && ./build-haz-linux.sh --project browser $HOME/workspace + fetches: + toolchain: + - linux64-clang + - linux64-gcc-9 + - linux64-gcc-sixgill + - linux64-rust + - linux64-cbindgen + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + optimization: + skip-unless-backstop: null diff --git a/taskcluster/ci/instrumented-build/kind.yml b/taskcluster/ci/instrumented-build/kind.yml new file mode 100644 index 0000000000..0350bc51af --- /dev/null +++ b/taskcluster/ci/instrumented-build/kind.yml @@ -0,0 +1,409 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + - fetch + +transforms: + - gecko_taskgraph.transforms.build:transforms + - gecko_taskgraph.transforms.build_attrs:transforms + - gecko_taskgraph.transforms.build_lints:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.artifact:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + shipping-phase: build + treeherder: + symbol: Bpgo(instr) + tier: 1 + worker: + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: instrumented + MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE: system + use-system-python: false + run: + using: mozharness + actions: [get-secrets, build] + script: mozharness/scripts/fx_desktop_build.py + secrets: true + use-sccache: + by-release-level: + production: false + staging: true + fetches: + toolchain: + - linux64-sccache + run-on-projects: ['release'] + +jobs: + linux-shippable/opt: + description: "Linux Instrumented" + index: + product: firefox + job-name: instrumented-linux + shipping-product: firefox + treeherder: + platform: linux32-shippable/opt + worker-type: b-linux-gcp + run: + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_32_builds.py + mozconfig-variant: profile-generate + tooltool-downloads: public + run-on-projects: ['release'] + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump_syms + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-i686-linux-gnu + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + + linux64-shippable/opt: + description: "Linux64 Instrumented" + index: + product: firefox + job-name: instrumented-linux64 + shipping-product: firefox + treeherder: + platform: linux64-shippable/opt + worker-type: b-linux-gcp + run: + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + mozconfig-variant: profile-generate + tooltool-downloads: public + 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 + + macosx64-shippable/opt: + description: "MacOS X x64 Cross-compile Instrumented" + shipping-phase: build + shipping-product: firefox + treeherder: + platform: osx-shippable/opt + worker-type: b-linux-gcp + worker: + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: instrumented + 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 + 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 + + macosx64-aarch64-shippable/opt: + description: "MacOS X aarch64 Cross-compile Instrumented" + shipping-phase: build + shipping-product: firefox + treeherder: + platform: osx-aarch64-shippable/opt + worker-type: b-linux-gcp + worker: + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: instrumented + 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 + extra-config: + mozconfig_platform: macosx64-aarch64 + 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-shippable/opt: + description: "Android 5.0 x86 PGO instrumented" + index: + product: mobile + job-name: instrumented-android-x86 + shipping-product: fennec + treeherder: + platform: android-5-0-x86/pgo + worker-type: b-linux-gcp + worker: + docker-image: {in-tree: android-build} + env: + GRADLE_USER_HOME: "/builds/worker/checkouts/gecko/mobile/android/gradle/dotgradle-offline" + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest" + artifacts: + - name: public/build + path: /builds/worker/artifacts/ + type: directory + - name: public/build/geckoview-androidTest.apk + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/geckoview/outputs/apk/androidTest/withGeckoBinaries/debug/geckoview-withGeckoBinaries-debug-androidTest.apk + type: file + - name: public/build/geckoview-test_runner.apk + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/test_runner/outputs/apk/withGeckoBinaries/debug/test_runner-withGeckoBinaries-debug.apk + type: file + - name: public/build/geckoview-test_runner.aab + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/test_runner/outputs/bundle/withGeckoBinariesDebug/test_runner-withGeckoBinaries-debug.aab + type: file + - name: public/build/geckoview_example.apk + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/geckoview_example/outputs/apk/withGeckoBinaries/debug/geckoview_example-withGeckoBinaries-debug.apk + type: file + - name: public/build/geckoview_example.aab + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/geckoview_example/outputs/bundle/withGeckoBinariesDebug/geckoview_example-withGeckoBinaries-debug.aab + type: file + run: + config: + - builds/releng_base_android_64_builds.py + custom-build-variant-cfg: x86-profile-generate + tooltool-downloads: internal + fetches: + toolchain: + - android-gradle-dependencies + - android-ndk-linux + - android-sdk-linux + - linux64-jdk + - linux64-clang + - linux64-rust-android + - linux64-rust-size + - linux64-cbindgen + - linux64-dump_syms + - linux64-nasm + - linux64-node + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + + android-x86_64-shippable/opt: + description: "Android 5.0 x86_64 PGO instrumented" + index: + product: mobile + job-name: instrumented-android-x86_64 + shipping-product: fennec + treeherder: + platform: android-5-0-x86_64/pgo + worker-type: b-linux-gcp + worker: + docker-image: {in-tree: android-build} + env: + GRADLE_USER_HOME: "/builds/worker/checkouts/gecko/mobile/android/gradle/dotgradle-offline" + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest" + artifacts: + - name: public/build + path: /builds/worker/artifacts/ + type: directory + - name: public/build/geckoview-androidTest.apk + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/geckoview/outputs/apk/androidTest/withGeckoBinaries/debug/geckoview-withGeckoBinaries-debug-androidTest.apk + type: file + - name: public/build/geckoview-test_runner.apk + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/test_runner/outputs/apk/withGeckoBinaries/debug/test_runner-withGeckoBinaries-debug.apk + type: file + - name: public/build/geckoview-test_runner.aab + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/test_runner/outputs/bundle/withGeckoBinariesDebug/test_runner-withGeckoBinaries-debug.aab + type: file + - name: public/build/geckoview_example.apk + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/geckoview_example/outputs/apk/withGeckoBinaries/debug/geckoview_example-withGeckoBinaries-debug.apk + type: file + - name: public/build/geckoview_example.aab + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/geckoview_example/outputs/bundle/withGeckoBinariesDebug/geckoview_example-withGeckoBinaries-debug.aab + type: file + run: + config: + - builds/releng_base_android_64_builds.py + custom-build-variant-cfg: x86_64-profile-generate + tooltool-downloads: internal + fetches: + toolchain: + - android-gradle-dependencies + - android-ndk-linux + - android-sdk-linux + - linux64-jdk + - linux64-clang + - linux64-rust-android + - linux64-rust-size + - linux64-cbindgen + - linux64-dump_syms + - linux64-nasm + - linux64-node + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + + android-aarch64-shippable/opt: + description: "Android 5.0 AArch64 PGO instrumented" + index: + product: mobile + job-name: instrumented-android-aarch64 + shipping-product: fennec + treeherder: + platform: android-5-0-aarch64/pgo + worker-type: b-linux-gcp + worker: + docker-image: {in-tree: android-build} + env: + GRADLE_USER_HOME: "/builds/worker/checkouts/gecko/mobile/android/gradle/dotgradle-offline" + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest" + artifacts: + - name: public/build + path: /builds/worker/artifacts/ + type: directory + - name: public/build/geckoview-androidTest.apk + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/geckoview/outputs/apk/androidTest/withGeckoBinaries/debug/geckoview-withGeckoBinaries-debug-androidTest.apk + type: file + - name: public/build/geckoview-test_runner.apk + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/test_runner/outputs/apk/withGeckoBinaries/debug/test_runner-withGeckoBinaries-debug.apk + type: file + - name: public/build/geckoview-test_runner.aab + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/test_runner/outputs/bundle/withGeckoBinariesDebug/test_runner-withGeckoBinaries-debug.aab + type: file + - name: public/build/geckoview_example.apk + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/geckoview_example/outputs/apk/withGeckoBinaries/debug/geckoview_example-withGeckoBinaries-debug.apk + type: file + - name: public/build/geckoview_example.aab + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/geckoview_example/outputs/bundle/withGeckoBinariesDebug/geckoview_example-withGeckoBinaries-debug.aab + type: file + run: + config: + - builds/releng_base_android_64_builds.py + custom-build-variant-cfg: aarch64-profile-generate + tooltool-downloads: internal + fetches: + toolchain: + - android-gradle-dependencies + - android-ndk-linux + - android-sdk-linux + - linux64-jdk + - linux64-clang + - linux64-rust-android + - linux64-rust-size + - linux64-cbindgen + - linux64-dump_syms + - linux64-nasm + - linux64-node + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + + win32-shippable/opt: + description: "Win32 Shippable PGO Instrumented" + index: + product: firefox + job-name: instrumented-win32 + shipping-product: firefox + treeherder: + platform: windows2012-32-shippable/opt + worker-type: b-linux-gcp + run: + options: [append-env-variables-from-configs] + mozconfig-variant: profile-generate + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + extra-config: + stage_platform: win32 + mozconfig_platform: win32 + 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 + - windows-rs + fetch: + - upx-3.95-win + + win64-shippable/opt: + description: "Win64 Shippable PGO Instrumented" + index: + product: firefox + job-name: instrumented-win64 + shipping-product: firefox + treeherder: + platform: windows2012-64-shippable/opt + worker-type: b-linux-gcp + run: + options: [append-env-variables-from-configs] + mozconfig-variant: profile-generate + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + extra-config: + stage_platform: win64 + mozconfig_platform: win64 + 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 + - windows-rs + fetch: + - upx-3.95-win diff --git a/taskcluster/ci/l10n-bump/kind.yml b/taskcluster/ci/l10n-bump/kind.yml new file mode 100644 index 0000000000..2dd21e4068 --- /dev/null +++ b/taskcluster/ci/l10n-bump/kind.yml @@ -0,0 +1,131 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.release_version_bump:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + worker-type: tree + worker: + implementation: treescript + tags: [] + bump: false + dontbuild: + by-project: + mozilla-beta: false + default: true + ignore-closed-tree: + by-project: + autoland: true + default: false + push: + by-project: + mozilla-(central|beta): true + autoland: true + default: false + source-repo: + by-release-type: + beta: https://hg.mozilla.org/releases/mozilla-beta + nightly: https://hg.mozilla.org/mozilla-central + default: https://hg.mozilla.org/integration/autoland + l10n-bump-info: + by-release-type: + # XXX whenever the `beta` config changes, make sure to make + # the corresponding change in merge-automation/kind.yml + beta: + name: Firefox l10n changesets + path: browser/locales/l10n-changesets.json + version-path: browser/config/version.txt + l10n-repo-url: "https://hg.mozilla.org/l10n-central/%(locale)s/json-pushes?version=2&tipsonly=1" + ignore-config: + ja: + - macosx64 + - macosx64-devedition + ja-JP-mac: + - linux + - linux-devedition + - linux64 + - linux64-devedition + - win32 + - win32-devedition + - win64 + - win64-devedition + - win64-aarch64 + - win64-aarch64-devedition + platform-configs: + [ + { + "platforms": + [ + "linux", + "linux-devedition", + "linux64", + "linux64-devedition", + "macosx64", + "macosx64-devedition", + "win32", + "win32-devedition", + "win64", + "win64-devedition", + "win64-aarch64", + "win64-aarch64-devedition", + ], + "path": "browser/locales/shipped-locales", + }, + ] + default: + name: Firefox l10n changesets + path: browser/locales/l10n-changesets.json + l10n-repo-url: "https://hg.mozilla.org/l10n-central/%(locale)s/json-pushes?version=2&tipsonly=1" + version-path: browser/config/version.txt + ignore-config: + ja: + - macosx64 + - macosx64-devedition + ja-JP-mac: + - linux + - linux-devedition + - linux64 + - linux64-devedition + - win32 + - win32-devedition + - win64 + - win64-devedition + - win64-aarch64 + - win64-aarch64-devedition + platform-configs: + [ + { + "platforms": + [ + "linux", + "linux-devedition", + "linux64", + "linux64-devedition", + "macosx64", + "macosx64-devedition", + "win32", + "win32-devedition", + "win64", + "win64-devedition", + "win64-aarch64", + "win64-aarch64-devedition", + ], + "path": "browser/locales/all-locales", + }, + ] + +jobs: + l10n-bumper: + name: l10n_bumper + description: l10n changesets bumper + run-on-projects: [] + treeherder: + kind: build + platform: linux64/opt + symbol: l10n-bump(lb) + tier: 1 diff --git a/taskcluster/ci/l10n-cross-channel/kind.yml b/taskcluster/ci/l10n-cross-channel/kind.yml new file mode 100644 index 0000000000..da30306599 --- /dev/null +++ b/taskcluster/ci/l10n-cross-channel/kind.yml @@ -0,0 +1,41 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.cross_channel:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +jobs: + quarantine: + description: Push strings from all shipping trains to the quarantine strings repo + run-on-projects: [] + worker-type: b-linux-gcp + ssh-key-secret: + by-level: + "3": project/releng/gecko/build/level-3/l10n-cross-channel-quarantine-ssh + default: null + worker: + docker-image: {in-tree: push-to-try} + max-run-time: 3600 + artifacts: + - type: directory + name: public/build + path: /builds/worker/artifacts + env: + TASK_ID: {"task-reference": "<self>"} + TASKCLUSTER_PROXY_URL: http://taskcluster + treeherder: + platform: firefox-release/opt + tier: 1 + kind: build + symbol: Rel(l10n-cross-channel) + run: + using: mach + actions: + by-level: + "3": ["prep", "create", "push", "clean"] + default: ["prep", "create", "clean"] diff --git a/taskcluster/ci/l10n/kind.yml b/taskcluster/ci/l10n/kind.yml new file mode 100644 index 0000000000..d1effef2e6 --- /dev/null +++ b/taskcluster/ci/l10n/kind.yml @@ -0,0 +1,145 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.l10n + - gecko_taskgraph.transforms.job + - gecko_taskgraph.transforms.task + +kind-dependencies: + - build + - build-signing + - fetch + - repackage + - toolchain + +only-for-build-platforms: + - linux64-shippable/opt + - linux-shippable/opt + - macosx64-shippable/opt + - win32-shippable/opt + - win64-shippable/opt + +jobs: + l10n: + description: Localization + from-deps: + group-by: platform + locales-file: browser/locales/l10n-onchange-changesets.json + ignore-locales: + by-build-platform: + # OSX has a special locale for japanese + macosx64.*: [ja] + default: [ja-JP-mac] + run-time: + by-build-platform: + default: 900 + win.*: 1800 + secrets: false + fetches: + toolchain: + by-build-platform: + default: [] + macosx64.*: + - linux64-libdmg + - linux64-hfsplus + win.*: + - linux64-wine + - nsis + fetch: + by-build-platform: + default: [] + win.*: + - upx-3.95-win + tooltool: + by-build-platform: + default: internal + linux.*: public + index: + type: l10n + product: firefox + job-name: + by-build-platform: + linux(?!64).*: linux-opt + linux64.*: linux64-opt + macosx64.*: macosx64-opt + win32.*: win32-opt + win64.*: win64-opt + run-on-projects: + by-build-platform: + linux-shippable.*: ['release'] # Do not run on autoland - Bug 1599197 + default: ['all'] + worker-type: b-linux-gcp + treeherder: + symbol: L10n + tier: 1 + platform: + by-build-platform: + linux64: linux64/opt + linux64-shippable: linux64-shippable/opt + linux: linux32/opt + linux-shippable: linux32-shippable/opt + macosx64: osx-cross/opt + macosx64-shippable: osx-shippable/opt + win32: windows2012-32/opt + win32-shippable: windows2012-32-shippable/opt + win64: windows2012-64/opt + win64-shippable: windows2012-64-shippable/opt + env: + by-build-platform: + linux.*: # linux64 and 32 get same treatment here + EN_US_PACKAGE_NAME: target.tar.bz2 + EN_US_BINARY_URL: + artifact-reference: <build-signing/{artifact_prefix}> + macosx64.*: + EN_US_PACKAGE_NAME: target.dmg + EN_US_BINARY_URL: + artifact-reference: <repackage/{artifact_prefix}> + win.*: + EN_US_PACKAGE_NAME: target.zip + EN_US_BINARY_URL: + artifact-reference: <build-signing/{artifact_prefix}> + mozharness: + config: + by-build-platform: + linux(?!64).*: + - single_locale/firefox.py + - single_locale/linux32.py + - single_locale/tc_common.py + - single_locale/tc_linux_common.py + linux64.*: + - single_locale/firefox.py + - single_locale/linux64.py + - single_locale/tc_common.py + - single_locale/tc_linux_common.py + macosx64.*: + - single_locale/firefox.py + - single_locale/macosx64.py + - single_locale/tc_common.py + - single_locale/tc_macosx64.py + win32.*: + - single_locale/firefox.py + - single_locale/win32.py + - single_locale/tc_common.py + - single_locale/tc_win32.py + win64.*: + - single_locale/firefox.py + - single_locale/win64.py + - single_locale/tc_common.py + - single_locale/tc_win64.py + # no default, so we fail on new entries + actions: ['clone-locales', 'list-locales', 'setup', 'repack', 'summary'] + script: mozharness/scripts/desktop_l10n.py + when: + files-changed: + - browser/locales/l10n-onchange-changesets.json + - testing/mozharness/configs/single_locale/** + - testing/mozharness/mozharness/mozilla/l10n/locales.py + - testing/mozharness/scripts/desktop_l10n.py + - third_party/python/compare-locales/** + - toolkit/locales/** + - toolkit/mozapps/installer/** diff --git a/taskcluster/ci/mar-signing-autograph-stage/kind.yml b/taskcluster/ci/mar-signing-autograph-stage/kind.yml new file mode 100644 index 0000000000..711c28c44b --- /dev/null +++ b/taskcluster/ci/mar-signing-autograph-stage/kind.yml @@ -0,0 +1,34 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.mar_signing + - gecko_taskgraph.transforms.task + +kind-dependencies: + - repackage + +only-for-build-platforms: + - linux64-shippable/opt + +jobs: + mar-signing-autograph-stage: + from-deps: + group-by: single-with-filters + shipping-phase: null + treeherder-group: ms-stage + treeherder: + tier: 3 + description-suffix: 'autograph-stage mar signing test' + required_signoffs: + - mar-signing + run-on-projects: [] + shippable: false + attributes: + retrigger: true + worker-type: linux-depsigning diff --git a/taskcluster/ci/mar-signing-l10n/kind.yml b/taskcluster/ci/mar-signing-l10n/kind.yml new file mode 100644 index 0000000000..ad470915ef --- /dev/null +++ b/taskcluster/ci/mar-signing-l10n/kind.yml @@ -0,0 +1,39 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.mar_signing + - gecko_taskgraph.transforms.task + +kind-dependencies: + - repackage-l10n + +only-for-build-platforms: + - linux-shippable/opt + - linux64-shippable/opt + - macosx64-shippable/opt + - win32-shippable/opt + - win64-shippable/opt + - win64-aarch64-shippable/opt + - linux64-asan-reporter-shippable/opt + - linux-devedition/opt + - linux64-devedition/opt + - macosx64-devedition/opt + - win32-devedition/opt + - win64-devedition/opt + - win64-aarch64-devedition/opt + +jobs: + mar-signing-l10n: + from-deps: + group-by: single-with-filters + shipping-phase: promote + treeherder-group: ms + description-suffix: 'mar signing' + required_signoffs: + - mar-signing diff --git a/taskcluster/ci/mar-signing/kind.yml b/taskcluster/ci/mar-signing/kind.yml new file mode 100644 index 0000000000..f1337058d0 --- /dev/null +++ b/taskcluster/ci/mar-signing/kind.yml @@ -0,0 +1,40 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.mar_signing + - gecko_taskgraph.transforms.task + +kind-dependencies: + - repackage + +only-for-build-platforms: + - linux-shippable/opt + - linux64-shippable/opt + - macosx64-shippable/opt + - win32-shippable/opt + - win64-shippable/opt + - win64-aarch64-shippable/opt + - linux-devedition/opt + - linux64-devedition/opt + - macosx64-devedition/opt + - win32-devedition/opt + - win64-devedition/opt + - win64-aarch64-devedition/opt + - linux64-asan-reporter-shippable/opt + - win64-asan-reporter-shippable/opt + +jobs: + mar-signing: + from-deps: + group-by: single-with-filters + shipping-phase: promote + treeherder-group: ms + description-suffix: 'mar signing' + required_signoffs: + - mar-signing diff --git a/taskcluster/ci/maybe-release/kind.yml b/taskcluster/ci/maybe-release/kind.yml new file mode 100644 index 0000000000..8664e52168 --- /dev/null +++ b/taskcluster/ci/maybe-release/kind.yml @@ -0,0 +1,45 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.maybe_release:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + description: Check recent releases and trigger a new ship-it phase if worthwhile. + worker-type: shipit + worker: + implementation: shipit-maybe-release + scopes: + by-release-level: + production: + - project:releng:ship-it:server:production + - project:releng:ship-it:action:create-new-release + staging: + - project:releng:ship-it:server:staging + - project:releng:ship-it:action:create-new-release + run-on-projects: [] + treeherder: + symbol: Rel(maybe-release) + tier: 1 + kind: build + +jobs: + firefox: + name: maybe-release-firefox + shipping-product: firefox + worker: + phase: ship_firefox + treeherder: + platform: firefox-release/opt + + devedition: + name: maybe-release-devedition + shipping-product: devedition + worker: + phase: ship_devedition + treeherder: + platform: devedition-release/opt diff --git a/taskcluster/ci/merge-automation/kind.yml b/taskcluster/ci/merge-automation/kind.yml new file mode 100644 index 0000000000..8e2b34147e --- /dev/null +++ b/taskcluster/ci/merge-automation/kind.yml @@ -0,0 +1,72 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.merge_automation:transforms + - gecko_taskgraph.transforms.task:transforms + + +jobs: + merge-automation: + name: merge-automation + label: merge-automation + treeherder: + symbol: Rel(merge-automation) + tier: 1 + kind: build + platform: firefox-release/opt + description: Merge repositories for release management. + worker-type: tree + scopes: [] + worker: + implementation: treescript + tags: [] + bump: false + dontbuild: false + ignore-closed-tree: true + push: false + l10n-bump-info: + by-behavior: + central-to-beta: + name: Firefox l10n changesets + path: browser/locales/l10n-changesets.json + version-path: browser/config/version.txt + l10n-repo-url: "https://hg.mozilla.org/l10n-central/%(locale)s/json-pushes?version=2&tipsonly=1" + ignore-config: + ja: + - macosx64 + - macosx64-devedition + ja-JP-mac: + - linux + - linux-devedition + - linux64 + - linux64-devedition + - win32 + - win32-devedition + - win64 + - win64-devedition + - win64-aarch64 + - win64-aarch64-devedition + platform-configs: [{ + "platforms": [ + "linux", + "linux-devedition", + "linux64", + "linux64-devedition", + "macosx64", + "macosx64-devedition", + "win32", + "win32-devedition", + "win64", + "win64-devedition", + "win64-aarch64", + "win64-aarch64-devedition", + ], + "path": "browser/locales/shipped-locales", + }] + default: null + run-on-projects: [] + expiration-policy: long diff --git a/taskcluster/ci/openh264-plugin/kind.yml b/taskcluster/ci/openh264-plugin/kind.yml new file mode 100644 index 0000000000..993489e3f6 --- /dev/null +++ b/taskcluster/ci/openh264-plugin/kind.yml @@ -0,0 +1,226 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + +transforms: + - gecko_taskgraph.transforms.openh264:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + description: "Build OpenH264 plugin" + treeherder: + kind: build + symbol: h264 + tier: 2 + run-on-projects: [] + repo: 'https://github.com/cisco/openh264.git' + revision: '31c4d2e4a037526fd30d4e5c39f60885986cf865' + use-system-python: false + worker: + chain-of-trust: true + +jobs: + linux32/opt: + attributes: + build_platform: linux32 + build_type: opt + treeherder: + platform: linux32/opt + worker-type: b-linux-gcp + worker: + max-run-time: 1800 + artifacts: + - name: private/openh264 + path: /builds/worker/workspace/openh264/artifacts + type: directory + run: + using: mozharness + script: mozharness/scripts/openh264_build.py + config: + - openh264/linux32.py + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-dump_syms + - linux64-nasm + - sysroot-i686-linux-gnu + linux64/opt: + attributes: + build_platform: linux64 + build_type: opt + treeherder: + platform: linux64/opt + worker-type: b-linux-gcp + worker: + max-run-time: 1800 + artifacts: + - name: private/openh264 + path: /builds/worker/workspace/openh264/artifacts + type: directory + run: + using: mozharness + script: mozharness/scripts/openh264_build.py + config: + - openh264/linux64.py + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-dump_syms + - linux64-nasm + - sysroot-x86_64-linux-gnu + linux64-aarch64/opt: + attributes: + build_platform: linux64-aarch64 + build_type: opt + treeherder: + platform: linux64-aarch64/opt + worker-type: b-linux-gcp + worker: + max-run-time: 1800 + artifacts: + - name: private/openh264 + path: /builds/worker/workspace/openh264/artifacts + type: directory + run: + using: mozharness + script: mozharness/scripts/openh264_build.py + config: + - openh264/linux64-aarch64.py + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-dump_syms + - sysroot-x86_64-linux-gnu + - sysroot-aarch64-linux-gnu + macosx64/opt: + attributes: + build_platform: macosx64 + build_type: opt + treeherder: + platform: macosx64/opt + worker-type: b-linux-gcp + worker: + max-run-time: 1800 + artifacts: + - name: private/openh264 + path: /builds/worker/workspace/openh264/artifacts + type: directory + run: + using: mozharness + script: mozharness/scripts/openh264_build.py + config: + - openh264/macosx64.py + fetches: + toolchain: + - linux64-cctools-port + - linux64-clang + - linux64-dump_syms + - linux64-nasm + - macosx64-sdk-13.3 + macosx64-aarch64/opt: + attributes: + build_platform: macosx64-aarch64 + build_type: opt + treeherder: + platform: macosx64-aarch64/opt + worker-type: b-linux-gcp + worker: + max-run-time: 1800 + artifacts: + - name: private/openh264 + path: /builds/worker/workspace/openh264/artifacts + type: directory + run: + using: mozharness + script: mozharness/scripts/openh264_build.py + config: + - openh264/macosx64-aarch64.py + fetches: + toolchain: + - linux64-cctools-port + - linux64-clang + - linux64-dump_syms + - macosx64-sdk-13.3 + win32/opt: + attributes: + build_platform: win32 + build_type: opt + treeherder: + platform: win32/opt + worker-type: b-win2022 + worker: + max-run-time: 1800 + artifacts: + - name: private/openh264 + path: workspace/openh264/artifacts + type: directory + run: + using: mozharness + script: mozharness/scripts/openh264_build.py + config: + - openh264/win32.py + tooltool-downloads: internal + fetches: + toolchain: + - win64-clang + - win64-dump_syms + - win64-mozmake + - win64-nasm + win64/opt: + attributes: + build_platform: win64 + build_type: opt + treeherder: + platform: win64/opt + worker-type: b-win2022 + worker: + max-run-time: 1800 + artifacts: + - name: private/openh264 + path: workspace/openh264/artifacts + type: directory + run: + using: mozharness + script: mozharness/scripts/openh264_build.py + config: + - openh264/win64.py + tooltool-downloads: internal + fetches: + toolchain: + - win64-clang + - win64-dump_syms + - win64-mozmake + - win64-nasm + win64-aarch64/opt: + attributes: + build_platform: win64-aarch64 + build_type: opt + treeherder: + platform: win64-aarch64/opt + worker-type: b-win2022 + worker: + max-run-time: 1800 + artifacts: + - name: private/openh264 + path: workspace/openh264/artifacts + type: directory + run: + using: mozharness + script: mozharness/scripts/openh264_build.py + config: + - openh264/win64-aarch64.py + tooltool-downloads: internal + fetches: + toolchain: + - win64-clang + - win64-dump_syms + - win64-mozmake diff --git a/taskcluster/ci/openh264-signing/kind.yml b/taskcluster/ci/openh264-signing/kind.yml new file mode 100644 index 0000000000..e4dc174cc7 --- /dev/null +++ b/taskcluster/ci/openh264-signing/kind.yml @@ -0,0 +1,19 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.openh264_signing + - gecko_taskgraph.transforms.task + +kind-dependencies: + - openh264-plugin + +jobs: + openh264-signing: + from-deps: + group-by: single-with-filters diff --git a/taskcluster/ci/packages/debian.yml b/taskcluster/ci/packages/debian.yml new file mode 100644 index 0000000000..0a87ef6782 --- /dev/null +++ b/taskcluster/ci/packages/debian.yml @@ -0,0 +1,126 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + run: + using: debian-package + dist: jessie + +deb12-mercurial: + description: "Modern Mercurial for Debian bookworm" + treeherder: + symbol: Deb12(hg) + run: + using: debian-package + dist: bookworm + tarball: + url: https://www.mercurial-scm.org/release/mercurial-6.4.3.tar.gz + sha256: a77fb62d325934a83a00b2fc6db109f44c67b86768fc40490366f513640c7f64 + pre-build-command: >- + cp -r contrib/packaging/debian debian && + sed -i -e "s/__VERSION__/$(awk -F\" '$2 {print $2}' mercurial/__version__.py)-1.deb12moz1/" \ + -e "s/__DATE__/$(date --rfc-2822)/" \ + -e "s/__CODENAME__/bookworm/" debian/changelog + +deb12-valgrind: + description: "Valgrind for Debian bookworm" + treeherder: + symbol: Deb12(valgrind) + run: + dist: bookworm + dsc: + url: http://snapshot.debian.org/archive/debian/20230111T213757Z/pool/main/v/valgrind/valgrind_3.20.0-1.dsc + sha256: e32d373bf2d4f0bd0e9673c711d0e4a8eed43c22ca81714ae3e2d85b2f315493 + +deb12-python-zstandard: + description: "python-zstandard for Debian bookworm" + treeherder: + symbol: Deb12(python-zstandard) + run: + using: debian-package + dist: bookworm + tarball: + url: https://github.com/indygreg/python-zstandard/releases/download/0.22.0/zstandard-0.22.0.tar.gz + sha256: 8226a33c542bcb54cd6bd0a366067b610b41713b64c9abec1bc4533d69f51e70 + pre-build-command: debchange -v 0.22.0-1.deb12moz --distribution testing "Mozilla backport for bookworm" + name: python-zstandard + +deb8-gcc-8: + description: "gcc 8 for Debian jessie" + treeherder: + symbol: Deb8(gcc-8) + worker: + max-run-time: 3600 + env: + DEB_BUILD_OPTIONS: nocheck + WITH_BOOTSTRAP: 'off' + WITHOUT_LANG: ada brig cilkrts fortran d go objc obj-c++ asan lsan tsan ubsan jit nvptx + run: + using: debian-package + dist: jessie + dsc: + url: http://snapshot.debian.org/archive/debian/20210202T150504Z/pool/main/g/gcc-8/gcc-8_8.4.0-7.dsc + sha256: b93f13bc67f5a8f16e837fbb543d00d3475d5c95777a1b0b5a448fa2310a98c5 + # autoconf2.64 and quilt necessary to run the `debian/rules control` command to + # generate an updated debian/control. + # uncommenting `with_common_libs` makes the packaging create the libstdc++6 package. + # `libstdcxx_abi = new` overrides the default that disables the new ABI on jessie + # `BINUTILSBDV=2.25-3~` and `ISL_BUILD_DEP=libisl-dev,` override wrong versions + # in build dependencies for jessie. + # `OFFLOAD_BUILD_DEP=` overrides the dependency on nvptx, which is not available + # in jessie. + # `NT=` overrides the use of `:native` which is not supported by dpkg on jessie. + pre-build-command: >- + apt install autoconf2.64 quilt && + sed -i 's/#with_common_libs/with_common_libs/' debian/rules.defs && + echo libstdcxx_abi = new >> debian/rules.defs && + echo BINUTILSBDV=2.25-3~ >> debian/rules.conf && + echo ISL_BUILD_DEP=libisl-dev, >> debian/rules.conf && + echo OFFLOAD_BUILD_DEP= >> debian/rules.conf && + debian/rules control NT= + +deb8-32-gcc-8: + description: "gcc 8 for Debian jessie" + treeherder: + symbol: Deb8-32(gcc-8) + worker: + max-run-time: 3600 + env: + DEB_BUILD_OPTIONS: nocheck + WITH_BOOTSTRAP: 'off' + WITHOUT_LANG: ada biarch brig cilkrts fortran d go objc obj-c++ asan lsan tsan ubsan jit nvptx + run: + using: debian-package + dist: jessie + dsc: + url: http://snapshot.debian.org/archive/debian/20210202T150504Z/pool/main/g/gcc-8/gcc-8_8.4.0-7.dsc + sha256: b93f13bc67f5a8f16e837fbb543d00d3475d5c95777a1b0b5a448fa2310a98c5 + pre-build-command: >- + apt install autoconf2.64 quilt && + sed -i 's/#with_common_libs/with_common_libs/' debian/rules.defs && + echo libstdcxx_abi = new >> debian/rules.defs && + echo GCC_MULTILIB_BUILD_DEP='$(DPKG_BUILD_DEP)' >> debian/rules.conf && + echo BINUTILSBDV=2.25-3~ >> debian/rules.conf && + echo ISL_BUILD_DEP=libisl-dev, >> debian/rules.conf && + echo OFFLOAD_BUILD_DEP= >> debian/rules.conf && + debian/rules control NT= + arch: i386 + +deb8-gtk3: + description: "X11-only gtk+3 for Debian jessie" + treeherder: + symbol: Deb8(gtk) + worker: + max-run-time: 3600 + env: + DEB_BUILD_OPTIONS: nocheck + run: + dist: jessie + dsc: + url: http://snapshot.debian.org/archive/debian/20150819T212910Z/pool/main/g/gtk+3.0/gtk+3.0_3.14.5-1+deb8u1.dsc + sha256: b1808b03317b171c813e31185a4520df4dbde54580842a72a4c44540cd6bde17 + pre-build-command: >- + sed -i /linux-any/d debian/control* debian/libgtk-3-0.symbols && + sed -i s/--enable-wayland-backend/--disable-wayland-backend/ debian/rules && + debchange -v 3.14.5-1.deb8moz --distribution jessie-backports "Mozilla rebuild without wayland support" diff --git a/taskcluster/ci/packages/kind.yml b/taskcluster/ci/packages/kind.yml new file mode 100644 index 0000000000..5b21346de8 --- /dev/null +++ b/taskcluster/ci/packages/kind.yml @@ -0,0 +1,25 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.try_job:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.cached_tasks:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + treeherder: + kind: build + platform: packages/opt + tier: 1 + worker-type: b-linux-gcp + worker: + max-run-time: 1800 + run-on-projects: [] + +jobs-from: + - debian.yml + - ubuntu.yml diff --git a/taskcluster/ci/packages/ubuntu.yml b/taskcluster/ci/packages/ubuntu.yml new file mode 100644 index 0000000000..d9bbd5f2ad --- /dev/null +++ b/taskcluster/ci/packages/ubuntu.yml @@ -0,0 +1,156 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + run: + using: ubuntu-package + dist: bionic + +ub18-libc6: + description: "Older version of glibc in Ubuntu 18.04 that doesn't cause bug 1678451" + treeherder: + symbol: Ub18(libc6) + run: + dsc: + url: https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/glibc/2.27-3ubuntu1.2/glibc_2.27-3ubuntu1.2.dsc + sha256: 2ac325cce2251c710dd041f4725925cdbccefba6f6f0f0d95a2a5a09e2050c2e + patch: ubuntu-glibc.diff + +ub18-32-libc6: + description: "Older version of glibc in Ubuntu 18.04 that doesn't cause bug 1678451" + treeherder: + symbol: Ub18(libc6-32) + run: + dsc: + url: https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/glibc/2.27-3ubuntu1.2/glibc_2.27-3ubuntu1.2.dsc + sha256: 2ac325cce2251c710dd041f4725925cdbccefba6f6f0f0d95a2a5a09e2050c2e + arch: i386 + patch: ubuntu-glibc.diff + +ub18-python-psutil: + description: "python-psutil for Ubuntu bionic" + treeherder: + symbol: Ub18(python-psutil) + run: + dsc: + url: https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/python-psutil/5.4.2-1ubuntu0.1/python-psutil_5.4.2-1ubuntu0.1.dsc + sha256: a0ca4560d25fcfe5b7407d2cb21318f0635f2c3559898efce1679eef35b61f05 + name: python-psutil + pre-build-command: >- + apt-get install python3.8-dev python3.8-dbg && + export DEBPYTHON3_SUPPORTED="3.8" + +ub18-pygobject: + description: "pygobject for Ubuntu bionic" + treeherder: + symbol: Ub18(pygobject) + run: + dsc: + url: http://archive.ubuntu.com/ubuntu/pool/main/p/pygobject/pygobject_3.26.1-2ubuntu1.dsc + sha256: b77f84885d9b6d2c03422ecb3bf69d50dd0607d3456154943671e5a1f87946aa + name: pygobject + patch: pygobject.diff + pre-build-command: >- + apt-get install python3.8-dev python3.8-dbg && + export DEBPYTHON3_SUPPORTED="3.6,3.8" + +ub18-pyatspi: + description: "pyatspi for Ubuntu bionic" + treeherder: + symbol: Ub18(pyatspi) + run: + dsc: + url: http://archive.ubuntu.com/ubuntu/pool/main/p/pyatspi/pyatspi_2.26.0+dfsg-1.dsc + sha256: 83c57052b055c0e2ee8307e3467d069de859db6c362137be01d142e085026826 + name: pyatspi + pre-build-command: >- + sed -i s/\\basync\\b/asynchronous/ pyatspi/registry.py && + EDITOR=cat dpkg-source --commit . sync && + apt-get install python3.8-dev python3.8-dbg && + export DEBPYTHON3_SUPPORTED="3.6,3.8" + +ub18-python-zstandard: + description: "python-zstandard for Ubuntu bionic" + treeherder: + symbol: Ub18(python-zstandard) + run: + tarball: + url: https://github.com/indygreg/python-zstandard/releases/download/0.19.0/zstandard-0.19.0.tar.gz + sha256: 31d12fcd942dd8dbf52ca5f6b1bbe287f44e5d551a081a983ff3ea2082867863 + name: python-zstandard + pre-build-command: >- + apt-get install python3.8-dev && + export DEBPYTHON3_SUPPORTED="3.8" && + debchange -v 0.19.0-1.ub18moz --distribution bionic "Mozilla backport for bionic" + +ub18-mercurial: + description: "Modern Mercurial for Ubuntu bionic" + treeherder: + symbol: Ub18(hg) + run: + tarball: + url: https://www.mercurial-scm.org/release/mercurial-6.4.3.tar.gz + sha256: a77fb62d325934a83a00b2fc6db109f44c67b86768fc40490366f513640c7f64 + pre-build-command: >- + apt-get install python3.8-dev && + export DEB_HG_PYTHON_VERSIONS="3.8" && + export DEBPYTHON3_SUPPORTED="3.8" && + cp -r contrib/packaging/debian debian && + sed -i -e "s/__VERSION__/$(awk -F\" '$2 {print $2}' mercurial/__version__.py)-1.ub18moz1/" \ + -e "s/__DATE__/$(date --rfc-2822)/" \ + -e "s/__CODENAME__/bionic/" debian/changelog + +ub20-python-zstandard: + description: "python-zstandard for Ubuntu focal" + treeherder: + symbol: Ub20(python-zstandard) + run: + tarball: + url: https://github.com/indygreg/python-zstandard/releases/download/0.22.0/zstandard-0.22.0.tar.gz + sha256: 8226a33c542bcb54cd6bd0a366067b610b41713b64c9abec1bc4533d69f51e70 + name: python-zstandard + dist: focal + pre-build-command: debchange -v 0.22.0-1.ub20moz --distribution bionic "Mozilla backport for focal" + +ub20-mercurial: + description: "Modern Mercurial for Ubuntu focal" + treeherder: + symbol: Ub20(hg) + run: + tarball: + url: https://www.mercurial-scm.org/release/mercurial-6.4.3.tar.gz + sha256: a77fb62d325934a83a00b2fc6db109f44c67b86768fc40490366f513640c7f64 + dist: focal + pre-build-command: >- + cp -r contrib/packaging/debian debian && + sed -i -e "s/__VERSION__/$(awk -F\" '$2 {print $2}' mercurial/__version__.py)-1.ub20moz1/" \ + -e "s/__DATE__/$(date --rfc-2822)/" \ + -e "s/__CODENAME__/focal/" debian/changelog + +ub22-python-zstandard: + description: "python-zstandard for Ubuntu jammy" + treeherder: + symbol: Ub22(python-zstandard) + run: + tarball: + url: https://github.com/indygreg/python-zstandard/releases/download/0.22.0/zstandard-0.22.0.tar.gz + sha256: 8226a33c542bcb54cd6bd0a366067b610b41713b64c9abec1bc4533d69f51e70 + name: python-zstandard + dist: jammy + pre-build-command: debchange -v 0.22.0-1.ub22moz --distribution jammy "Mozilla backport for jammy" + +ub22-mercurial: + description: "Modern Mercurial for Ubuntu jammy" + treeherder: + symbol: Ub22(hg) + run: + tarball: + url: https://www.mercurial-scm.org/release/mercurial-6.4.3.tar.gz + sha256: a77fb62d325934a83a00b2fc6db109f44c67b86768fc40490366f513640c7f64 + dist: jammy + pre-build-command: >- + cp -r contrib/packaging/debian debian && + sed -i -e "s/__VERSION__/$(awk -F\" '$2 {print $2}' mercurial/__version__.py)-1.ub22moz1/" \ + -e "s/__DATE__/$(date --rfc-2822)/" \ + -e "s/__CODENAME__/jammy/" debian/changelog diff --git a/taskcluster/ci/partials-signing/kind.yml b/taskcluster/ci/partials-signing/kind.yml new file mode 100644 index 0000000000..2c2bf0a9a0 --- /dev/null +++ b/taskcluster/ci/partials-signing/kind.yml @@ -0,0 +1,24 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.mar_signing + - gecko_taskgraph.transforms.task + +kind-dependencies: + - partials + +jobs: + partials-signing: + from-deps: + group-by: single-with-filters + shipping-phase: promote + treeherder-group: ps + description-suffix: 'partial signing' + required_signoffs: + - mar-signing diff --git a/taskcluster/ci/partials/kind.yml b/taskcluster/ci/partials/kind.yml new file mode 100644 index 0000000000..ea72198c5c --- /dev/null +++ b/taskcluster/ci/partials/kind.yml @@ -0,0 +1,39 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.partials + - gecko_taskgraph.transforms.task + +kind-dependencies: + - repackage + - repackage-l10n + +only-for-attributes: + - nightly + - shippable + +only-for-build-platforms: + - macosx64-shippable/opt + - macosx64-devedition/opt + - win32-shippable/opt + - win32-devedition/opt + - win64-shippable/opt + - win64-devedition/opt + - win64-aarch64-shippable/opt + - win64-aarch64-devedition/opt + - linux-shippable/opt + - linux-devedition/opt + - linux64-shippable/opt + - linux64-devedition/opt + +jobs: + partials: + from-deps: + group-by: single-with-filters + shipping-phase: promote diff --git a/taskcluster/ci/perftest/android.yml b/taskcluster/ci/perftest/android.yml new file mode 100644 index 0000000000..6faebffee9 --- /dev/null +++ b/taskcluster/ci/perftest/android.yml @@ -0,0 +1,338 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- + +job-defaults: + fetches: + toolchain: + - linux64-node + - linux64-geckodriver + + worker: + env: + PYTHONPATH: "testing/mozbase/mozdevice:third_party/python/six" + + run: + sparse-profile: perftest + checkout: true + cwd: '{checkout}' + command: >- + cd $GECKO_PATH && + python3 python/mozperftest/mozperftest/runner.py + --on-try + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --output $MOZ_FETCHES_DIR/../artifacts + +hw-a51: + worker-type: t-bitbar-gw-perf-a51 + description: Run ./mach perftest on a Samsung Galaxy a51 + treeherder: + symbol: perftest-a51 + platform: android-hw-a51-11-0-arm7-shippable/opt + +# TODO: is this right? +hw-a51-aarch64: + worker-type: t-bitbar-gw-perf-a51 + description: Run ./mach perftest on a Samsung Galaxy a51 + treeherder: + symbol: perftest-a51 + platform: android-hw-a51-11-0-aarch64-shippable/opt + +hw-a51-startup-fenix-cold-main-first-frame: + worker-type: t-bitbar-gw-perf-a51 + description: Run android startup perftest on Fenix on a Samsung A51 + treeherder: + symbol: perftest(startup-fenix-cmff) + tier: 2 + platform: android-hw-a51-11-0-aarch64-shippable/opt + attributes: + cron: true + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $GECKO_PATH && + python3 python/mozperftest/mozperftest/runner.py + --flavor=mobile-browser + --AndroidStartUp + testing/performance/perftest_android_startup.js + --browsertime-cycles=0 + --AndroidStartUp-test-name=cold_main_first_frame + --perfherder + --hooks + testing/performance/hooks_android_startup.py + --AndroidStartUp-product=fenix + --AndroidStartUp-release-channel=nightly + +hw-a51-startup-fenix-cold-view-nav-start: + worker-type: t-bitbar-gw-perf-a51 + description: Run android startup perftest on Fenix on a Samsung A51 + treeherder: + symbol: perftest(startup-fenix-cvns) + tier: 2 + platform: android-hw-a51-11-0-aarch64-shippable/opt + attributes: + cron: true + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $GECKO_PATH && + python3 python/mozperftest/mozperftest/runner.py + --flavor=mobile-browser + --AndroidStartUp + testing/performance/perftest_android_startup.js + --browsertime-cycles=0 + --AndroidStartUp-test-name=cold_view_nav_start + --perfherder + --hooks + testing/performance/hooks_android_startup.py + --AndroidStartUp-product=fenix + --AndroidStartUp-release-channel=nightly + +hw-a51-startup-focus-cold-main-first-frame: + worker-type: t-bitbar-gw-perf-a51 + description: Run android startup perftest on Focus on a Samsung A51 + treeherder: + symbol: perftest(startup-focus-cmff) + tier: 2 + platform: android-hw-a51-11-0-aarch64-shippable/opt + attributes: + cron: true + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $GECKO_PATH && + python3 python/mozperftest/mozperftest/runner.py + --flavor=mobile-browser + --AndroidStartUp + testing/performance/perftest_android_startup.js + --browsertime-cycles=0 + --AndroidStartUp-test-name=cold_main_first_frame + --perfherder + --hooks + testing/performance/hooks_android_startup.py + --AndroidStartUp-product=focus + --AndroidStartUp-release-channel=nightly + +hw-a51-startup-focus-cold-view-nav-start: + worker-type: t-bitbar-gw-perf-a51 + description: Run android startup perftest on Focus on a Samsung A51 + treeherder: + symbol: perftest(startup-focus-cvns) + tier: 2 + platform: android-hw-a51-11-0-aarch64-shippable/opt + attributes: + cron: true + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $GECKO_PATH && + python3 python/mozperftest/mozperftest/runner.py + --flavor=mobile-browser + --AndroidStartUp + testing/performance/perftest_android_startup.js + --browsertime-cycles=0 + --AndroidStartUp-test-name=cold_view_nav_start + --perfherder + --hooks + testing/performance/hooks_android_startup.py + --AndroidStartUp-product=focus + --AndroidStartUp-release-channel=nightly + +hw-a51-startup-geckoview-cold-main-first-frame: + worker-type: t-bitbar-gw-perf-a51 + description: Run android startup perftest on Geckoview on a Samsung A51 + treeherder: + symbol: perftest(startup-geckoview-cmff) + tier: 2 + platform: android-hw-a51-11-0-aarch64-shippable/opt + attributes: + cron: true + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $GECKO_PATH && + python3 python/mozperftest/mozperftest/runner.py + --flavor=mobile-browser + --AndroidStartUp + testing/performance/perftest_android_startup.js + --browsertime-cycles=0 + --AndroidStartUp-test-name=cold_main_first_frame + --perfherder + --hooks + testing/performance/hooks_android_startup.py + --AndroidStartUp-product=geckoview_example + --AndroidStartUp-release-channel=nightly + +hw-a51-startup-geckoview-cold-view-nav-start: + worker-type: t-bitbar-gw-perf-a51 + description: Run android startup perftest on Geckoview_example on a Samsung A51 + treeherder: + symbol: perftest(startup-geckoview-cvns) + tier: 2 + platform: android-hw-a51-11-0-aarch64-shippable/opt + attributes: + cron: true + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $GECKO_PATH && + python3 python/mozperftest/mozperftest/runner.py + --flavor=mobile-browser + --AndroidStartUp + testing/performance/perftest_android_startup.js + --browsertime-cycles=0 + --AndroidStartUp-test-name=cold_view_nav_start + --perfherder + --hooks + testing/performance/hooks_android_startup.py + --AndroidStartUp-product=geckoview_example + --AndroidStartUp-release-channel=nightly + +hw-a51-perfstats-gv: + worker-type: t-bitbar-gw-perf-a51 + description: Run PerfStats perftest on GeckoView on a Samsung A51 + treeherder: + symbol: perftest(perfstats-gv) + platform: android-hw-a51-11-0-arm7-shippable/opt + attributes: + cron: false + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $GECKO_PATH && + python3 python/mozperftest/mozperftest/runner.py + --flavor mobile-browser + --android + --android-app-name org.mozilla.geckoview_example + --android-activity org.mozilla.geckoview_example.GeckoViewActivity + --android-clear-logcat + --android-capture-logcat logcat + --android-install-apk gve_nightly_api16 + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --output $MOZ_FETCHES_DIR/../artifacts + --perfherder + --perfherder-app geckoview + --perfherder-metrics name:HttpChannelCompletion,unit:ms name:HttpChannelCompletion_Cache,unit:ms name:HttpChannelCompletion_Network,unit:ms name:DisplayListBuilding,unit:ms name:Reflowing,unit:ms name:Styling,unit:ms + --browsertime-iterations 10 + --hooks testing/performance/hooks_perfstats.py + testing/performance/perftest_perfstats.js + +hw-a51-aarch64-perfstats-gv: + worker-type: t-bitbar-gw-perf-a51 + description: Run PerfStats perftest on GeckoView on a Samsung A51 + treeherder: + symbol: perftest(perfstats-gv) + platform: android-hw-a51-11-0-aarch64-shippable/opt + attributes: + cron: false + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $GECKO_PATH && + python3 python/mozperftest/mozperftest/runner.py + --flavor mobile-browser + --android + --android-app-name org.mozilla.geckoview_example + --android-activity org.mozilla.geckoview_example.GeckoViewActivity + --android-clear-logcat + --android-capture-logcat logcat + --android-install-apk gve_nightly_aarch64 + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --output $MOZ_FETCHES_DIR/../artifacts + --perfherder + --perfherder-app geckoview + --perfherder-metrics name:HttpChannelCompletion,unit:ms name:HttpChannelCompletion_Cache,unit:ms name:HttpChannelCompletion_Network,unit:ms name:DisplayListBuilding,unit:ms name:Reflowing,unit:ms name:Styling,unit:ms + --browsertime-iterations 10 + --hooks testing/performance/hooks_perfstats.py + testing/performance/perftest_perfstats.js + +hw-a51-perfstats-fenix: + worker-type: t-bitbar-gw-perf-a51 + description: Run PerfStats perftest on Fenix on a Samsung A51 + treeherder: + symbol: perftest(perfstats-fenix) + platform: android-hw-a51-11-0-arm7-shippable/opt + attributes: + cron: false + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $GECKO_PATH && + python3 python/mozperftest/mozperftest/runner.py + --flavor mobile-browser + --android + --android-app-name org.mozilla.fenix + --android-activity org.mozilla.fenix.IntentReceiverActivity + --android-clear-logcat + --android-capture-logcat logcat + --android-install-apk fenix_nightly_armeabi_v7a + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --output $MOZ_FETCHES_DIR/../artifacts + --perfherder + --perfherder-app fenix + --perfherder-metrics name:HttpChannelCompletion,unit:ms name:HttpChannelCompletion_Cache,unit:ms name:HttpChannelCompletion_Network,unit:ms name:DisplayListBuilding,unit:ms name:Reflowing,unit:ms name:Styling,unit:ms + --browsertime-iterations 10 + --hooks testing/performance/hooks_perfstats.py + testing/performance/perftest_perfstats.js + +hw-a51-aarch64-perfstats-fenix: + worker-type: t-bitbar-gw-perf-a51 + description: Run PerfStats perftest on Fenix on a Samsung A51 + treeherder: + symbol: perftest(perfstats-fenix) + platform: android-hw-a51-11-0-aarch64-shippable/opt + attributes: + cron: false + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $GECKO_PATH && + python3 python/mozperftest/mozperftest/runner.py + --flavor mobile-browser + --android + --android-app-name org.mozilla.fenix + --android-activity org.mozilla.fenix.IntentReceiverActivity + --android-clear-logcat + --android-capture-logcat logcat + --android-install-apk fenix_nightly_arm64_v8a + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --output $MOZ_FETCHES_DIR/../artifacts + --perfherder + --perfherder-app fenix + --perfherder-metrics name:HttpChannelCompletion,unit:ms name:HttpChannelCompletion_Cache,unit:ms name:HttpChannelCompletion_Network,unit:ms name:DisplayListBuilding,unit:ms name:Reflowing,unit:ms name:Styling,unit:ms + --browsertime-iterations 10 + --hooks testing/performance/hooks_perfstats.py + testing/performance/perftest_perfstats.js + +hw-a51-record-websites: + worker-type: t-bitbar-gw-perf-a51 + description: Run perftest to record mobile websites + treeherder: + symbol: perftest(rec) + platform: android-hw-a51-11-0-aarch64-shippable/opt + require-build: + android-hw-a51-11-0-aarch64-shippable/opt: build-android-aarch64-shippable/opt + attributes: + cron: false + run-on-projects: [] + scopes: + - secrets:get:project/releng/gecko/build/level-{level}/conditioned-profiles + - secrets:get:project/perftest/gecko/level-{level}/perftest-login + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $GECKO_PATH && + python3 python/mozperftest/mozperftest/runner.py + --flavor mobile-browser + --android + --android-app-name org.mozilla.geckoview_example + --android-activity org.mozilla.geckoview_example.GeckoViewActivity + --android-clear-logcat + --android-capture-logcat logcat + --android-install-apk gve_nightly_aarch64 + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --proxy + --output $MOZ_FETCHES_DIR/../artifacts + --hooks testing/performance/hooks_recording.py + testing/performance/perftest_record.js diff --git a/taskcluster/ci/perftest/kind.yml b/taskcluster/ci/perftest/kind.yml new file mode 100644 index 0000000000..5d8f253653 --- /dev/null +++ b/taskcluster/ci/perftest/kind.yml @@ -0,0 +1,48 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + - build + +transforms: + - gecko_taskgraph.transforms.perftest:transforms + - gecko_taskgraph.transforms.source_test:transforms + - taskgraph.transforms.task_context + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +jobs-from: + - android.yml + - linux.yml + - macosx.yml + - windows.yml + +job-defaults: + attributes: + retrigger: true + run-on-projects: [] + use-system-python: false + treeherder: + kind: other + tier: 3 + task-context: + from-object: {} + substitution-fields: [] + worker: + taskcluster-proxy: true + max-run-time: 10800 + env: + USE_ARTIFACT: '1' + HOSTUTILS_MANIFEST_PATH: "testing/config/tooltool-manifests/linux64/hostutils.manifest" + artifacts: + - type: directory + name: public/build + path: artifacts + run: + run-as-root: true + using: run-task + checkout: false diff --git a/taskcluster/ci/perftest/linux.yml b/taskcluster/ci/perftest/linux.yml new file mode 100644 index 0000000000..1016469fb8 --- /dev/null +++ b/taskcluster/ci/perftest/linux.yml @@ -0,0 +1,384 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + worker-type: t-linux-talos-1804 + fetches: + toolchain: + - linux64-node + - linux64-geckodriver + build: + - artifact: target.mozinfo.json + - artifact: target.common.tests.tar.gz + - artifact: target.condprof.tests.tar.gz + - artifact: target.perftests.tests.tar.gz + - artifact: target.xpcshell.tests.tar.gz + - artifact: target.mochitest.tests.tar.gz + - artifact: target.tar.bz2 + platform: linux1804-64-shippable/opt + require-build: + linux1804-64-shippable/opt: build-linux64-shippable/opt + scopes: + - secrets:get:project/releng/gecko/build/level-{level}/conditioned-profiles + +try-xpcshell: + description: Run ./mach perftest on Linux + treeherder: + symbol: perftest(linux-xpcshell) + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3 python/mozperftest/mozperftest/runner.py + --on-try + --flavor desktop-browser + --output $MOZ_FETCHES_DIR/../artifacts + --xpcshell-binary ${MOZ_FETCHES_DIR}/bin/xpcshell + --xpcshell-mozinfo ${MOZ_FETCHES_DIR}/target.mozinfo.json + --xpcshell-nodejs ${MOZ_FETCHES_DIR}/node/bin/node + --xpcshell-xre-path ${MOZ_FETCHES_DIR}/firefox + +webpagetest-firefox: + description: Run webpagetest performance pageload tests on Firefox against Alexa top 50 websites + treeherder: + symbol: perftest(linux-webpagetest) + tier: 2 + attributes: + cron: true + scopes: + - secrets:get:project/perftest/gecko/level-{level}/perftest-login + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3 python/mozperftest/mozperftest/runner.py + testing/performance/perftest_WPT_firefox_init_file.js + --flavor=webpagetest + --webpagetest + --perfherder + --perfherder-metrics median + --perfherder-app=firefox + --output $MOZ_FETCHES_DIR/../artifacts + +webpagetest-chrome: + description: Run webpagetest performance pageload tests on Chrome against Alexa top 50 websites + treeherder: + symbol: perftest-chrome(linux-webpagetest) + tier: 2 + attributes: + cron: true + scopes: + - secrets:get:project/perftest/gecko/level-{level}/perftest-login + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3 python/mozperftest/mozperftest/runner.py + testing/performance/perftest_WPT_chrome_init_file.js + --flavor=webpagetest + --webpagetest + --perfherder + --perfherder-metrics median + --perfherder-app=chrome + --output $MOZ_FETCHES_DIR/../artifacts + +try-browsertime: + description: Run ./mach perftest on Linux + treeherder: + symbol: perftest(linux-bt) + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3 python/mozperftest/mozperftest/runner.py + --on-try + --browsertime-binary ${MOZ_FETCHES_DIR}/firefox/firefox-bin + --flavor desktop-browser + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --output $MOZ_FETCHES_DIR/../artifacts + +domcount: + description: Run DOM test + treeherder: + symbol: perftest(linux-dom) + attributes: + batch: false + cron: true + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3 python/mozperftest/mozperftest/runner.py + browser/base/content/test/perftest_browser_xhtml_dom.js + --browsertime-binary ${MOZ_FETCHES_DIR}/firefox/firefox-bin + --flavor desktop-browser + --perfherder + --perfherder-metrics name:totalDOMCount,unit:count name:panelMenuCount,unit:count name:lightDOMCount,unit:count name:lightDOMDetails,unit:count + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --output $MOZ_FETCHES_DIR/../artifacts + +# We'd like not to have to specify each test separately here. See bug 1865852. +service-worker: + description: Run service worker tests + treeherder: + symbol: perftest(linux-sw) + tier: 2 + attributes: + batch: false + cron: false + run-on-projects: [autoland, mozilla-central] + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3 python/mozperftest/mozperftest/runner.py + dom/serviceworkers/test/performance/test_caching.html + --mochitest-binary ${MOZ_FETCHES_DIR}/firefox/firefox-bin + --flavor mochitest + --output $MOZ_FETCHES_DIR/../artifacts && + python3 python/mozperftest/mozperftest/runner.py + dom/serviceworkers/test/performance/test_fetch.html + --mochitest-binary ${MOZ_FETCHES_DIR}/firefox/firefox-bin + --flavor mochitest + --output $MOZ_FETCHES_DIR/../artifacts && + python3 python/mozperftest/mozperftest/runner.py + dom/serviceworkers/test/performance/test_registration.html + --mochitest-binary ${MOZ_FETCHES_DIR}/firefox/firefox-bin + --flavor mochitest + --output $MOZ_FETCHES_DIR/../artifacts + +http3: + description: Run HTTP/3 test + treeherder: + symbol: perftest(http3) + attributes: + batch: false + # Disabled due to bug 1849400 + cron: false + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3 python/mozperftest/mozperftest/runner.py + xpcshell/tests/netwerk/test/unit/test_http3_perf.js + --flavor xpcshell + --perfherder + --perfherder-metrics name:speed,unit:bps + --output $MOZ_FETCHES_DIR/../artifacts + --xpcshell-binary ${MOZ_FETCHES_DIR}/bin/xpcshell + --xpcshell-mozinfo ${MOZ_FETCHES_DIR}/target.mozinfo.json + --xpcshell-nodejs ${MOZ_FETCHES_DIR}/node/bin/node + --xpcshell-cycles 13 + --xpcshell-xre-path ${MOZ_FETCHES_DIR}/firefox + +livesites: + description: Live site performance testing + variants: [http3] + treeherder: + symbol: perftest({symbol}) + attributes: + batch: false + cron: true + perftest: + - [cloudflare, netwerk/test/perf/perftest_http3_cloudflareblog.js] + # broken: bug 1678588 + # - [fb-scroll, netwerk/test/perf/perftest_http3_facebook_scroll.js] + # broken: bug 1879851 + # - [g-image, netwerk/test/perf/perftest_http3_google_image.js] + # broken: bug 1799655 + # - [g-search, netwerk/test/perf/perftest_http3_google_search.js] + - [lq-fetch, netwerk/test/perf/perftest_http3_lucasquicfetch.js] + # broken: bug 1695871 + # - [ytw, netwerk/test/perf/perftest_http3_youtube_watch.js] + # - [ytw-scroll, netwerk/test/perf/perftest_http3_youtube_watch_scroll.js] + perftest-metrics: + by-perftest: + cloudflare: + # Example of how the specify settings for each metric + resources: + extraOptions: [] + firstPaint: {} + navigationTiming: {} + pageTimings: {} + timeToContentfulPaint: {} + # broken: bug 1678588 + # fb-scroll: [navigationTiming, pageTimings, resources, firstPaint, timeToContentfulPaint, requestsPerSecond] + # broken: bug 1879851 + # g-image: [navigationTiming, pageTimings, resources, firstPaint, timeToContentfulPaint, imagesPerSecond, imageLoadTime] + # g-search: [navigationTiming, pageTimings, resources, firstPaint, timeToContentfulPaint] + lq-fetch: [navigationTiming, pageTimings, resources, timeToContentfulPaint, resourceLoadTime, imagesLoaded, imagesMissed] + # broken: bug 1695871 + # ytw: [navigationTiming, pageTimings, resources, firstPaint, timeToContentfulPaint, droppedFrames, decodedFrames] + # ytw-scroll: [navigationTiming, pageTimings, resources, firstPaint, timeToContentfulPaint, droppedFrames, decodedFrames] + default: [navigationTiming, pageTimings, resources, firstPaint, timeToContentfulPaint] + # Leave this here so people know this exists when looking + # for examples + perftest-perfherder-global: + extraOptions: [] + perftest-extra-options: + by-perftest: + cloudflare: + - --perfherder-split-by browserScripts.pageinfo.url + # g-search: + # - --perfherder-split-by browserScripts.pageinfo.url + lq-fetch: + - --perfherder-split-by browserScripts.pageinfo.url + default: [] + perftest-btime-variants: + by-perftest: + cloudflare: + - ["10s", browsertime.waitTime=10000] + - ["25s", browsertime.waitTime=25000] + - ["35s", browsertime.waitTime=35000] + - ["60s", browsertime.waitTime=60000] + # broken: bug 1678588 + # fb-scroll: + # - ["10s", browsertime.waitTime=10000] + # - ["25s", browsertime.waitTime=25000] + # - ["35s", browsertime.waitTime=35000] + # - ["60s", browsertime.waitTime=60000] + # g-search: + # - ["10s", browsertime.waitTime=10000] + # - ["25s", browsertime.waitTime=25000] + # - ["35s", browsertime.waitTime=35000] + # - ["60s", browsertime.waitTime=60000] + lq-fetch: + - [null, "browsertime.waitTime=1000,browsertime.cycles=5"] + # broken: bug 1695871 + # ytw: + # - [null, browsertime.waitTime=20000] + # ytw-scroll: + # - [null, browsertime.waitTime=20000] + default: + - [null, browsertime.waitTime=1000] + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3 python/mozperftest/mozperftest/runner.py + {perftest_testname} + --browsertime-binary ${MOZ_FETCHES_DIR}/firefox/firefox-bin + --browsertime-iterations 10 + --visualmetrics + --flavor desktop-browser + --perfherder + --perfherder-metrics {perftest_metrics} + --perfherder-simplify-names + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --output $MOZ_FETCHES_DIR/../artifacts + +controlled: + description: Controlled performance testing + treeherder: + symbol: perftest(controlled) + worker: + max-run-time: 14400 + attributes: + batch: false + cron: false + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3 python/mozperftest/mozperftest/runner.py + netwerk/test/perf/perftest_http3_controlled.js + --browsertime-binary ${MOZ_FETCHES_DIR}/firefox/firefox-bin + --browsertime-iterations 1 + --browsertime-cycles 96 + --hooks netwerk/test/perf/hooks_throttling.py + --flavor desktop-browser + --perfherder + --perfherder-metrics name:navigationTiming,unit:ms name:pageTimings,unit:ms name:resources,unit:ms name:firstPaint,unit:ms name:timeToContentfulPaint,unit:ms + --perfherder-simplify-names + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --output $MOZ_FETCHES_DIR/../artifacts + +perfstats: + description: Run PerfStats pageload test + treeherder: + symbol: perftest(linux-perfstats) + attributes: + cron: false + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3 python/mozperftest/mozperftest/runner.py + --browsertime-binary ${MOZ_FETCHES_DIR}/firefox/firefox-bin + --flavor desktop-browser + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --output $MOZ_FETCHES_DIR/../artifacts + --perfherder + --perfherder-metrics name:HttpChannelCompletion,unit:ms name:HttpChannelCompletion_Cache,unit:ms name:HttpChannelCompletion_Network,unit:ms name:DisplayListBuilding,unit:ms name:Reflowing,unit:ms name:Styling,unit:ms + --browsertime-iterations 10 + --hooks testing/performance/hooks_perfstats.py + testing/performance/perftest_perfstats.js + +record-websites: + description: Run mozperftest to record desktop websites + platform: linux1804-64/opt + require-build: + linux1804-64/opt: build-linux64/opt + treeherder: + symbol: perftest(rec) + attributes: + cron: false + run-on-projects: [] + scopes: + - secrets:get:project/releng/gecko/build/level-{level}/conditioned-profiles + - secrets:get:project/perftest/gecko/level-{level}/perftest-login + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3 python/mozperftest/mozperftest/runner.py + --flavor desktop-browser + --verbose + --browsertime-binary ${MOZ_FETCHES_DIR}/firefox/firefox-bin + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --proxy + --output $MOZ_FETCHES_DIR/../artifacts + --hooks testing/performance/hooks_recording.py + testing/performance/perftest_record.js + +side-by-side: + description: Run mozperftest side-by-side + treeherder: + symbol: perftest(side-by-side) + tier: 2 + run: + using: run-task + sparse-profile: perftest + checkout: true + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3 python/mozperftest/mozperftest/runner.py + tools side-by-side + -t {test_name} + --base-platform {platform} + --base-revision {base_revision} + --new-revision {new_revision} + --base-branch {base_branch} + --new-branch {new_branch} + +mwu-change-detector: + description: Runs Mann-Whitney U-test on two revisions to detect performance changes + treeherder: + symbol: perftest-detect(mwu) + tier: 2 + run: + using: run-task + sparse-profile: perftest + checkout: true + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3 python/mozperftest/mozperftest/runner.py + tools change-detector + --task-name {task_name} + --base-revision {base_revision} + --new-revision {new_revision} + --base-branch {base_branch} + --new-branch {new_branch} diff --git a/taskcluster/ci/perftest/macosx.yml b/taskcluster/ci/perftest/macosx.yml new file mode 100644 index 0000000000..d98f7524b8 --- /dev/null +++ b/taskcluster/ci/perftest/macosx.yml @@ -0,0 +1,287 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + worker-type: t-osx-1015-r8 + fetches: + build: + - artifact: target.mozinfo.json + - artifact: target.common.tests.tar.gz + - artifact: target.condprof.tests.tar.gz + - artifact: target.mochitest.tests.tar.gz + - artifact: target.xpcshell.tests.tar.gz + - artifact: target.perftests.tests.tar.gz + - artifact: target.dmg + extract: false + toolchain: + - macosx64-geckodriver + - macosx64-node + platform: macosx1015-64-shippable-qr/opt + require-build: + macosx1015-64-shippable-qr/opt: build-macosx64-shippable/opt + scopes: + - secrets:get:project/releng/gecko/build/level-{level}/conditioned-profiles + +try-xpcshell: + description: Run ./mach perftest on macOs + treeherder: + symbol: perftest(macos-xpcshell) + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3 -m venv . && + bin/python3 python/mozperftest/mozperftest/runner.py + --on-try + --flavor desktop-browser + --output $MOZ_FETCHES_DIR/../artifacts + --xpcshell-binary ${MOZ_FETCHES_DIR}/bin/xpcshell + --xpcshell-mozinfo ${MOZ_FETCHES_DIR}/target.mozinfo.json + --xpcshell-nodejs ${MOZ_FETCHES_DIR}/node/bin/node + --xpcshell-xre-path ${MOZ_FETCHES_DIR}/target.dmg + +try-browsertime: + description: Run ./mach perftest on macOs + treeherder: + symbol: perftest(macos-bt) + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3 -m venv . && + bin/python3 python/mozperftest/mozperftest/runner.py + --on-try + --browsertime-binary ${MOZ_FETCHES_DIR}/target.dmg + --browsertime-node ${MOZ_FETCHES_DIR}/node/bin/node + --flavor desktop-browser + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --output $MOZ_FETCHES_DIR/../artifacts + +# We'd like not to have to specify each test separately here. See bug 1865852. +service-worker: + description: Run service worker tests + treeherder: + symbol: perftest(macosx-sw) + tier: 2 + attributes: + batch: false + cron: false + run-on-projects: [autoland, mozilla-central] + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3 -m venv . && + bin/python3 python/mozperftest/mozperftest/runner.py + dom/serviceworkers/test/performance/test_caching.html + --mochitest-binary ${MOZ_FETCHES_DIR}/target.dmg + --flavor mochitest + --output $MOZ_FETCHES_DIR/../artifacts && + bin/python3 python/mozperftest/mozperftest/runner.py + dom/serviceworkers/test/performance/test_fetch.html + --mochitest-binary ${MOZ_FETCHES_DIR}/target.dmg + --flavor mochitest + --output $MOZ_FETCHES_DIR/../artifacts && + bin/python3 python/mozperftest/mozperftest/runner.py + dom/serviceworkers/test/performance/test_registration.html + --mochitest-binary ${MOZ_FETCHES_DIR}/target.dmg + --flavor mochitest + --output $MOZ_FETCHES_DIR/../artifacts + +domcount: + description: Run DOM test on macOS + treeherder: + symbol: perftest(macos-dom) + attributes: + batch: false + cron: true + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3 -m venv . && + bin/python3 python/mozperftest/mozperftest/runner.py + browser/base/content/test/perftest_browser_xhtml_dom.js + --browsertime-binary ${MOZ_FETCHES_DIR}/target.dmg + --browsertime-node ${MOZ_FETCHES_DIR}/node/bin/node + --flavor desktop-browser + --perfherder + --perfherder-metrics name:totalDOMCount,unit:count name:panelMenuCount,unit:count name:lightDOMCount,unit:count name:lightDOMDetails,unit:count + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --output $MOZ_FETCHES_DIR/../artifacts + +http3: + description: Run HTTP/3 test + treeherder: + symbol: perftest(http3) + attributes: + batch: false + # Disabled due to bug 1849400 + cron: false + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3 -m venv . && + bin/python3 python/mozperftest/mozperftest/runner.py + xpcshell/tests/netwerk/test/unit/test_http3_perf.js + --flavor xpcshell + --perfherder + --perfherder-metrics name:speed,unit:bps + --output $MOZ_FETCHES_DIR/../artifacts + --xpcshell-binary ${MOZ_FETCHES_DIR}/bin/xpcshell + --xpcshell-mozinfo ${MOZ_FETCHES_DIR}/target.mozinfo.json + --xpcshell-nodejs ${MOZ_FETCHES_DIR}/node/bin/node + --xpcshell-cycles 13 + --xpcshell-xre-path ${MOZ_FETCHES_DIR}/target.dmg + + +livesites: + description: Live site performance testing + variants: [http3] + treeherder: + symbol: perftest({symbol}) + attributes: + batch: false + cron: true + perftest: + - [cloudflare, netwerk/test/perf/perftest_http3_cloudflareblog.js] + # broken: bug 1678588 + # - [fb-scroll, netwerk/test/perf/perftest_http3_facebook_scroll.js] + # broken: bug 1879851 + # - [g-image, netwerk/test/perf/perftest_http3_google_image.js] + # broken: bug 1799655 + # - [g-search, netwerk/test/perf/perftest_http3_google_search.js] + - [lq-fetch, netwerk/test/perf/perftest_http3_lucasquicfetch.js] + # broken: bug 1695871 + # - [ytw, netwerk/test/perf/perftest_http3_youtube_watch.js] + # - [ytw-scroll, netwerk/test/perf/perftest_http3_youtube_watch_scroll.js] + perftest-metrics: + by-perftest: + cloudflare: + # Example of how the specify settings for each metric + resources: + extraOptions: [] + firstPaint: {} + navigationTiming: {} + pageTimings: {} + timeToContentfulPaint: {} + # broken: bug 1678588 + # fb-scroll: [navigationTiming, pageTimings, resources, firstPaint, timeToContentfulPaint, requestsPerSecond] + # broken: bug 1879851 + # g-image: [navigationTiming, pageTimings, resources, firstPaint, timeToContentfulPaint, imagesPerSecond, imageLoadTime] + # g-search: [navigationTiming, pageTimings, resources, firstPaint, timeToContentfulPaint] + lq-fetch: [navigationTiming, pageTimings, resources, timeToContentfulPaint, resourceLoadTime, imagesLoaded, imagesMissed] + # broken: bug 1695871 + # ytw: [navigationTiming, pageTimings, resources, firstPaint, timeToContentfulPaint, droppedFrames, decodedFrames] + # ytw-scroll: [navigationTiming, pageTimings, resources, firstPaint, timeToContentfulPaint, droppedFrames, decodedFrames] + default: [navigationTiming, pageTimings, resources, firstPaint, timeToContentfulPaint] + # Leave this here so people know this exists when looking + # for examples + perftest-perfherder-global: + extraOptions: [] + perftest-extra-options: + by-perftest: + cloudflare: + - --perfherder-split-by browserScripts.pageinfo.url + # g-search: + # - --perfherder-split-by browserScripts.pageinfo.url + lq-fetch: + - --perfherder-split-by browserScripts.pageinfo.url + default: [] + perftest-btime-variants: + by-perftest: + cloudflare: + - ["10s", browsertime.waitTime=10000] + - ["25s", browsertime.waitTime=25000] + - ["35s", browsertime.waitTime=35000] + - ["60s", browsertime.waitTime=60000] + # broken: bug 1678588 + # fb-scroll: + # - ["10s", browsertime.waitTime=10000] + # - ["25s", browsertime.waitTime=25000] + # - ["35s", browsertime.waitTime=35000] + # - ["60s", browsertime.waitTime=60000] + # g-search: + # - ["10s", browsertime.waitTime=10000] + # - ["25s", browsertime.waitTime=25000] + # - ["35s", browsertime.waitTime=35000] + # - ["60s", browsertime.waitTime=60000] + lq-fetch: + - [null, "browsertime.waitTime=1000,browsertime.cycles=5"] + # broken: bug 1695871 + # ytw: + # - [null, browsertime.waitTime=20000] + # ytw-scroll: + # - [null, browsertime.waitTime=20000] + default: + - [null, browsertime.waitTime=1000] + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3 -m venv . && + bin/python3 python/mozperftest/mozperftest/runner.py + {perftest_testname} + --browsertime-binary ${MOZ_FETCHES_DIR}/target.dmg + --browsertime-node ${MOZ_FETCHES_DIR}/node/bin/node + --browsertime-iterations 10 + --flavor desktop-browser + --perfherder + --perfherder-metrics {perftest_metrics} + --perfherder-simplify-names + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --output $MOZ_FETCHES_DIR/../artifacts + +controlled: + description: Controlled performance testing + treeherder: + symbol: perftest(controlled) + worker: + max-run-time: 14400 + attributes: + batch: false + cron: false + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3 -m venv . && + python3 python/mozperftest/mozperftest/runner.py + netwerk/test/perf/perftest_http3_controlled.js + --browsertime-binary ${MOZ_FETCHES_DIR}/target.dmg + --browsertime-node ${MOZ_FETCHES_DIR}/node/bin/node + --browsertime-iterations 1 + --browsertime-cycles 96 + --hooks netwerk/test/perf/hooks_throttling.py + --flavor desktop-browser + --perfherder + --perfherder-metrics name:navigationTiming,unit:ms name:pageTimings,unit:ms name:resources,unit:ms name:firstPaint,unit:ms name:timeToContentfulPaint,unit:ms + --perfherder-simplify-names + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --output $MOZ_FETCHES_DIR/../artifacts + +perfstats: + description: Run PerfStats pageload test + treeherder: + symbol: perftest(macos-perfstats) + attributes: + batch: false + cron: false + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3 -m venv . && + bin/python3 python/mozperftest/mozperftest/runner.py + --browsertime-binary ${MOZ_FETCHES_DIR}/target.dmg + --browsertime-node ${MOZ_FETCHES_DIR}/node/bin/node + --flavor desktop-browser + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --output $MOZ_FETCHES_DIR/../artifacts + --perfherder + --perfherder-metrics name:HttpChannelCompletion,unit:ms name:HttpChannelCompletion_Cache,unit:ms name:HttpChannelCompletion_Network,unit:ms name:DisplayListBuilding,unit:ms name:Reflowing,unit:ms name:Styling,unit:ms + --browsertime-iterations 10 + --hooks testing/performance/hooks_perfstats.py + testing/performance/perftest_perfstats.js diff --git a/taskcluster/ci/perftest/windows.yml b/taskcluster/ci/perftest/windows.yml new file mode 100644 index 0000000000..3e027e5741 --- /dev/null +++ b/taskcluster/ci/perftest/windows.yml @@ -0,0 +1,235 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + worker-type: t-win10-64-1803-hw + fetches: + build: + - artifact: target.condprof.tests.tar.gz + - artifact: target.common.tests.tar.gz + - artifact: target.mochitest.tests.tar.gz + - artifact: target.perftests.tests.tar.gz + - artifact: target.zip + toolchain: + - win64-node + - win64-geckodriver + platform: windows10-64-shippable/opt + require-build: + windows10-64-shippable/opt: build-win64-shippable/opt + scopes: + - secrets:get:project/releng/gecko/build/level-{level}/conditioned-profiles + +try-browsertime: + description: Run ./mach perftest on windows + treeherder: + symbol: perftest(win-bt) + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3.exe python/mozperftest/mozperftest/runner.py + --on-try + --browsertime-binary ${MOZ_FETCHES_DIR}/firefox/firefox.exe + --flavor desktop-browser + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver.exe + --browsertime-node ${MOZ_FETCHES_DIR}/node/node.exe + --output $MOZ_FETCHES_DIR/../artifacts + +# We'd like not to have to specify each test separately here. See bug 1865852. +service-worker: + description: Run service worker tests + treeherder: + symbol: perftest(win-sw) + tier: 2 + attributes: + batch: false + cron: false + run-on-projects: [autoland, mozilla-central] + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3.exe python/mozperftest/mozperftest/runner.py + dom/serviceworkers/test/performance/test_caching.html + --mochitest-binary ${MOZ_FETCHES_DIR}/firefox/firefox.exe + --flavor mochitest + --output $MOZ_FETCHES_DIR/../artifacts && + python3.exe python/mozperftest/mozperftest/runner.py + dom/serviceworkers/test/performance/test_fetch.html + --mochitest-binary ${MOZ_FETCHES_DIR}/firefox/firefox.exe + --flavor mochitest + --output $MOZ_FETCHES_DIR/../artifacts && + python3.exe python/mozperftest/mozperftest/runner.py + dom/serviceworkers/test/performance/test_registration.html + --mochitest-binary ${MOZ_FETCHES_DIR}/firefox/firefox.exe + --flavor mochitest + --output $MOZ_FETCHES_DIR/../artifacts + +domcount: + description: Run DOM test + treeherder: + symbol: perftest(win-dom) + attributes: + batch: false + cron: true + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3.exe python/mozperftest/mozperftest/runner.py + browser/base/content/test/perftest_browser_xhtml_dom.js + --browsertime-binary ${MOZ_FETCHES_DIR}/firefox/firefox.exe + --flavor desktop-browser + --perfherder + --perfherder-metrics name:totalDOMCount,unit:count name:panelMenuCount,unit:count name:lightDOMCount,unit:count name:lightDOMDetails,unit:count + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver.exe + --browsertime-node ${MOZ_FETCHES_DIR}/node/node.exe + --output $MOZ_FETCHES_DIR/../artifacts + + +livesites: + description: Live site performance testing + variants: [http3] + treeherder: + symbol: perftest({symbol}) + attributes: + batch: false + cron: true + perftest: + - [cloudflare, netwerk/test/perf/perftest_http3_cloudflareblog.js] + # broken: bug 1678588 + # - [fb-scroll, netwerk/test/perf/perftest_http3_facebook_scroll.js] + # broken: bug 1879851 + # - [g-image, netwerk/test/perf/perftest_http3_google_image.js] + # broken: bug 1799655 + # - [g-search, netwerk/test/perf/perftest_http3_google_search.js] + - [lq-fetch, netwerk/test/perf/perftest_http3_lucasquicfetch.js] + # broken: bug 1695871 + # - [ytw, netwerk/test/perf/perftest_http3_youtube_watch.js] + # - [ytw-scroll, netwerk/test/perf/perftest_http3_youtube_watch_scroll.js] + perftest-metrics: + by-perftest: + cloudflare: + # Example of how the specify settings for each metric + resources: + extraOptions: [] + firstPaint: {} + navigationTiming: {} + pageTimings: {} + timeToContentfulPaint: {} + # broken: bug 1678588 + # fb-scroll: [navigationTiming, pageTimings, resources, firstPaint, timeToContentfulPaint, requestsPerSecond] + # broken: bug 1879851 + # g-image: [navigationTiming, pageTimings, resources, firstPaint, timeToContentfulPaint, imagesPerSecond, imageLoadTime] + # g-search: [navigationTiming, pageTimings, resources, firstPaint, timeToContentfulPaint] + lq-fetch: [navigationTiming, pageTimings, resources, timeToContentfulPaint, resourceLoadTime, imagesLoaded, imagesMissed] + # broken: bug 1695871 + # ytw: [navigationTiming, pageTimings, resources, firstPaint, timeToContentfulPaint, droppedFrames, decodedFrames] + # ytw-scroll: [navigationTiming, pageTimings, resources, firstPaint, timeToContentfulPaint, droppedFrames, decodedFrames] + default: [navigationTiming, pageTimings, resources, firstPaint, timeToContentfulPaint] + # Leave this here so people know this exists when looking + # for examples + perftest-perfherder-global: + extraOptions: [] + perftest-extra-options: + by-perftest: + cloudflare: + - --perfherder-split-by browserScripts.pageinfo.url + # g-search: + # - --perfherder-split-by browserScripts.pageinfo.url + lq-fetch: + - --perfherder-split-by browserScripts.pageinfo.url + default: [] + perftest-btime-variants: + by-perftest: + cloudflare: + - ["10s", browsertime.waitTime=10000] + - ["25s", browsertime.waitTime=25000] + - ["35s", browsertime.waitTime=35000] + - ["60s", browsertime.waitTime=60000] + # broken: bug 1678588 + # fb-scroll: + # - ["10s", browsertime.waitTime=10000] + # - ["25s", browsertime.waitTime=25000] + # - ["35s", browsertime.waitTime=35000] + # - ["60s", browsertime.waitTime=60000] + # g-search: + # - ["10s", browsertime.waitTime=10000] + # - ["25s", browsertime.waitTime=25000] + # - ["35s", browsertime.waitTime=35000] + # - ["60s", browsertime.waitTime=60000] + lq-fetch: + - [null, "browsertime.waitTime=1000,browsertime.cycles=5"] + # broken: bug 1695871 + # ytw: + # - [null, browsertime.waitTime=20000] + # ytw-scroll: + # - [null, browsertime.waitTime=20000] + default: + - [null, browsertime.waitTime=1000] + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3.exe python/mozperftest/mozperftest/runner.py + {perftest_testname} + --browsertime-binary ${MOZ_FETCHES_DIR}/firefox/firefox.exe + --browsertime-iterations 10 + --flavor desktop-browser + --perfherder + --perfherder-metrics {perftest_metrics} + --perfherder-simplify-names + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver.exe + --browsertime-node ${MOZ_FETCHES_DIR}/node/node.exe + --output $MOZ_FETCHES_DIR/../artifacts + +controlled: + description: Controlled performance testing + treeherder: + symbol: perftest(controlled) + worker: + max-run-time: 14400 + attributes: + batch: false + cron: false + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3.exe python/mozperftest/mozperftest/runner.py + netwerk/test/perf/perftest_http3_controlled.js + --browsertime-binary ${MOZ_FETCHES_DIR}/firefox/firefox.exe + --browsertime-iterations 1 + --browsertime-cycles 96 + --hooks netwerk/test/perf/hooks_throttling.py + --flavor desktop-browser + --perfherder + --perfherder-metrics name:navigationTiming,unit:ms name:pageTimings,unit:ms name:resources,unit:ms name:firstPaint,unit:ms name:timeToContentfulPaint,unit:ms + --perfherder-simplify-names + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver.exe + --browsertime-node ${MOZ_FETCHES_DIR}/node/node.exe + --output $MOZ_FETCHES_DIR/../artifacts + +perfstats: + description: Run PerfStats pageload test + treeherder: + symbol: perftest(win-perfstats) + attributes: + batch: false + cron: false + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3.exe python/mozperftest/mozperftest/runner.py + --browsertime-binary ${MOZ_FETCHES_DIR}/firefox/firefox.exe + --flavor desktop-browser + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver.exe + --browsertime-node ${MOZ_FETCHES_DIR}/node/node.exe + --output $MOZ_FETCHES_DIR/../artifacts + --perfherder + --perfherder-metrics name:HttpChannelCompletion,unit:ms name:HttpChannelCompletion_Cache,unit:ms name:HttpChannelCompletion_Network,unit:ms name:DisplayListBuilding,unit:ms name:Reflowing,unit:ms name:Styling,unit:ms + --browsertime-iterations 10 + --hooks testing/performance/hooks_perfstats.py + testing/performance/perftest_perfstats.js diff --git a/taskcluster/ci/post-balrog-dummy/kind.yml b/taskcluster/ci/post-balrog-dummy/kind.yml new file mode 100644 index 0000000000..e1a9849bbc --- /dev/null +++ b/taskcluster/ci/post-balrog-dummy/kind.yml @@ -0,0 +1,22 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.per_platform_dummy + - gecko_taskgraph.transforms.reverse_chunk_deps + - gecko_taskgraph.transforms.task + +kind-dependencies: + - balrog + +jobs: + post-balrog-dummy: + description: Dummy task to deal with max_dependencies + from-deps: {} + run-on-projects: [] + shipping-phase: promote + worker-type: succeed diff --git a/taskcluster/ci/post-beetmover-checksums-dummy/kind.yml b/taskcluster/ci/post-beetmover-checksums-dummy/kind.yml new file mode 100644 index 0000000000..40ff97dce8 --- /dev/null +++ b/taskcluster/ci/post-beetmover-checksums-dummy/kind.yml @@ -0,0 +1,31 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.reverse_chunk_deps:transforms + - gecko_taskgraph.transforms.task:transforms + +kind-dependencies: + - beetmover-checksums + - release-beetmover-source-checksums + - release-eme-free-repack-beetmover-checksums + - release-beetmover-signed-langpacks-checksums + +jobs: + firefox-promote: + name: post-beetmover-checksums-dummy + description: Dummy task to deal with max_dependencies + run-on-projects: [] + shipping-phase: promote + shipping-product: firefox + worker-type: succeed + devedition-promote: + name: post-beetmover-checksums-dummy + description: Dummy task to deal with max_dependencies + run-on-projects: [] + shipping-phase: promote + shipping-product: devedition + worker-type: succeed diff --git a/taskcluster/ci/post-beetmover-dummy/kind.yml b/taskcluster/ci/post-beetmover-dummy/kind.yml new file mode 100644 index 0000000000..e5d50ce256 --- /dev/null +++ b/taskcluster/ci/post-beetmover-dummy/kind.yml @@ -0,0 +1,23 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.per_platform_dummy + - gecko_taskgraph.transforms.reverse_chunk_deps + - gecko_taskgraph.transforms.task + +kind-dependencies: + - beetmover-checksums + - beetmover-repackage + +jobs: + post-beetmover-dummy: + description: Dummy task to deal with max_dependencies + from-deps: {} + run-on-projects: [] + shipping-phase: promote + worker-type: succeed diff --git a/taskcluster/ci/post-langpack-dummy/kind.yml b/taskcluster/ci/post-langpack-dummy/kind.yml new file mode 100644 index 0000000000..95fe9f7684 --- /dev/null +++ b/taskcluster/ci/post-langpack-dummy/kind.yml @@ -0,0 +1,29 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.reverse_chunk_deps:transforms + - gecko_taskgraph.transforms.task:transforms + +kind-dependencies: + - release-beetmover-signed-langpacks + +jobs: + firefox-promote: + name: post-langpack-dummy + description: Dummy task to deal with max_dependencies + run-on-projects: [] + shipping-phase: promote + shipping-product: firefox + worker-type: succeed + + devedition-promote: + name: post-langpack-dummy + description: Dummy task to deal with max_dependencies + run-on-projects: [] + shipping-phase: promote + shipping-product: devedition + worker-type: succeed diff --git a/taskcluster/ci/post-update-verify-dummy/kind.yml b/taskcluster/ci/post-update-verify-dummy/kind.yml new file mode 100644 index 0000000000..6d7bfb3515 --- /dev/null +++ b/taskcluster/ci/post-update-verify-dummy/kind.yml @@ -0,0 +1,22 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.per_platform_dummy + - gecko_taskgraph.transforms.reverse_chunk_deps + - gecko_taskgraph.transforms.task + +kind-dependencies: + - release-update-verify + +jobs: + post-update-verify-dummy: + description: Dummy task to deal with max_dependencies + from-deps: {} + run-on-projects: [] + shipping-phase: promote + worker-type: succeed diff --git a/taskcluster/ci/release-balrog-scheduling/kind.yml b/taskcluster/ci/release-balrog-scheduling/kind.yml new file mode 100644 index 0000000000..64bd751ca3 --- /dev/null +++ b/taskcluster/ci/release-balrog-scheduling/kind.yml @@ -0,0 +1,92 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.scriptworker:add_balrog_scopes + - gecko_taskgraph.transforms.task:transforms + +kind-dependencies: + - release-bouncer-check + - release-push-langpacks + +job-defaults: + run-on-projects: [] + shipping-phase: ship + worker-type: balrog + worker: + implementation: balrog + balrog-action: schedule + +jobs: + firefox: + description: Schedule Firefox publishing in balrog + name: release-firefox_schedule_publishing_in_balrog + shipping-product: firefox + worker: + product: firefox + publish-rules: + by-release-level: + production: + by-release-type: + beta: [32] + release: [145] + esr115: [17824] + default: [] + staging: + by-release-type: + beta: [32] + release: [145] + esr115: [909] + default: [] + background-rate: + by-release-type: + beta: + by-beta-number: + '1': 25 + '2': 50 + '3': 100 + default: null + default: null + force-fallback-mapping-update: + by-release-type: + beta: + by-beta-number: + '1': true + default: false + default: false + pin-channels: + by-release-type: + beta: ["beta"] + release: ["release"] + esr.*: ["esr", "esr-next"] + default: [] + treeherder: + platform: firefox-release/opt + symbol: Rel(BSFx) + tier: 1 + kind: build + devedition: + description: Schedule Devedition publishing in balrog + name: release-devedition_schedule_publishing_in_balrog + shipping-product: devedition + worker: + product: devedition + publish-rules: [10] + background-rate: + by-release-type: + beta: null + default: null + force-fallback-mapping-update: + by-release-type: + beta: true + default: false + pin-channels: ["aurora"] + treeherder: + platform: devedition-release/opt + symbol: Rel(BSDev) + tier: 1 + kind: build diff --git a/taskcluster/ci/release-balrog-submit-toplevel/kind.yml b/taskcluster/ci/release-balrog-submit-toplevel/kind.yml new file mode 100644 index 0000000000..dc1155df9d --- /dev/null +++ b/taskcluster/ci/release-balrog-submit-toplevel/kind.yml @@ -0,0 +1,79 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.release:run_on_releases + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.scriptworker:add_balrog_scopes + - gecko_taskgraph.transforms.balrog_toplevel:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + run-on-projects: [] # to make sure this never runs in CI + shipping-phase: promote + worker-type: balrog + worker: + implementation: balrog + balrog-action: v2-submit-toplevel + require-mirrors: true + archive-domain: + by-release-level: + production: archive.mozilla.org + staging: ftp.stage.mozaws.net + download-domain: + by-release-level: + production: download.mozilla.org + staging: dev.bouncer.nonprod.webservices.mozgcp.net + whats-new-config: browser/config/whats_new_page.yml + +jobs: + firefox: + name: submit-toplevel-firefox-release-to-balrog + description: Submit toplevel Firefox release to balrog + shipping-product: firefox + worker: + product: firefox + channel-names: + by-release-type: + beta: ["beta", "beta-localtest", "beta-cdntest"] + release(-rc)?: ["release", "release-localtest", "release-cdntest"] + esr.*: ["esr", "esr-localtest", "esr-cdntest", "esr-localtest-next", "esr-cdntest-next"] + default: [] + rules-to-update: + by-release-type: + beta: ["firefox-beta-cdntest", "firefox-beta-localtest"] + release(-rc)?: ["firefox-release-cdntest", "firefox-release-localtest"] + esr115: ["firefox-esr115-cdntest", "firefox-esr115-localtest"] + default: [] + pin-channels: + by-release-type: + beta: ["beta-localtest", "beta-cdntest"] + release(-rc)?: ["release-localtest", "release-cdntest"] + esr.*: ["esr-localtest", "esr-cdntest", "esr-localtest-next", "esr-cdntest-next"] + default: [] + platforms: ["linux", "linux64", "macosx64", "win32", "win64", "win64-aarch64"] + treeherder: + platform: firefox-release/opt + symbol: Rel(BPFx) + tier: 1 + kind: build + + devedition: + name: submit-toplevel-devedition-release-to-balrog + description: submit toplevel Devedition release to balrog + shipping-product: devedition + run-on-releases: [beta] + worker: + product: devedition + channel-names: ["aurora", "aurora-localtest", "aurora-cdntest"] + rules-to-update: ["devedition-cdntest", "devedition-localtest"] + pin-channels: ["aurora-localtest", "aurora-cdntest"] + platforms: ["linux", "linux64", "macosx64", "win32", "win64", "win64-aarch64"] + treeherder: + platform: devedition-release/opt + symbol: Rel(BPDev) + tier: 1 + kind: build diff --git a/taskcluster/ci/release-beetmover-push-to-release/kind.yml b/taskcluster/ci/release-beetmover-push-to-release/kind.yml new file mode 100644 index 0000000000..affc0f2c77 --- /dev/null +++ b/taskcluster/ci/release-beetmover-push-to-release/kind.yml @@ -0,0 +1,33 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.beetmover_push_to_release:transforms + - gecko_taskgraph.transforms.task:transforms + +kind-dependencies: + - release-generate-checksums-beetmover + - post-update-verify-dummy + +job-defaults: + run-on-projects: [] + shipping-phase: push + worker: + max-run-time: 2700 + +jobs: + devedition-push-to-release: + name: devedition_push_to_release + product: devedition + shipping-product: devedition + treeherder-platform: devedition-release/opt + + firefox-push-to-release: + name: firefox_push_to_release + product: firefox + shipping-product: firefox + treeherder-platform: firefox-release/opt diff --git a/taskcluster/ci/release-beetmover-signed-langpacks-checksums/kind.yml b/taskcluster/ci/release-beetmover-signed-langpacks-checksums/kind.yml new file mode 100644 index 0000000000..473f711a2a --- /dev/null +++ b/taskcluster/ci/release-beetmover-signed-langpacks-checksums/kind.yml @@ -0,0 +1,23 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.beetmover_langpack_checksums + - gecko_taskgraph.transforms.task + +kind-dependencies: + - release-beetmover-signed-langpacks + +jobs: + release-beetmover-signed-langpacks-checksums: + from-deps: + group-by: single-with-filters + shipping-phase: promote + attributes: + artifact_prefix: public + artifact_map: taskcluster/gecko_taskgraph/manifests/firefox_candidates_checksums.yml diff --git a/taskcluster/ci/release-beetmover-signed-langpacks/kind.yml b/taskcluster/ci/release-beetmover-signed-langpacks/kind.yml new file mode 100644 index 0000000000..63bdcfe921 --- /dev/null +++ b/taskcluster/ci/release-beetmover-signed-langpacks/kind.yml @@ -0,0 +1,40 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.release_beetmover_signed_addons + - gecko_taskgraph.transforms.task + +kind-dependencies: + - build-signing + - shippable-l10n-signing + +only-for-attributes: + - nightly + - shippable + +only-for-build-platforms: + - linux64-shippable/opt + - linux64-devedition/opt + +jobs: + release-beetmover-signed-langpacks: + description: Beetmover submission for platform-independent langpacks {locales} in {platform} directory + from-deps: + group-by: single-with-filters + worker-type: + by-release-level: + production: scriptworker-k8s/gecko-3-beetmover + staging: scriptworker-k8s/gecko-1-beetmover + run-on-projects: [] + shipping-phase: promote + attributes: + artifact_map: + by-release-type: + beta|release.*|esr.*: taskcluster/gecko_taskgraph/manifests/firefox_candidates.yml + default: taskcluster/gecko_taskgraph/manifests/firefox_nightly.yml diff --git a/taskcluster/ci/release-beetmover-source-checksums/kind.yml b/taskcluster/ci/release-beetmover-source-checksums/kind.yml new file mode 100644 index 0000000000..d7a5bf828f --- /dev/null +++ b/taskcluster/ci/release-beetmover-source-checksums/kind.yml @@ -0,0 +1,23 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.beetmover_source_checksums + - gecko_taskgraph.transforms.task + +kind-dependencies: + - release-source-checksums-signing + +jobs: + release-beetmover-source-checksums: + from-deps: + group-by: single-with-filters + shipping-phase: promote + attributes: + artifact_prefix: public + artifact_map: taskcluster/gecko_taskgraph/manifests/source_checksums.yml diff --git a/taskcluster/ci/release-bouncer-aliases/kind.yml b/taskcluster/ci/release-bouncer-aliases/kind.yml new file mode 100644 index 0000000000..d1ce834c48 --- /dev/null +++ b/taskcluster/ci/release-bouncer-aliases/kind.yml @@ -0,0 +1,95 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.bouncer_aliases:transforms + - gecko_taskgraph.transforms.task:transforms + +kind-dependencies: + - release-bouncer-check + +job-defaults: + description: Update bouncer aliases job + worker-type: bouncer + worker: + implementation: bouncer-aliases + scopes: + by-release-level: + production: + - project:releng:bouncer:action:aliases + - project:releng:bouncer:server:production + staging: + - project:releng:bouncer:action:aliases + - project:releng:bouncer:server:staging + run-on-projects: [] + shipping-phase: ship + treeherder: + symbol: Rel(BncAlias) + kind: test + tier: 1 + +jobs: + devedition: + bouncer-products-per-alias: + firefox-devedition-latest-ssl: installer-ssl + firefox-devedition-latest: installer + firefox-devedition-stub: stub-installer + firefox-devedition-msi-latest-ssl: msi + firefox-devedition-msix-latest-ssl: msix + shipping-product: devedition + treeherder: + platform: devedition-release/opt + + firefox: + bouncer-products-per-alias: + by-release-type: + beta: + firefox-beta-latest-ssl: installer-ssl + firefox-beta-latest: installer + firefox-beta-stub: stub-installer + firefox-beta-msi-latest-ssl: msi + firefox-beta-msix-latest-ssl: msix + firefox-beta-pkg-latest-ssl: pkg + firefox-beta-langpack-latest-ssl: langpack + release.*: + firefox-latest-ssl: installer-ssl + firefox-latest: installer + firefox-stub: stub-installer + firefox-msi-latest-ssl: msi + firefox-msix-latest-ssl: msix + firefox-pkg-latest-ssl: pkg + firefox-langpack-latest-ssl: langpack + esr115: + # when there is one ESR branch both sets of aliases work + # when there are two ESR branches ... + # ... these always point to the older branch + firefox-esr-latest-ssl: installer-ssl + firefox-esr-latest: installer + firefox-esr-msi-latest-ssl: msi + firefox-esr-msix-latest-ssl: msix + firefox-esr-pkg-latest-ssl: pkg + firefox-esr-langpack-latest-ssl: langpack + esrXXX: # XXX - to change when we branch next ESR + firefox-esr-next-latest-ssl: installer-ssl + firefox-esr-next-latest: installer + firefox-esr-next-msi-latest-ssl: msi + firefox-esr-next-msix-latest-ssl: msix + firefox-esr-next-pkg-latest-ssl: pkg + firefox-esr-next-langpack-latest-ssl: langpack + default: {} + partner-bouncer-products-per-alias: + by-release-type: + beta: + partner-firefox-beta-PARTNER-latest: installer + partner-firefox-beta-PARTNER-stub: stub-installer + release.*: + partner-firefox-release-PARTNER-latest: installer + partner-firefox-release-PARTNER-stub: stub-installer + default: {} + shipping-product: firefox + treeherder: + platform: firefox-release/opt diff --git a/taskcluster/ci/release-bouncer-check/kind.yml b/taskcluster/ci/release-bouncer-check/kind.yml new file mode 100644 index 0000000000..7b7133ffd5 --- /dev/null +++ b/taskcluster/ci/release-bouncer-check/kind.yml @@ -0,0 +1,76 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - release-beetmover-push-to-release + +transforms: + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.bouncer_check:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + name: release-bouncer-check + description: release bouncer check + run-on-projects: [] # to make sure this never runs as part of CI + shipping-phase: push + worker-type: b-linux-gcp + worker: + max-run-time: 1200 + docker-image: {in-tree: "update-verify"} + run: + sparse-profile: mozharness + extra-config: + by-release-level: + production: + bouncer_prefix: "https://download.mozilla.org/" + staging: + # This is the list on-change locales, excluding ja/ja-JP-mac + # which bouncer_check doesn't support. + locales: ['en-US', 'en-CA', 'he', 'it'] + bouncer_prefix: "https://dev.bouncer.nonprod.webservices.mozgcp.net/" + cdn_urls: + - ftp.stage.mozaws.net + + attributes: + build_platform: linux64 + build_type: opt + treeherder: + symbol: Rel(BncChk) + kind: test + tier: 1 + +jobs: + firefox: + shipping-product: firefox + index: + product: firefox + job-name: firefox-release-bouncer-check + run: + config: + by-release-type: + beta: + - releases/bouncer_firefox_beta.py + release: + - releases/bouncer_firefox_release.py + esr.*: + - releases/bouncer_firefox_esr.py + default: + - releases/bouncer_firefox_beta.py + treeherder: + platform: firefox-release/opt + + devedition: + shipping-product: devedition + index: + product: devedition + job-name: devedition-release-bouncer-check + run: + config: + - releases/bouncer_firefox_devedition.py + treeherder: + platform: devedition-release/opt diff --git a/taskcluster/ci/release-bouncer-sub/kind.yml b/taskcluster/ci/release-bouncer-sub/kind.yml new file mode 100644 index 0000000000..131b41b0a7 --- /dev/null +++ b/taskcluster/ci/release-bouncer-sub/kind.yml @@ -0,0 +1,58 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.release:run_on_releases + - gecko_taskgraph.transforms.bouncer_submission:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + description: release bouncer submission job + worker-type: bouncer + worker: + implementation: bouncer-submission + scopes: + by-release-level: + production: + - project:releng:bouncer:action:submission + - project:releng:bouncer:server:production + staging: + - project:releng:bouncer:action:submission + - project:releng:bouncer:server:staging + run-on-projects: [] + shipping-phase: promote + locales-file: browser/locales/shipped-locales + treeherder: + symbol: Rel(BncSub) + kind: test + tier: 1 + +jobs: + devedition: + bouncer-platforms: ['linux', 'linux64', 'osx', 'win', 'win64', 'win64-aarch64'] + bouncer-products: ['complete-mar', 'installer', 'installer-ssl', 'partial-mar', 'stub-installer', 'msi', 'msix'] + shipping-product: devedition + treeherder: + platform: devedition-release/opt + + firefox: + bouncer-platforms: ['linux', 'linux64', 'osx', 'win', 'win64', 'win64-aarch64'] + bouncer-products: + by-release-type: + default: ['complete-mar', 'installer', 'installer-ssl', 'partial-mar', 'stub-installer', 'msi', 'msix', 'pkg', 'langpack'] + esr.*: ['complete-mar', 'installer', 'installer-ssl', 'partial-mar', 'msi', 'msix', 'pkg', 'langpack'] + shipping-product: firefox + treeherder: + platform: firefox-release/opt + + firefox-rc: + bouncer-platforms: ['linux', 'linux64', 'osx', 'win', 'win64', 'win64-aarch64'] + bouncer-products: ['complete-mar-candidates', 'partial-mar-candidates'] + shipping-product: firefox + run-on-releases: ['release-rc'] + treeherder: + symbol: Rel(BncSub-RC) + platform: firefox-release/opt diff --git a/taskcluster/ci/release-early-tagging/kind.yml b/taskcluster/ci/release-early-tagging/kind.yml new file mode 100644 index 0000000000..9b194fb441 --- /dev/null +++ b/taskcluster/ci/release-early-tagging/kind.yml @@ -0,0 +1,46 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.release_version_bump:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + description: Release Promotion version tag for buildN + run-on-projects: [] + shipping-phase: promote + worker-type: tree + worker: + implementation: treescript + tags: ['buildN'] + bump: false + dontbuild: true + push: + by-project: + mozilla-(beta|release|esr.*): true + maple: true + default: false + + +jobs: + firefox: + name: firefox-tag-buildN + shipping-product: firefox + treeherder: + platform: firefox-release/opt + symbol: Rel(TagBuild) + tier: 1 + kind: build + + devedition: + name: devedition-tag-buildN + shipping-product: devedition + treeherder: + platform: devedition-release/opt + symbol: Rel(TagBuild) + tier: 1 + kind: build diff --git a/taskcluster/ci/release-eme-free-repack-beetmover-checksums/kind.yml b/taskcluster/ci/release-eme-free-repack-beetmover-checksums/kind.yml new file mode 100644 index 0000000000..c75a85ac54 --- /dev/null +++ b/taskcluster/ci/release-eme-free-repack-beetmover-checksums/kind.yml @@ -0,0 +1,24 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.beetmover_emefree_checksums + - gecko_taskgraph.transforms.task + +kind-dependencies: + - release-eme-free-repack-beetmover + +only-for-build-platforms: + - macosx64-shippable/opt + - win32-shippable/opt + - win64-shippable/opt + +jobs: + release-eme-free-repack-beetmover-checksums: + from-deps: {} + shipping-phase: promote diff --git a/taskcluster/ci/release-eme-free-repack-beetmover/kind.yml b/taskcluster/ci/release-eme-free-repack-beetmover/kind.yml new file mode 100644 index 0000000000..7a33d0fb69 --- /dev/null +++ b/taskcluster/ci/release-eme-free-repack-beetmover/kind.yml @@ -0,0 +1,26 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.beetmover_repackage_partner + - gecko_taskgraph.transforms.task + +kind-dependencies: + - release-eme-free-repack-repackage-signing + +only-for-build-platforms: + - macosx64-shippable/opt + - win32-shippable/opt + - win64-shippable/opt + +jobs: + release-eme-free-repack-beetmover: + from-deps: + group-by: single-with-filters + shipping-phase: promote + partner-path: "{platform}-EME-free/{locale}" diff --git a/taskcluster/ci/release-eme-free-repack-mac-notarization/kind.yml b/taskcluster/ci/release-eme-free-repack-mac-notarization/kind.yml new file mode 100644 index 0000000000..ff04daf61d --- /dev/null +++ b/taskcluster/ci/release-eme-free-repack-mac-notarization/kind.yml @@ -0,0 +1,29 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.mac_notarization + - gecko_taskgraph.transforms.chunk_partners + - gecko_taskgraph.transforms.partner_signing + - gecko_taskgraph.transforms.signing + - gecko_taskgraph.transforms.task + +kind-dependencies: + - release-eme-free-repack-mac-signing + +only-for-build-platforms: + - macosx64-shippable/opt + +jobs: + release-eme-free-repack-mac-notarization: + from-deps: + group-by: partner-repack-ids + copy-attributes: true + shipping-product: firefox + shipping-phase: promote + max-run-time: 1800 + copy-repack-ids: true diff --git a/taskcluster/ci/release-eme-free-repack-mac-signing/kind.yml b/taskcluster/ci/release-eme-free-repack-mac-signing/kind.yml new file mode 100644 index 0000000000..84d0e17dd1 --- /dev/null +++ b/taskcluster/ci/release-eme-free-repack-mac-signing/kind.yml @@ -0,0 +1,28 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.chunk_partners + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.partner_signing + - gecko_taskgraph.transforms.signing + - gecko_taskgraph.transforms.hardened_signing + - gecko_taskgraph.transforms.task + +kind-dependencies: + - release-eme-free-repack + +only-for-build-platforms: + - macosx64-shippable/opt + +jobs: + release-eme-free-repack-mac-signing: + from-deps: + group-by: partner-repack-ids + shipping-product: firefox + shipping-phase: promote + repacks-per-chunk: 5 diff --git a/taskcluster/ci/release-eme-free-repack-repackage-signing/kind.yml b/taskcluster/ci/release-eme-free-repack-repackage-signing/kind.yml new file mode 100644 index 0000000000..c369761202 --- /dev/null +++ b/taskcluster/ci/release-eme-free-repack-repackage-signing/kind.yml @@ -0,0 +1,24 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.repackage_signing_partner + - gecko_taskgraph.transforms.task + +kind-dependencies: + - release-eme-free-repack-repackage + +only-for-build-platforms: + - win32-shippable/opt + - win64-shippable/opt + - macosx64-shippable/opt + +jobs: + release-eme-free-repack-repackage-signing: + from-deps: + group-by: single-with-filters diff --git a/taskcluster/ci/release-eme-free-repack-repackage/kind.yml b/taskcluster/ci/release-eme-free-repack-repackage/kind.yml new file mode 100644 index 0000000000..78bc18fe6d --- /dev/null +++ b/taskcluster/ci/release-eme-free-repack-repackage/kind.yml @@ -0,0 +1,60 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.repackage_set_upstream_mac_kind + - gecko_taskgraph.transforms.chunk_partners + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.repackage_partner + - gecko_taskgraph.transforms.job + - gecko_taskgraph.transforms.task + +kind-dependencies: + - release-eme-free-repack + - release-eme-free-repack-mac-signing + - release-eme-free-repack-mac-notarization + - toolchain + +only-for-build-platforms: + - macosx64-shippable/opt + - win32-shippable/opt + - win64-shippable/opt + +jobs: + release-eme-free-repack-repackage: + from-deps: + group-by: single-with-filters + upstream-mac-kind: + by-build-type: + debug: release-eme-free-repack-mac-signing + default: + by-project: + mozilla-(central|beta|release|esr.*): release-eme-free-repack-mac-notarization + default: release-eme-free-repack-mac-signing + mozharness: + config: + by-build-platform: + macosx64-.*: + - repackage/base.py + - repackage/osx_partner.py + win32-.*: + - repackage/base.py + - repackage/win32_sfx_stub.py + - repackage/win32_partner.py + win64-(?!aarch64).*: + - repackage/base.py + - repackage/win32_sfx_stub.py + - repackage/win64_partner.py + win64-aarch64-.*: + - repackage/base.py + - repackage/win64-aarch64_sfx_stub.py + - repackage/win64_partner.py + package-formats: + by-build-platform: + macosx64\b.*: [dmg] + win32\b.*: [installer] + win64\b.*: [installer] diff --git a/taskcluster/ci/release-eme-free-repack/kind.yml b/taskcluster/ci/release-eme-free-repack/kind.yml new file mode 100644 index 0000000000..cc3e85071b --- /dev/null +++ b/taskcluster/ci/release-eme-free-repack/kind.yml @@ -0,0 +1,81 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.partner_repack:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +kind-dependencies: + - build-signing + - build-mac-signing + - build-mac-notarization + - shippable-l10n-signing + - shippable-l10n-mac-signing + - shippable-l10n-mac-notarization + +job-defaults: + name: eme-free-repack + description: Release Promotion eme-free repacks + run-on-projects: [] # to make sure this never runs as part of CI + shipping-product: firefox + shipping-phase: promote + worker-type: b-linux-gcp + worker: + docker-image: + in-tree: "partner-repack" + chain-of-trust: true + max-run-time: 7200 + run: + using: mozharness + config: + - partner_repacks/release_mozilla-release_desktop.py + script: mozharness/scripts/desktop_partner_repacks.py + job-script: taskcluster/scripts/builder/repackage.sh + tooltool-downloads: false + extra: + limit-locales: + by-release-level: + staging: true + production: false + +jobs: + macosx64-shippable: + treeherder: + symbol: EME + platform: macosx64/opt + kind: test + tier: 1 + attributes: + build_platform: macosx64-shippable + build_type: opt + artifact_prefix: releng/partner + shippable: true + + win32-shippable: + treeherder: + symbol: EME + platform: win32/opt + kind: test + tier: 1 + attributes: + build_platform: win32-shippable + build_type: opt + artifact_prefix: releng/partner + shippable: true + + win64-shippable: + treeherder: + symbol: EME + platform: win64/opt + kind: test + tier: 1 + attributes: + build_platform: win64-shippable + build_type: opt + artifact_prefix: releng/partner + shippable: true diff --git a/taskcluster/ci/release-final-verify/kind.yml b/taskcluster/ci/release-final-verify/kind.yml new file mode 100644 index 0000000000..b1319665cd --- /dev/null +++ b/taskcluster/ci/release-final-verify/kind.yml @@ -0,0 +1,47 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - release-bouncer-check + - release-update-verify-config + +transforms: + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.final_verify:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + name: final-verify + run-on-projects: [] # to make sure this never runs as part of CI + worker-type: b-linux-gcp + worker: + docker-image: + in-tree: "update-verify" + max-run-time: 7200 + retry-exit-status: [1] + + +jobs: + firefox: + description: final verify + shipping-phase: push + shipping-product: firefox + treeherder: + platform: firefox-release/opt + kind: test + symbol: Rel(FV) + tier: 1 + + devedition: + description: final verify + shipping-phase: push + shipping-product: devedition + treeherder: + platform: devedition-release/opt + kind: test + symbol: Rel(FV) + tier: 1 diff --git a/taskcluster/ci/release-flatpak-push/kind.yml b/taskcluster/ci/release-flatpak-push/kind.yml new file mode 100644 index 0000000000..27f5ebf3ec --- /dev/null +++ b/taskcluster/ci/release-flatpak-push/kind.yml @@ -0,0 +1,42 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.release:run_on_releases + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.release_flatpak_push:transforms + - gecko_taskgraph.transforms.task:transforms + +kind-dependencies: + - release-flatpak-repackage + +job-defaults: + description: Pushes Flatpaks onto Flathub + run-on-projects: [] # to make sure this never runs as part of CI + run-on-releases: [beta, release, release-rc] + shipping-phase: ship + treeherder: + platform: linux64/opt + kind: build + tier: 2 + worker-type: + by-release-level: + production: scriptworker-k8s/gecko-3-pushflatpak + staging: scriptworker-k8s/gecko-1-pushflatpak + worker: + implementation: push-flatpak + channel: + by-release-type: + beta: beta + release: stable + default: mock + +jobs: + firefox: + shipping-product: firefox + flathub-scope: "flathub:firefox" + treeherder: + symbol: Flatpak(push) diff --git a/taskcluster/ci/release-flatpak-repackage/kind.yml b/taskcluster/ci/release-flatpak-repackage/kind.yml new file mode 100644 index 0000000000..ecc86bf4ab --- /dev/null +++ b/taskcluster/ci/release-flatpak-repackage/kind.yml @@ -0,0 +1,66 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.release:run_on_releases + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.release_flatpak_repackage:transforms + - gecko_taskgraph.transforms.task:transforms + +kind-dependencies: + - post-beetmover-dummy + - post-langpack-dummy + +job-defaults: + description: Generates flatpak by reackaging the existing tar.bz2 + run-on-projects: [] # to make sure this never runs as part of CI + run-on-releases: [beta, release, release-rc] + shipping-phase: promote + scopes: [] + treeherder: + platform: linux64-shippable/opt + kind: build + tier: 2 + worker-type: b-linux-gcp + worker: + implementation: docker-worker + os: linux + max-run-time: 7200 + docker-image: {in-tree: firefox-flatpak} + artifacts: + - name: public/build + type: directory + path: /home/worker/artifacts/ + command: + - /bin/bash + - -cx + - ./runme.sh + env: + VERSION: "{release_config[version]}" + BUILD_NUMBER: "{release_config[build_number]}" + CANDIDATES_DIR: + by-release-level: + staging: + https://ftp.stage.mozaws.net/pub/{task[shipping-product]}/candidates + production: + https://archive.mozilla.org/pub/{task[shipping-product]}/candidates + LC_ALL: C.UTF-8 + LANG: C.UTF-8 + L10N_CHANGESETS: "{config_params[head_repository]}/raw-file/{config_params[head_rev]}/browser/locales/l10n-changesets.json" + FLATPAK_BRANCH: + by-project: + mozilla-release: stable + default: beta + chain-of-trust: true + +jobs: + firefox: + shipping-product: firefox + attributes: + build_platform: linux64-shippable + build_type: opt + treeherder: + symbol: Flatpak(r) diff --git a/taskcluster/ci/release-generate-checksums-beetmover/kind.yml b/taskcluster/ci/release-generate-checksums-beetmover/kind.yml new file mode 100644 index 0000000000..ca998ea2f2 --- /dev/null +++ b/taskcluster/ci/release-generate-checksums-beetmover/kind.yml @@ -0,0 +1,21 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.release_generate_checksums_beetmover + - gecko_taskgraph.transforms.task + +kind-dependencies: + - release-generate-checksums-signing + +jobs: + release-generate-checksums-beetmover: + from-deps: + group-by: single-with-filters + shipping-phase: promote + attributes: + artifact_map: taskcluster/gecko_taskgraph/manifests/release_checksums.yml diff --git a/taskcluster/ci/release-generate-checksums-signing/kind.yml b/taskcluster/ci/release-generate-checksums-signing/kind.yml new file mode 100644 index 0000000000..a86b4c8dc5 --- /dev/null +++ b/taskcluster/ci/release-generate-checksums-signing/kind.yml @@ -0,0 +1,18 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - release-generate-checksums + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.release_generate_checksums_signing + - gecko_taskgraph.transforms.task + +jobs: + release-generate-checksums-signing: + from-deps: {} + shipping-phase: promote diff --git a/taskcluster/ci/release-generate-checksums/kind.yml b/taskcluster/ci/release-generate-checksums/kind.yml new file mode 100644 index 0000000000..71018c8cef --- /dev/null +++ b/taskcluster/ci/release-generate-checksums/kind.yml @@ -0,0 +1,86 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - beetmover-source + - post-beetmover-checksums-dummy + - release-beetmover-signed-langpacks + +transforms: + - gecko_taskgraph.transforms.build:transforms + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.release_generate_checksums:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + name: generate-checksums + description: generates checksums + run-on-projects: [] # to make sure this never runs as part of CI + shipping-phase: promote + worker-type: b-linux-gcp + worker: + max-run-time: 1200 + artifacts: + - name: public/build/SHA256SUMMARY + path: /builds/worker/SHA256SUMMARY + type: file + - name: public/build/SHA256SUMS + path: /builds/worker/SHA256SUMS + type: file + - name: public/build/SHA512SUMMARY + path: /builds/worker/SHA512SUMMARY + type: file + - name: public/build/SHA512SUMS + path: /builds/worker/SHA512SUMS + type: file + run: + using: mozharness + config: [] # See extra-config below + actions: [create-virtualenv, collect-individual-checksums, create-big-checksums, create-summary] + options: + - "version={version}" + - "build-number={build_number}" + script: "mozharness/scripts/release/generate-checksums.py" + treeherder: + symbol: Rel(GenChcks) + kind: test + tier: 1 + +jobs: + firefox: + shipping-product: firefox + attributes: + build_platform: firefox-release + build_type: opt + run: + extra-config: + by-release-level: + production: + stage_product: "firefox" + bucket_name: "moz-fx-productdelivery-pr-38b5-productdelivery" + staging: + stage_product: "firefox" + bucket_name: "moz-fx-productdelivery-no-7d6a-productdelivery" + treeherder: + platform: firefox-release/opt + + devedition: + shipping-product: devedition + attributes: + build_platform: devedition-release + build_type: opt + run: + extra-config: + by-release-level: + production: + stage_product: "devedition" + bucket_name: "moz-fx-productdelivery-pr-38b5-productdelivery" + staging: + stage_product: "devedition" + bucket_name: "moz-fx-productdelivery-no-7d6a-productdelivery" + treeherder: + platform: devedition-release/opt diff --git a/taskcluster/ci/release-mark-as-shipped/kind.yml b/taskcluster/ci/release-mark-as-shipped/kind.yml new file mode 100644 index 0000000000..c9f6c82973 --- /dev/null +++ b/taskcluster/ci/release-mark-as-shipped/kind.yml @@ -0,0 +1,40 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.release_mark_as_shipped:transforms + - gecko_taskgraph.transforms.task:transforms + +kind-dependencies: + - release-balrog-scheduling + - release-bouncer-aliases + - release-version-bump + +job-defaults: + description: mark release as shipped in Ship-It + worker-type: shipit + worker: + implementation: shipit-shipped + scopes: + by-release-level: + production: + - project:releng:ship-it:server:production + - project:releng:ship-it:action:mark-as-shipped + staging: + - project:releng:ship-it:server:staging + - project:releng:ship-it:action:mark-as-shipped + run-on-projects: [] + shipping-phase: ship + +jobs: + firefox: + name: release-firefox_mark_as_shipped + shipping-product: firefox + + devedition: + name: release-devedition_mark_as_shipped + shipping-product: devedition diff --git a/taskcluster/ci/release-msix-push/kind.yml b/taskcluster/ci/release-msix-push/kind.yml new file mode 100644 index 0000000000..3009c74df2 --- /dev/null +++ b/taskcluster/ci/release-msix-push/kind.yml @@ -0,0 +1,45 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.release:run_on_releases + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.release_msix_push:transforms + - gecko_taskgraph.transforms.task:transforms + +kind-dependencies: + - repackage-shippable-l10n-msix + +job-defaults: + description: Pushes msix archives to Microsoft Store + run-on-projects: [] # to make sure this never runs as part of CI + run-on-releases: [beta, release, release-rc] + shipping-phase: ship # note override in transform + treeherder: + platform: win32-shippable/opt + kind: build + tier: 2 + worker-type: + by-release-level: + production: scriptworker-k8s/gecko-3-pushmsix + staging: scriptworker-k8s/gecko-1-pushmsix + worker: + implementation: push-msix + channel: + by-release-type: + beta: beta + release.*: release + default: mock + publish-mode: + by-release-type: + beta: Immediate + default: Manual + +jobs: + firefox: + shipping-product: firefox + treeherder: + symbol: MSIX(push) diff --git a/taskcluster/ci/release-notify-av-announce/kind.yml b/taskcluster/ci/release-notify-av-announce/kind.yml new file mode 100644 index 0000000000..45a0e5db53 --- /dev/null +++ b/taskcluster/ci/release-notify-av-announce/kind.yml @@ -0,0 +1,40 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.release_notifications:transforms + - gecko_taskgraph.transforms.task:transforms + +kind-dependencies: + - post-beetmover-dummy + +job-defaults: + name: notify-av-announce + description: Sends email to antivirus vendors telling them that the release is available for scanning. + run-on-projects: [] + shipping-phase: push + worker-type: succeed + notifications: + # !t is a custom format option that calls .title() on the string. + subject: "{task[shipping-product]!t} {release_config[version]} build{release_config[build_number]} release" + message: | + Company Name: Mozilla + Contact Department: Release Engineering + Contact email address: release@mozilla.com + Product information: {task[shipping-product]} {release_config[version]} + Product location: https://releases.mozilla.org/pub/{task[shipping-product]}/candidates/{release_config[version]}-candidates/build{release_config[build_number]}/ + emails: + by-project: + mozilla-(beta|release|esr.*): ["av-vendor-release-announce@mozilla.org"] + try: ["{config[params][owner]}"] + default: [] + +jobs: + firefox: + shipping-product: firefox + devedition: + shipping-product: devedition diff --git a/taskcluster/ci/release-notify-promote/kind.yml b/taskcluster/ci/release-notify-promote/kind.yml new file mode 100644 index 0000000000..9fcc8a3262 --- /dev/null +++ b/taskcluster/ci/release-notify-promote/kind.yml @@ -0,0 +1,36 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.release_notifications:transforms + - gecko_taskgraph.transforms.task:transforms + +kind-dependencies: + - post-beetmover-dummy + - release-generate-checksums-beetmover + - release-bouncer-sub + +job-defaults: + name: notify-release-drivers-promote + description: Sends email to release-drivers telling release was promoted. + run-on-projects: [] + shipping-phase: promote + worker-type: succeed + notifications: + subject: "{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]} is in the candidates directory" + message: "{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]} is in the candidates directory" + emails: + by-project: + mozilla-(beta|release|esr.*): ["release-signoff@mozilla.org"] + try: ["{config[params][owner]}"] + default: [] + +jobs: + firefox: + shipping-product: firefox + devedition: + shipping-product: devedition diff --git a/taskcluster/ci/release-notify-push/kind.yml b/taskcluster/ci/release-notify-push/kind.yml new file mode 100644 index 0000000000..1b641d383e --- /dev/null +++ b/taskcluster/ci/release-notify-push/kind.yml @@ -0,0 +1,34 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.release_notifications:transforms + - gecko_taskgraph.transforms.task:transforms + +kind-dependencies: + - release-beetmover-push-to-release + +job-defaults: + name: notify-release-drivers-push + description: Sends email to release-drivers telling release was pushed. + run-on-projects: [] + shipping-phase: push + worker-type: succeed + notifications: + subject: "{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]} has been pushed to cdntest" + message: "{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]} has been pushed to cdntest" + emails: + by-project: + mozilla-(beta|release|esr.*): ["release-signoff@mozilla.org"] + try: ["{config[params][owner]}"] + default: [] + +jobs: + firefox: + shipping-product: firefox + devedition: + shipping-product: devedition diff --git a/taskcluster/ci/release-notify-ship/kind.yml b/taskcluster/ci/release-notify-ship/kind.yml new file mode 100644 index 0000000000..6f0c0f7627 --- /dev/null +++ b/taskcluster/ci/release-notify-ship/kind.yml @@ -0,0 +1,41 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.release_notifications:transforms + - gecko_taskgraph.transforms.task:transforms + +kind-dependencies: + - release-balrog-scheduling + - release-bouncer-aliases + - release-version-bump + - release-mark-as-shipped + +job-defaults: + name: notify-release-drivers-ship + description: Sends email to release-drivers telling release was shipped. + run-on-projects: [] + shipping-phase: ship + worker-type: succeed + notifications: + emails: + by-project: + mozilla-(beta|release|esr.*): ["release-signoff@mozilla.org"] + try: ["{config[params][owner]}"] + default: [] + +jobs: + firefox: + shipping-product: firefox + notifications: + subject: "{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]} updates are ready for signoff in Balrog!" + message: "{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]} updates are ready for signoff in Balrog!" + devedition: + shipping-product: devedition + notifications: + subject: "{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]} updates are ready for signoff in Balrog!" + message: "{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]} updates are ready for signoff in Balrog!" diff --git a/taskcluster/ci/release-notify-started/kind.yml b/taskcluster/ci/release-notify-started/kind.yml new file mode 100644 index 0000000000..004665789d --- /dev/null +++ b/taskcluster/ci/release-notify-started/kind.yml @@ -0,0 +1,32 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.release_started:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + name: notify-release-drivers-started + description: Sends email to release-drivers telling release was started. + run-on-projects: [] + shipping-phase: promote + worker-type: b-linux-gcp + worker: + docker-image: {in-tree: "debian12-base"} + max-run-time: 600 + emails: + by-project: + mozilla-(beta|release|esr.*): ["release-signoff@mozilla.org"] + try: ["{config[params][owner]}"] + default: [] + +jobs: + firefox: + shipping-product: firefox + devedition: + shipping-product: devedition diff --git a/taskcluster/ci/release-partner-attribution-beetmover/kind.yml b/taskcluster/ci/release-partner-attribution-beetmover/kind.yml new file mode 100644 index 0000000000..2851ff7d37 --- /dev/null +++ b/taskcluster/ci/release-partner-attribution-beetmover/kind.yml @@ -0,0 +1,22 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.partner_attribution_beetmover + - gecko_taskgraph.transforms.task + +kind-dependencies: + - release-partner-attribution + +jobs: + release-partner-attribution-beetmover: + from-deps: + group-by: single-with-filters + shipping-product: firefox + shipping-phase: promote + partner-path: "partner-repacks/{partner}/{subpartner}/v{release_partner_build_number}/{platform}/{locale}" diff --git a/taskcluster/ci/release-partner-attribution/kind.yml b/taskcluster/ci/release-partner-attribution/kind.yml new file mode 100644 index 0000000000..1da2656150 --- /dev/null +++ b/taskcluster/ci/release-partner-attribution/kind.yml @@ -0,0 +1,40 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.partner_attribution:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +kind-dependencies: + - repackage-signing + - repackage-signing-l10n + +# move this into the single job ?? +job-defaults: + name: partner-attribution + description: Release Promotion partner attribution + run-on-projects: [] # to make sure this never runs as part of CI + shipping-product: firefox + shipping-phase: promote + worker-type: b-linux-gcp + worker: + docker-image: + in-tree: "partner-repack" + chain-of-trust: true + max-run-time: 1800 + run: + using: mach + mach: python python/mozrelease/mozrelease/attribute_builds.py + +jobs: + partner-attribution: + attributes: + build_platform: linux-shippable + build_type: opt + artifact_prefix: releng/partner + shippable: true diff --git a/taskcluster/ci/release-partner-repack-beetmover/kind.yml b/taskcluster/ci/release-partner-repack-beetmover/kind.yml new file mode 100644 index 0000000000..164446f683 --- /dev/null +++ b/taskcluster/ci/release-partner-repack-beetmover/kind.yml @@ -0,0 +1,30 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.chunk_partners + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.beetmover_repackage_partner + - gecko_taskgraph.transforms.task + +kind-dependencies: + - release-partner-repack-repackage-signing + +only-for-build-platforms: + - linux-shippable/opt + - linux64-shippable/opt + - macosx64-shippable/opt + - win32-shippable/opt + - win64-shippable/opt + - win64-aarch64-shippable/opt + +jobs: + release-partner-repack-beetmover: + from-deps: + group-by: single-with-filters + shipping-phase: promote + partner-path: "partner-repacks/{partner}/{subpartner}/v{release_partner_build_number}/{platform}/{locale}" diff --git a/taskcluster/ci/release-partner-repack-bouncer-sub/kind.yml b/taskcluster/ci/release-partner-repack-bouncer-sub/kind.yml new file mode 100644 index 0000000000..98fa149810 --- /dev/null +++ b/taskcluster/ci/release-partner-repack-bouncer-sub/kind.yml @@ -0,0 +1,41 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.bouncer_submission_partners:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + description: release partners bouncer submission job + worker-type: bouncer + worker: + implementation: bouncer-submission + scopes: + by-release-level: + production: + - project:releng:bouncer:action:submission + - project:releng:bouncer:server:production + staging: + - project:releng:bouncer:action:submission + - project:releng:bouncer:server:staging + run-on-projects: [] + shipping-phase: promote + locales-file: browser/locales/shipped-locales + treeherder: + symbol: Rel(BncSub-P) + kind: test + tier: 1 + +jobs: + firefox: + bouncer-platforms: ['linux', 'linux64', 'osx', 'win', 'win64', 'win64-aarch64'] + bouncer-products: + by-release-type: + default: ['installer', 'stub-installer'] + esr.*: [] + shipping-product: firefox + treeherder: + platform: firefox-release/opt diff --git a/taskcluster/ci/release-partner-repack-chunking-dummy/kind.yml b/taskcluster/ci/release-partner-repack-chunking-dummy/kind.yml new file mode 100644 index 0000000000..4975931312 --- /dev/null +++ b/taskcluster/ci/release-partner-repack-chunking-dummy/kind.yml @@ -0,0 +1,30 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.chunk_partners + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.task + +kind-dependencies: + - release-partner-repack + +only-for-build-platforms: + - linux-shippable/opt + - linux64-shippable/opt + +jobs: + release-partner-repack-chunking-dummy: + from-deps: + group-by: single-with-filters + copy-attributes: true + shipping-phase: promote + shipping-product: firefox + name: release-partner-repack-chunking-dummy + description: Dummy task to deal with fanning out Linux partner repacks + run-on-projects: [] + worker-type: succeed diff --git a/taskcluster/ci/release-partner-repack-mac-notarization/kind.yml b/taskcluster/ci/release-partner-repack-mac-notarization/kind.yml new file mode 100644 index 0000000000..ee7a78e54f --- /dev/null +++ b/taskcluster/ci/release-partner-repack-mac-notarization/kind.yml @@ -0,0 +1,29 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.mac_notarization + - gecko_taskgraph.transforms.chunk_partners + - gecko_taskgraph.transforms.partner_signing + - gecko_taskgraph.transforms.signing + - gecko_taskgraph.transforms.task + +kind-dependencies: + - release-partner-repack-mac-signing + +only-for-build-platforms: + - macosx64-shippable/opt + +jobs: + release-partner-repack-mac-notarization: + from-deps: + group-by: partner-repack-ids + copy-attributes: true + shipping-product: firefox + shipping-phase: promote + max-run-time: 1800 + copy-repack-ids: true diff --git a/taskcluster/ci/release-partner-repack-mac-signing/kind.yml b/taskcluster/ci/release-partner-repack-mac-signing/kind.yml new file mode 100644 index 0000000000..dec5189979 --- /dev/null +++ b/taskcluster/ci/release-partner-repack-mac-signing/kind.yml @@ -0,0 +1,29 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.chunk_partners + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.partner_signing + - gecko_taskgraph.transforms.signing + - gecko_taskgraph.transforms.hardened_signing + - gecko_taskgraph.transforms.task + +kind-dependencies: + - release-partner-repack + +only-for-build-platforms: + - macosx64-shippable/opt + +jobs: + release-partner-repack-mac-signing: + from-deps: + group-by: partner-repack-ids + copy-attributes: true + shipping-product: firefox + shipping-phase: promote + repacks-per-chunk: 5 diff --git a/taskcluster/ci/release-partner-repack-repackage-signing/kind.yml b/taskcluster/ci/release-partner-repack-repackage-signing/kind.yml new file mode 100644 index 0000000000..2242023f91 --- /dev/null +++ b/taskcluster/ci/release-partner-repack-repackage-signing/kind.yml @@ -0,0 +1,29 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.chunk_partners + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.repackage_signing_partner + - gecko_taskgraph.transforms.task + +kind-dependencies: + - release-partner-repack-chunking-dummy # Linux + - release-partner-repack-repackage # Windows, Mac + +only-for-build-platforms: + - linux-shippable/opt + - linux64-shippable/opt + - macosx64-shippable/opt + - win32-shippable/opt + - win64-shippable/opt + - win64-aarch64-shippable/opt + +jobs: + release-partner-repack-repackage-signing: + from-deps: + group-by: single-with-filters diff --git a/taskcluster/ci/release-partner-repack-repackage/kind.yml b/taskcluster/ci/release-partner-repack-repackage/kind.yml new file mode 100644 index 0000000000..099c55240f --- /dev/null +++ b/taskcluster/ci/release-partner-repack-repackage/kind.yml @@ -0,0 +1,61 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.repackage_set_upstream_mac_kind + - gecko_taskgraph.transforms.chunk_partners + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.repackage_partner + - gecko_taskgraph.transforms.job + - gecko_taskgraph.transforms.task + +kind-dependencies: + - release-partner-repack + - release-partner-repack-mac-signing + - release-partner-repack-mac-notarization + - toolchain + +only-for-build-platforms: + - macosx64-shippable/opt + - win32-shippable/opt + - win64-shippable/opt + - win64-aarch64-shippable/opt + +jobs: + release-partner-repack-repackage: + from-deps: + group-by: single-with-filters + upstream-mac-kind: + by-build-type: + debug: release-partner-repack-mac-signing + default: + by-project: + mozilla-(central|beta|release|esr.*): release-partner-repack-mac-notarization + default: release-partner-repack-mac-signing + mozharness: + config: + by-build-platform: + macosx64-.*: + - repackage/base.py + - repackage/osx_partner.py + win32-.*: + - repackage/base.py + - repackage/win32_sfx_stub.py + - repackage/win32_partner.py + win64-(?!aarch64).*: + - repackage/base.py + - repackage/win32_sfx_stub.py + - repackage/win64_partner.py + win64-aarch64-.*: + - repackage/base.py + - repackage/win64-aarch64_sfx_stub.py + - repackage/win64_partner.py + package-formats: + by-build-platform: + macosx64\b.*: [dmg] + win32\b.*: [installer] + win64\b.*: [installer] diff --git a/taskcluster/ci/release-partner-repack/kind.yml b/taskcluster/ci/release-partner-repack/kind.yml new file mode 100644 index 0000000000..2a5d2fc996 --- /dev/null +++ b/taskcluster/ci/release-partner-repack/kind.yml @@ -0,0 +1,87 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.partner_repack:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +kind-dependencies: + - build-signing + - build-mac-signing + - build-mac-notarization + - shippable-l10n-signing + - shippable-l10n-mac-signing + - shippable-l10n-mac-notarization + +job-defaults: + name: partner-repack + description: Release Promotion partner repacks + run-on-projects: [] # to make sure this never runs as part of CI + shipping-product: firefox + shipping-phase: promote + worker-type: b-linux-gcp + worker: + docker-image: + in-tree: "partner-repack" + chain-of-trust: true + max-run-time: 7200 + run: + using: mozharness + config: + - partner_repacks/release_mozilla-release_desktop.py + script: mozharness/scripts/desktop_partner_repacks.py + job-script: taskcluster/scripts/builder/repackage.sh + tooltool-downloads: false + extra: + limit-locales: + by-release-level: + staging: true + production: false + +jobs: + linux-shippable: + attributes: + build_platform: linux-shippable + build_type: opt + artifact_prefix: releng/partner + shippable: true + + linux64-shippable: + attributes: + build_platform: linux64-shippable + build_type: opt + artifact_prefix: releng/partner + shippable: true + + macosx64-shippable: + attributes: + build_platform: macosx64-shippable + build_type: opt + artifact_prefix: releng/partner + shippable: true + + win32-shippable: + attributes: + build_platform: win32-shippable + build_type: opt + artifact_prefix: releng/partner + shippable: true + + win64-shippable: + attributes: + build_platform: win64-shippable + build_type: opt + artifact_prefix: releng/partner + shippable: true + + win64-aarch64-shippable: + attributes: + build_platform: win64-aarch64-shippable + build_type: opt + artifact_prefix: releng/partner + shippable: true diff --git a/taskcluster/ci/release-push-langpacks/kind.yml b/taskcluster/ci/release-push-langpacks/kind.yml new file mode 100644 index 0000000000..fbc5bcc8a9 --- /dev/null +++ b/taskcluster/ci/release-push-langpacks/kind.yml @@ -0,0 +1,52 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.release_sign_and_push_langpacks + - gecko_taskgraph.transforms.task + +kind-dependencies: + - build + - shippable-l10n + +only-for-build-platforms: + - linux64-shippable/opt # addons.mozilla.org only support 1 platform per locale. That's why we use linux64 + - linux64-devedition/opt + - macosx64-shippable/opt # Although, we need the special locale "ja-JP-Mac" from this platform + - macosx64-devedition/opt + +jobs: + release-push-langpacks: + description: Sends {locales} XPIs for platform to addons.mozilla.org + from-deps: + group-by: single-with-filters + worker-type: addon + worker: + channel: + by-project: + mozilla-release: + by-platform: + # ja-JP-mac is only langpack on mac, and is unlisted always + macosx64.*: unlisted + default: listed + mozilla-beta: + by-platform: + # ja-JP-mac is only langpack on mac, and is unlisted always + macosx64-shippable.*: unlisted + macosx64-devedition.*: unlisted + linux.*-devedition.*: unlisted + default: listed + default: unlisted + upstream-artifacts: # See transforms + run-on-projects: [] + scopes: + by-release-level: + production: + - project:releng:addons.mozilla.org:server:production + staging: + - project:releng:addons.mozilla.org:server:staging + shipping-phase: promote diff --git a/taskcluster/ci/release-secondary-balrog-scheduling/kind.yml b/taskcluster/ci/release-secondary-balrog-scheduling/kind.yml new file mode 100644 index 0000000000..9a230639b9 --- /dev/null +++ b/taskcluster/ci/release-secondary-balrog-scheduling/kind.yml @@ -0,0 +1,41 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.scriptworker:add_balrog_scopes + - gecko_taskgraph.transforms.task:transforms + +kind-dependencies: + - post-balrog-dummy + - post-beetmover-dummy + - release-secondary-balrog-submit-toplevel + +job-defaults: + run-on-projects: [] + shipping-phase: ship + worker-type: balrog + worker: + implementation: balrog + balrog-action: schedule + +jobs: + firefox-secondary-rc: + description: Schedule Beta Firefox publishing in balrog + name: release-firefox_schedule_publishing_in_balrog + shipping-product: firefox + worker: + product: firefox + release-eta: '' + channel-names: ["beta", "beta-localtest", "beta-cdntest"] + publish-rules: [32] + rules-to-update: ["firefox-beta-cdntest", "firefox-beta-localtest"] + pin-channels: ["beta"] + treeherder: + platform: firefox-release/opt + symbol: Rel(BSFxRC) + tier: 1 + kind: build diff --git a/taskcluster/ci/release-secondary-balrog-submit-toplevel/kind.yml b/taskcluster/ci/release-secondary-balrog-submit-toplevel/kind.yml new file mode 100644 index 0000000000..d742b4fb61 --- /dev/null +++ b/taskcluster/ci/release-secondary-balrog-submit-toplevel/kind.yml @@ -0,0 +1,46 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.scriptworker:add_balrog_scopes + - gecko_taskgraph.transforms.balrog_toplevel:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + run-on-projects: [] # to make sure this never runs in CI + shipping-phase: promote + worker-type: balrog + worker: + implementation: balrog + balrog-action: v2-submit-toplevel + require-mirrors: false + platforms: ["linux", "linux64", "macosx64", "win32", "win64", "win64-aarch64"] + archive-domain: + by-release-level: + production: archive.mozilla.org + staging: ftp.stage.mozaws.net + download-domain: + by-release-level: + production: download.mozilla.org + staging: dev.bouncer.nonprod.webservices.mozgcp.net + whats-new-config: browser/config/whats_new_page.yml + +jobs: + firefox: + name: submit-toplevel-rc-firefox-release-to-balrog + description: submit toplevel RC Firefox release to balrog + shipping-product: firefox + worker: + product: firefox + channel-names: ["beta", "beta-localtest", "beta-cdntest"] + rules-to-update: ["firefox-beta-cdntest", "firefox-beta-localtest"] + pin-channels: ["beta-localtest", "beta-cdntest"] + treeherder: + platform: firefox-release/opt + symbol: Rel(BPFxRC) + tier: 1 + kind: build diff --git a/taskcluster/ci/release-secondary-final-verify/kind.yml b/taskcluster/ci/release-secondary-final-verify/kind.yml new file mode 100644 index 0000000000..0d2e58d01d --- /dev/null +++ b/taskcluster/ci/release-secondary-final-verify/kind.yml @@ -0,0 +1,38 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - post-balrog-dummy + - post-beetmover-dummy + - release-secondary-balrog-submit-toplevel + - release-secondary-update-verify-config + +transforms: + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.final_verify:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + name: secondary-final-verify + run-on-projects: [] # to make sure this never runs as part of CI + worker-type: b-linux-gcp + worker: + docker-image: + in-tree: "update-verify" + max-run-time: 7200 + retry-exit-status: [1] + +jobs: + firefox: + description: secondary final verify + shipping-phase: promote + shipping-product: firefox + treeherder: + platform: firefox-release/opt + kind: test + symbol: Rel(FVS) + tier: 1 diff --git a/taskcluster/ci/release-secondary-flatpak-push/kind.yml b/taskcluster/ci/release-secondary-flatpak-push/kind.yml new file mode 100644 index 0000000000..7f770d4ee5 --- /dev/null +++ b/taskcluster/ci/release-secondary-flatpak-push/kind.yml @@ -0,0 +1,38 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.release:run_on_releases + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.release_flatpak_push:transforms + - gecko_taskgraph.transforms.task:transforms + +kind-dependencies: + - release-flatpak-repackage + +job-defaults: + description: Pushes Flatpaks onto Flathub + run-on-projects: [] # to make sure this never runs as part of CI + run-on-releases: [release-rc] + shipping-phase: ship # ship-rc phase + treeherder: + platform: linux64/opt + kind: build + tier: 2 + worker-type: + by-release-level: + production: scriptworker-k8s/gecko-3-pushflatpak + staging: scriptworker-k8s/gecko-1-pushflatpak + worker: + implementation: push-flatpak + channel: beta + +jobs: + firefox-rc: + shipping-product: firefox + flathub-scope: "flathub:firefox" + treeherder: + symbol: Flatpak(push-beta) diff --git a/taskcluster/ci/release-secondary-notify-ship/kind.yml b/taskcluster/ci/release-secondary-notify-ship/kind.yml new file mode 100644 index 0000000000..ab9b20ed62 --- /dev/null +++ b/taskcluster/ci/release-secondary-notify-ship/kind.yml @@ -0,0 +1,34 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.release_notifications:transforms + - gecko_taskgraph.transforms.task:transforms + +kind-dependencies: + - release-secondary-balrog-scheduling + +job-defaults: + name: notify-release-drivers-ship + description: Sends email to release-drivers telling release was shipped. + run-on-projects: [] + shipping-phase: ship + worker-type: succeed + notifications: + emails: + by-project: + mozilla-beta: ["release-signoff@mozilla.org"] + mozilla-release: ["release-signoff@mozilla.org"] + try: ["{config[params][owner]}"] + default: [] + +jobs: + firefox-rc: + shipping-product: firefox + notifications: + subject: "{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]} RC updates are ready!" + message: "{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]} RC updates are ready!" diff --git a/taskcluster/ci/release-secondary-update-verify-config/kind.yml b/taskcluster/ci/release-secondary-update-verify-config/kind.yml new file mode 100644 index 0000000000..7e28131a5e --- /dev/null +++ b/taskcluster/ci/release-secondary-update-verify-config/kind.yml @@ -0,0 +1,124 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.update_verify_config:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + name: secondary-update-verify-config + run-on-projects: [] # to make sure this never runs as part of CI + shipping-product: firefox + shipping-phase: promote + worker-type: b-linux-gcp + worker: + docker-image: + in-tree: "update-verify" + max-run-time: 3600 + artifacts: + - name: public/build/update-verify.cfg + path: /builds/worker/checkouts/gecko/update-verify.cfg + type: file + run: + sparse-profile: mozharness + extra: + app-name: browser + branch-prefix: mozilla + product: firefox + archive-prefix: + by-release-level: + staging: "http://ftp.stage.mozaws.net/pub" + production: "https://archive.mozilla.org/pub" + previous-archive-prefix: + by-release-level: + staging: "https://archive.mozilla.org/pub" + production: null + aus-server: + by-release-level: + staging: "https://stage.balrog.nonprod.cloudops.mozgcp.net" + production: "https://aus5.mozilla.org" + override-certs: + by-release-level: + staging: dep + production: null + include-version: beta + last-watershed: "72.0.2" + mar-channel-id-override: beta + channel: "beta-localtest" + +jobs: + firefox-secondary-linux: + treeherder: + symbol: UVCS + platform: linux-shippable/opt + kind: test + tier: 1 + attributes: + build_platform: linux-shippable + extra: + platform: linux-i686 + updater-platform: linux-x86_64 + + firefox-secondary-linux64: + treeherder: + symbol: UVCS + platform: linux64-shippable/opt + kind: test + tier: 1 + attributes: + build_platform: linux64-shippable + extra: + platform: linux-x86_64 + updater-platform: linux-x86_64 + + firefox-secondary-macosx64: + treeherder: + symbol: UVCS + platform: macosx64/opt + kind: test + tier: 1 + attributes: + build_platform: macosx64-shippable + extra: + platform: mac + updater-platform: linux-x86_64 + + firefox-secondary-win32: + treeherder: + symbol: UVCS + platform: windows2012-32-shippable/opt + kind: test + tier: 1 + attributes: + build_platform: win32-shippable + extra: + platform: win32 + updater-platform: linux-x86_64 + + firefox-secondary-win64: + treeherder: + symbol: UVCS + platform: windows2012-64-shippable/opt + kind: test + tier: 1 + attributes: + build_platform: win64-shippable + extra: + platform: win64 + updater-platform: linux-x86_64 + + firefox-secondary-win64-aarch64: + treeherder: + symbol: UVCS + platform: windows2012-aarch64-shippable/opt + kind: test + tier: 1 + attributes: + build_platform: win64-aarch64-shippable + extra: + platform: win64-aarch64 + updater-platform: linux-x86_64 diff --git a/taskcluster/ci/release-secondary-update-verify/kind.yml b/taskcluster/ci/release-secondary-update-verify/kind.yml new file mode 100644 index 0000000000..f567cf7ae3 --- /dev/null +++ b/taskcluster/ci/release-secondary-update-verify/kind.yml @@ -0,0 +1,77 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - post-balrog-dummy + - post-beetmover-dummy + - release-secondary-balrog-submit-toplevel + - release-secondary-update-verify-config + +transforms: + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.update_verify:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + name: secondary-update-verify + run-on-projects: [] # to make sure this never runs as part of CI + shipping-phase: promote + worker-type: b-linux-gcp + worker: + artifacts: + - name: 'public/build/diff-summary.log' + path: '/builds/worker/tools/release/updates/diff-summary.log' + type: file + docker-image: + in-tree: "update-verify" + max-run-time: 7200 + retry-exit-status: + - 255 + treeherder: + symbol: UV(UVS) + kind: test + extra: + chunks: 16 + +jobs: + firefox-secondary-linux64: + description: linux64 secondary channel update verify + shipping-product: firefox + attributes: + build_platform: linux64-shippable + + firefox-secondary-linux: + description: linux secondary channel update verify + shipping-product: firefox + attributes: + build_platform: linux-shippable + + firefox-secondary-win64: + description: win64 secondary channel update verify + shipping-product: firefox + attributes: + build_platform: win64-shippable + + firefox-secondary-win64-aarch64: + description: win64 secondary channel update verify + shipping-product: firefox + attributes: + build_platform: win64-aarch64-shippable + + firefox-secondary-win32: + description: win32 secondary channel update verify + shipping-product: firefox + attributes: + build_platform: win32-shippable + + firefox-secondary-macosx64: + description: macosx64 secondary channel update verify + shipping-product: firefox + attributes: + build_platform: macosx64-shippable + extra: + chunks: 30 diff --git a/taskcluster/ci/release-snap-repackage/kind.yml b/taskcluster/ci/release-snap-repackage/kind.yml new file mode 100644 index 0000000000..73d9d8a410 --- /dev/null +++ b/taskcluster/ci/release-snap-repackage/kind.yml @@ -0,0 +1,60 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.release_snap_repackage:transforms + - gecko_taskgraph.transforms.task:transforms + +kind-dependencies: + - post-beetmover-dummy + - post-langpack-dummy + +job-defaults: + description: Generates snap image + run-on-projects: [] # to make sure this never runs as part of CI + shipping-phase: promote + scopes: [] + treeherder: + platform: linux64-shippable/opt + kind: build + tier: 2 + worker-type: b-linux-gcp + worker: + implementation: docker-worker + os: linux + max-run-time: 7200 + docker-image: {in-tree: firefox-snap} + artifacts: + - name: public/build + type: directory + path: /home/worker/artifacts/ + command: + - /bin/bash + - -cx + - ./runme.sh + env: + VERSION: "{release_config[version]}" + BUILD_NUMBER: "{release_config[build_number]}" + CANDIDATES_DIR: + by-release-level: + staging: + https://ftp.stage.mozaws.net/pub/{task[shipping-product]}/candidates + production: + https://archive.mozilla.org/pub/{task[shipping-product]}/candidates + LC_ALL: C.UTF-8 + LANG: C.UTF-8 + L10N_CHANGESETS: "{config_params[head_repository]}/raw-file/{config_params[head_rev]}/browser/locales/l10n-changesets.json" + chain-of-trust: true + +jobs: + firefox: + shipping-product: firefox + attributes: + build_platform: linux64-shippable + build_type: opt + treeherder: + symbol: Snap(r) diff --git a/taskcluster/ci/release-source-checksums-signing/kind.yml b/taskcluster/ci/release-source-checksums-signing/kind.yml new file mode 100644 index 0000000000..de9f98acc0 --- /dev/null +++ b/taskcluster/ci/release-source-checksums-signing/kind.yml @@ -0,0 +1,20 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.source_checksums_signing + - gecko_taskgraph.transforms.task + +kind-dependencies: + - beetmover-source + +jobs: + release-source-checksums-signing: + shipping-phase: promote + from-deps: + group-by: single-with-filters diff --git a/taskcluster/ci/release-source-signing/kind.yml b/taskcluster/ci/release-source-signing/kind.yml new file mode 100644 index 0000000000..9ab9e37d88 --- /dev/null +++ b/taskcluster/ci/release-source-signing/kind.yml @@ -0,0 +1,21 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.build_signing + - gecko_taskgraph.transforms.signing + - gecko_taskgraph.transforms.task + +kind-dependencies: + - release-source + +jobs: + release-source-signing: + from-deps: + copy-attributes: true + shipping-phase: promote diff --git a/taskcluster/ci/release-source/kind.yml b/taskcluster/ci/release-source/kind.yml new file mode 100644 index 0000000000..6b550e9d7e --- /dev/null +++ b/taskcluster/ci/release-source/kind.yml @@ -0,0 +1,54 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + +transforms: + - gecko_taskgraph.transforms.build:transforms + - gecko_taskgraph.transforms.build_attrs:transforms + - gecko_taskgraph.transforms.build_lints:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + + +job-defaults: + shipping-phase: promote + treeherder: + symbol: Src + worker-type: b-linux-gcp + worker: + max-run-time: 3600 + env: + PKG_SRCPACK_BASENAME: source + attributes: + shippable: true + run: + using: mozharness + actions: [package-source] + script: "mozharness/scripts/fx_desktop_build.py" + config: + - builds/releng_sub_linux_configs/64_source.py + options: [] + tooltool-downloads: public + run-on-projects: [] + # The build_attrs transform defaults to setting a `skip-unlles-schedules' + # optimization based on the task label. The tasks here don't have corresponding + # schedules defined in mozbuild. + optimization: null + +jobs: + firefox-source/opt: + description: "Firefox source builder" + treeherder: + platform: firefox-release/opt + shipping-product: firefox + + devedition-source/opt: + description: "Devedition source builder" + treeherder: + platform: devedition-release/opt + shipping-product: devedition diff --git a/taskcluster/ci/release-update-verify-config-next/kind.yml b/taskcluster/ci/release-update-verify-config-next/kind.yml new file mode 100644 index 0000000000..959d0afb9a --- /dev/null +++ b/taskcluster/ci/release-update-verify-config-next/kind.yml @@ -0,0 +1,98 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.release:run_on_releases + - gecko_taskgraph.transforms.update_verify_config:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + name: update-verify-config-next + run-on-projects: [] # to make sure this never runs as part of CI + run-on-releases: [esr115] + shipping-phase: promote + worker-type: b-linux-gcp + worker: + docker-image: + in-tree: "update-verify" + max-run-time: 3600 + artifacts: + - name: public/build/update-verify.cfg + path: /builds/worker/checkouts/gecko/update-verify.cfg + type: file + run: + sparse-profile: mozharness + treeherder: + symbol: UVCnext + kind: test + tier: 1 + extra: + app-name: browser + branch-prefix: mozilla + archive-prefix: + by-release-level: + staging: "http://ftp.stage.mozaws.net/pub" + production: "https://archive.mozilla.org/pub" + previous-archive-prefix: + by-release-level: + staging: "https://archive.mozilla.org/pub" + production: null + aus-server: + by-release-level: + staging: "https://stage.balrog.nonprod.cloudops.mozgcp.net" + production: "https://aus5.mozilla.org" + override-certs: + by-release-level: + staging: dep + production: null + updater-platform: linux-x86_64 + product: firefox + channel: "esr-localtest-next" + include-version: esr115-next + last-watershed: "68.0esr" + +jobs: + firefox-next-linux: + shipping-product: firefox + treeherder: + platform: linux32-shippable/opt + attributes: + build_platform: linux-shippable + extra: + platform: linux-i686 + firefox-next-linux64: + shipping-product: firefox + treeherder: + platform: linux64-shippable/opt + attributes: + build_platform: linux64-shippable + extra: + platform: linux-x86_64 + firefox-next-macosx64: + shipping-product: firefox + treeherder: + platform: osx-shippable/opt + attributes: + build_platform: macosx64-shippable + extra: + platform: mac + firefox-next-win32: + shipping-product: firefox + treeherder: + platform: windows2012-32-shippable/opt + attributes: + build_platform: win32-shippable + extra: + platform: win32 + firefox-next-win64: + shipping-product: firefox + treeherder: + platform: windows2012-64-shippable/opt + attributes: + build_platform: win64-shippable + extra: + platform: win64 diff --git a/taskcluster/ci/release-update-verify-config/kind.yml b/taskcluster/ci/release-update-verify-config/kind.yml new file mode 100644 index 0000000000..d4e40cda12 --- /dev/null +++ b/taskcluster/ci/release-update-verify-config/kind.yml @@ -0,0 +1,292 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.update_verify_config:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + name: update-verify-config + run-on-projects: [] # to make sure this never runs as part of CI + shipping-phase: promote + worker-type: b-linux-gcp + worker: + docker-image: + in-tree: "update-verify" + max-run-time: 3600 + artifacts: + - name: public/build/update-verify.cfg + path: /builds/worker/checkouts/gecko/update-verify.cfg + type: file + run: + sparse-profile: mozharness + extra: + app-name: browser + branch-prefix: mozilla + archive-prefix: + by-release-level: + staging: "http://ftp.stage.mozaws.net/pub" + production: "https://archive.mozilla.org/pub" + previous-archive-prefix: + by-release-level: + staging: "https://archive.mozilla.org/pub" + production: null + aus-server: + by-release-level: + staging: "https://stage.balrog.nonprod.cloudops.mozgcp.net" + production: "https://aus5.mozilla.org" + override-certs: + by-release-level: + staging: dep + production: null + include-version: + by-release-type: + beta: beta + release(-rc)?: nonbeta + esr.*: esr + default: beta + last-watershed: + by-release-type: + beta: "72.0" + release(-rc)?: "72.0.2" + esr115: "68.0esr" + default: "default" + +jobs: + firefox-linux: + shipping-product: firefox + treeherder: + symbol: UVC + platform: linux32-shippable/opt + kind: test + tier: 1 + attributes: + build_platform: linux-shippable + extra: + product: firefox + platform: linux-i686 + updater-platform: linux-x86_64 + channel: + by-release-type: + beta: "beta-localtest" + release(-rc)?: "release-localtest" + esr.*: "esr-localtest" + default: "default" + mar-channel-id-override: + by-release-type: + beta: beta + default: null + + firefox-linux64: + shipping-product: firefox + treeherder: + symbol: UVC + platform: linux64-shippable/opt + kind: test + tier: 1 + attributes: + build_platform: linux64-shippable + extra: + product: firefox + platform: linux-x86_64 + updater-platform: linux-x86_64 + channel: + by-release-type: + beta: "beta-localtest" + release(-rc)?: "release-localtest" + esr.*: "esr-localtest" + default: "default" + mar-channel-id-override: + by-release-type: + beta: beta + default: null + + firefox-macosx64: + shipping-product: firefox + treeherder: + symbol: UVC + platform: osx-shippable/opt + kind: test + tier: 1 + attributes: + build_platform: macosx64-shippable + extra: + product: firefox + platform: mac + updater-platform: linux-x86_64 + channel: + by-release-type: + beta: "beta-localtest" + release(-rc)?: "release-localtest" + esr.*: "esr-localtest" + default: "default" + mar-channel-id-override: + by-release-type: + beta: beta + default: null + + firefox-win32: + shipping-product: firefox + treeherder: + symbol: UVC + platform: windows2012-32-shippable/opt + kind: test + tier: 1 + attributes: + build_platform: win32-shippable + extra: + product: firefox + platform: win32 + updater-platform: linux-x86_64 + channel: + by-release-type: + beta: "beta-localtest" + release(-rc)?: "release-localtest" + esr.*: "esr-localtest" + default: "default" + mar-channel-id-override: + by-release-type: + beta: beta + default: null + + firefox-win64: + shipping-product: firefox + treeherder: + symbol: UVC + platform: windows2012-64-shippable/opt + kind: test + tier: 1 + attributes: + build_platform: win64-shippable + extra: + product: firefox + platform: win64 + updater-platform: linux-x86_64 + channel: + by-release-type: + beta: "beta-localtest" + release(-rc)?: "release-localtest" + esr.*: "esr-localtest" + default: "default" + mar-channel-id-override: + by-release-type: + beta: beta + default: null + + firefox-win64-aarch64: + shipping-product: firefox + treeherder: + symbol: UVC + platform: windows2012-aarch64-shippable/opt + kind: test + tier: 1 + attributes: + build_platform: win64-aarch64-shippable + extra: + product: firefox + platform: win64-aarch64 + updater-platform: linux-x86_64 + channel: + by-release-type: + beta: "beta-localtest" + release(-rc)?: "release-localtest" + esr.*: "esr-localtest" + default: "default" + mar-channel-id-override: + by-release-type: + beta: beta + default: null + + devedition-linux: + shipping-product: devedition + treeherder: + symbol: UVC + platform: linux32-devedition/opt + kind: test + tier: 1 + attributes: + build_platform: linux-devedition + extra: + product: firefox + platform: linux-i686 + updater-platform: linux-x86_64 + channel: "aurora-localtest" + + devedition-linux64: + shipping-product: devedition + treeherder: + symbol: UVC + platform: linux64-devedition/opt + kind: test + tier: 1 + attributes: + build_platform: linux64-devedition + extra: + product: firefox + platform: linux-x86_64 + updater-platform: linux-x86_64 + channel: "aurora-localtest" + + devedition-macosx64: + shipping-product: devedition + treeherder: + symbol: UVC + platform: osx-cross-devedition/opt + kind: test + tier: 1 + attributes: + build_platform: macosx64-devedition + extra: + product: firefox + platform: mac + updater-platform: linux-x86_64 + channel: "aurora-localtest" + + devedition-win32: + shipping-product: devedition + treeherder: + symbol: UVC + platform: windows2012-32-devedition/opt + kind: test + tier: 1 + attributes: + build_platform: win32-devedition + extra: + product: firefox + platform: win32 + updater-platform: linux-x86_64 + channel: "aurora-localtest" + + devedition-win64: + shipping-product: devedition + treeherder: + symbol: UVC + platform: windows2012-64-devedition/opt + kind: test + tier: 1 + attributes: + build_platform: win64-devedition + extra: + product: firefox + platform: win64 + updater-platform: linux-x86_64 + channel: "aurora-localtest" + + devedition-win64-aarch64: + shipping-product: devedition + treeherder: + symbol: UVC + platform: windows2012-aarch64-devedition/opt + kind: test + tier: 1 + attributes: + build_platform: win64-aarch64-devedition + extra: + product: firefox + platform: win64-aarch64 + updater-platform: linux-x86_64 + channel: "aurora-localtest" diff --git a/taskcluster/ci/release-update-verify-next/kind.yml b/taskcluster/ci/release-update-verify-next/kind.yml new file mode 100644 index 0000000000..ad72e9b118 --- /dev/null +++ b/taskcluster/ci/release-update-verify-next/kind.yml @@ -0,0 +1,73 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - post-balrog-dummy + - post-beetmover-dummy + - release-balrog-submit-toplevel + - release-update-verify-config-next + +transforms: + - gecko_taskgraph.transforms.release:run_on_releases + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.update_verify:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + name: update-verify-next + run-on-projects: [] # to make sure this never runs as part of CI + run-on-releases: [esr115] + shipping-phase: promote + worker-type: b-linux-gcp + worker: + artifacts: + - name: 'public/build/diff-summary.log' + path: '/builds/worker/tools/release/updates/diff-summary.log' + type: file + docker-image: + in-tree: "update-verify" + max-run-time: 7200 + retry-exit-status: + - 255 + env: + CHANNEL: "esr-localtest-next" + treeherder: + symbol: UVnext() + kind: test + extra: + chunks: 12 + +jobs: + firefox-next-linux64: + description: linux64 esr-next update verify + shipping-product: firefox + attributes: + build_platform: linux64-shippable + + firefox-next-linux: + description: linux esr-next update verify + shipping-product: firefox + attributes: + build_platform: linux-shippable + + firefox-next-win64: + description: win64 esr-next update verify + shipping-product: firefox + attributes: + build_platform: win64-shippable + + firefox-next-win32: + description: win32 esr-next update verify + shipping-product: firefox + attributes: + build_platform: win32-shippable + + firefox-next-macosx64: + description: macosx64 esr-next update verify + shipping-product: firefox + attributes: + build_platform: macosx64-shippable diff --git a/taskcluster/ci/release-update-verify/kind.yml b/taskcluster/ci/release-update-verify/kind.yml new file mode 100644 index 0000000000..ec7f9874da --- /dev/null +++ b/taskcluster/ci/release-update-verify/kind.yml @@ -0,0 +1,115 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - post-balrog-dummy + - post-beetmover-dummy + - release-balrog-submit-toplevel + - release-update-verify-config + +transforms: + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.update_verify:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + name: update-verify + run-on-projects: [] # to make sure this never runs as part of CI + shipping-phase: promote + worker-type: b-linux-gcp + worker: + artifacts: + - name: 'public/build/diff-summary.log' + path: '/builds/worker/checkouts/gecko/diff-summary.log' + type: file + docker-image: + in-tree: "update-verify" + max-run-time: 5400 + retry-exit-status: + - 255 + treeherder: + symbol: UV() + kind: test + extra: + chunks: 16 + +jobs: + firefox-linux64: + description: linux64 update verify + shipping-product: firefox + attributes: + build_platform: linux64-shippable + + firefox-linux: + description: linux update verify + shipping-product: firefox + attributes: + build_platform: linux-shippable + + firefox-win64: + description: win64 update verify + shipping-product: firefox + attributes: + build_platform: win64-shippable + + firefox-win64-aarch64: + description: win64-aarch64 update verify + shipping-product: firefox + attributes: + build_platform: win64-aarch64-shippable + + firefox-win32: + description: win32 update verify + shipping-product: firefox + attributes: + build_platform: win32-shippable + + firefox-macosx64: + description: macosx64 update verify + shipping-product: firefox + attributes: + build_platform: macosx64-shippable + extra: + chunks: 30 + + devedition-linux64: + description: linux64 update verify + shipping-product: devedition + attributes: + build_platform: linux64-devedition + + devedition-linux: + description: linux update verify + shipping-product: devedition + attributes: + build_platform: linux-devedition + + devedition-win64: + description: win64 update verify + shipping-product: devedition + attributes: + build_platform: win64-devedition + + devedition-win64-aarch64: + description: win64-aarch64 update verify + shipping-product: devedition + attributes: + build_platform: win64-aarch64-devedition + + devedition-win32: + description: win32 update verify + shipping-product: devedition + attributes: + build_platform: win32-devedition + + devedition-macosx64: + description: macosx64 update verify + shipping-product: devedition + attributes: + build_platform: macosx64-devedition + extra: + chunks: 30 diff --git a/taskcluster/ci/release-version-bump/kind.yml b/taskcluster/ci/release-version-bump/kind.yml new file mode 100644 index 0000000000..be1d9cd85f --- /dev/null +++ b/taskcluster/ci/release-version-bump/kind.yml @@ -0,0 +1,59 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.release_deps:transforms + - gecko_taskgraph.transforms.release_version_bump:transforms + - gecko_taskgraph.transforms.task:transforms + +kind-dependencies: + - release-beetmover-push-to-release + +job-defaults: + description: Release Promotion version bump/tag + run-on-projects: [] + shipping-phase: ship + worker-type: tree + worker: + implementation: treescript + dontbuild: true + tags: ['release'] + bump: true + bump-files: + by-project: + default: ["browser/config/version_display.txt"] + mozilla-(release|esr.*): + - "browser/config/version.txt" + - "browser/config/version_display.txt" + - "config/milestone.txt" + maple: + - "browser/config/version.txt" + - "browser/config/version_display.txt" + - "config/milestone.txt" + push: + by-project: + mozilla-(beta|release|esr.*): true + maple: true + default: false + +jobs: + firefox: + name: firefox-version-bump + shipping-product: firefox + treeherder: + platform: firefox-release/opt + symbol: Rel(VerBump) + tier: 1 + kind: build + + devedition: + name: devedition-version-bump + shipping-product: devedition + treeherder: + platform: devedition-release/opt + symbol: Rel(VerBump) + tier: 1 + kind: build diff --git a/taskcluster/ci/repackage-deb-l10n/kind.yml b/taskcluster/ci/repackage-deb-l10n/kind.yml new file mode 100644 index 0000000000..a22e50787a --- /dev/null +++ b/taskcluster/ci/repackage-deb-l10n/kind.yml @@ -0,0 +1,43 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.repackage_l10n + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.repackage + - gecko_taskgraph.transforms.repackage_routes + - gecko_taskgraph.transforms.job + - gecko_taskgraph.transforms.task + +kind-dependencies: + - shippable-l10n-signing + +only-for-build-platforms: + # Langpacks support all CPU architectures. We just need to pick one + - linux64-devedition/opt + - linux64-shippable/opt + +jobs: + repackage-deb-l10n: + from-deps: + group-by: single-with-filters + worker-type: b-linux-gcp + worker: + docker-image: {"in-tree": "debian12-repackage"} + max-run-time: 600 + mozharness: + run-as-root: true + use-caches: false + config: + by-build-platform: + linux64\b.*: + - repackage/base.py + - repackage/linux64_signed.py + package-formats: + by-build-platform: + linux.*: [deb-l10n] + treeherder-group: deb-L10n diff --git a/taskcluster/ci/repackage-deb/kind.yml b/taskcluster/ci/repackage-deb/kind.yml new file mode 100644 index 0000000000..aa6381bb4a --- /dev/null +++ b/taskcluster/ci/repackage-deb/kind.yml @@ -0,0 +1,53 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.repackage + - gecko_taskgraph.transforms.repackage_routes + - gecko_taskgraph.transforms.job + - gecko_taskgraph.transforms.task + +kind-dependencies: + - build-signing + - toolchain + +only-for-build-platforms: + - linux-shippable/opt + - linux-devedition/opt + - linux64-shippable/opt + - linux64-devedition/opt + +only-for-attributes: + - nightly + - shippable + +jobs: + repackage-deb: + from-deps: + group-by: single-with-filters + shipping-phase: promote + worker-type: b-linux-gcp + worker: + docker-image: + in-tree: debian12-repackage + mozharness: + run-as-root: true + use-caches: false + config: + by-build-platform: + linux\b.*: + - repackage/base.py + - repackage/linux32_signed.py + linux64\b.*: + - repackage/base.py + - repackage/linux64_signed.py + treeherder: + symbol: Rpk-deb + package-formats: + by-build-platform: + linux.*: [deb] diff --git a/taskcluster/ci/repackage-l10n/kind.yml b/taskcluster/ci/repackage-l10n/kind.yml new file mode 100644 index 0000000000..c78b52de2b --- /dev/null +++ b/taskcluster/ci/repackage-l10n/kind.yml @@ -0,0 +1,86 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.repackage_set_upstream_mac_kind + - gecko_taskgraph.transforms.repackage_l10n + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.repackage + - gecko_taskgraph.transforms.job + - gecko_taskgraph.transforms.task + +kind-dependencies: + - shippable-l10n-signing + - shippable-l10n-mac-signing + - shippable-l10n-mac-notarization + - toolchain + +only-for-build-platforms: + - linux-shippable/opt + - linux64-shippable/opt + - macosx64-shippable/opt + - win32-shippable/opt + - win64-shippable/opt + - win64-aarch64-shippable/opt + - linux-devedition/opt + - linux64-devedition/opt + - macosx64-devedition/opt + - win32-devedition/opt + - win64-devedition/opt + - win64-aarch64-devedition/opt + +jobs: + repackage-l10n: + from-deps: + group-by: single-with-filters + upstream-mac-kind: + by-build-type: + debug: shippable-l10n-mac-signing + default: + by-project: + mozilla-(central|beta|release|esr.*): shippable-l10n-mac-notarization + default: shippable-l10n-mac-signing + worker-type: b-linux-gcp + mozharness: + config: + by-build-platform: + linux-.*: + - repackage/base.py + - repackage/linux32_signed.py + linux64-.*: + - repackage/base.py + - repackage/linux64_signed.py + macosx64-.*: + - repackage/base.py + - repackage/osx_signed.py + win32\b.*: + - repackage/base.py + - repackage/win32_sfx_stub.py + - repackage/win32_signed.py + win64(?!-aarch64)\b.*: + - repackage/base.py + - repackage/win32_sfx_stub.py + - repackage/win64_signed.py + win64-aarch64\b.*: + - repackage/base.py + - repackage/win64-aarch64_sfx_stub.py + - repackage/win64_signed.py + package-formats: + by-build-platform: + macosx64\b.*: + by-build-type: + # Debug builds can't be attributable + debug: [dmg, mar, pkg] + default: [dmg-attrib, mar, pkg] + linux.*: [mar] + win32\b.*: [mar, installer] + win64\b.*: [mar, installer] + fetches: + toolchain: + - linux64-mar-tools + - linux64-upx + treeherder-group: L10n-Rpk diff --git a/taskcluster/ci/repackage-msi/kind.yml b/taskcluster/ci/repackage-msi/kind.yml new file mode 100644 index 0000000000..fa2fb3ada3 --- /dev/null +++ b/taskcluster/ci/repackage-msi/kind.yml @@ -0,0 +1,49 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.repackage + - gecko_taskgraph.transforms.job + - gecko_taskgraph.transforms.task + +kind-dependencies: + - repackage-signing + - repackage-signing-l10n + - fetch + +only-for-build-platforms: + - win32-shippable/opt + - win64-shippable/opt + - win32-devedition/opt + - win64-devedition/opt + +jobs: + repackage-msi: + worker-type: 'b-win2022' + from-deps: + group-by: single-with-filters + mozharness: + use-magic-mh-args: false + config: + by-build-platform: + win32\b.*: + - repackage/base.py + - repackage/win32_sfx_stub.py + - repackage/win32_signed.py + win64(?!-aarch64)\b.*: + - repackage/base.py + - repackage/win32_sfx_stub.py + - repackage/win64_signed.py + win64-aarch64\b.*: + - repackage/base.py + - repackage/win64-aarch64_sfx_stub.py + - repackage/win64_signed.py + package-formats: [msi] + fetches: + fetch: + - wix-3.14.0 diff --git a/taskcluster/ci/repackage-msix/kind.yml b/taskcluster/ci/repackage-msix/kind.yml new file mode 100644 index 0000000000..90e3506f54 --- /dev/null +++ b/taskcluster/ci/repackage-msix/kind.yml @@ -0,0 +1,107 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.repackage + - gecko_taskgraph.transforms.job + - gecko_taskgraph.transforms.task + +kind-dependencies: + # We're going to generate tasks based on this. We `depend` on and fetch the package from this. + - build-signing + - toolchain + +only-for-build-platforms: + - win32/opt + - win64/opt + - win64/debug + - win32-shippable/opt + - win64-shippable/opt + - win32-devedition/opt + - win64-devedition/opt + +jobs: + repackage-msix: + from-deps: + group-by: platform + worker-type: b-linux-gcp + worker: + max-run-time: 2700 + # This is for fast try iteration; `repackage-shippable-l10n-msix` is the "real one". + run-on-projects: [] + mozharness: + config: + by-build-platform: + win32\b.*: + - repackage/base.py + - repackage/win32_sfx_stub.py + - repackage/win32_signed.py + win64(?!-aarch64)\b.*: + - repackage/base.py + - repackage/win32_sfx_stub.py + - repackage/win64_signed.py + win64-aarch64\b.*: + - repackage/base.py + - repackage/win64-aarch64_sfx_stub.py + - repackage/win64_signed.py + package-formats: [msix, msix-store] + fetches: + toolchain: + - linux64-msix-packaging + msix: + vendor: Mozilla + channel: + by-shipping-product: + devedition: aurora + default: + by-release-type: + beta.*: beta + release.*: official + esr.*: official + default: nightly + identity-name: + by-shipping-product: + devedition: + by-package-format: + msix: MozillaFirefoxDevedition + msix-store: FirefoxDevedition + default: + by-package-format: + msix: + by-release-type: + beta.*: MozillaFirefoxBeta + release.*: MozillaFirefox + esr.*: MozillaFirefox + default: MozillaFirefoxNightly + msix-store: + by-release-type: + beta.*: FirefoxBeta + release.*: Firefox + esr.*: Firefox + default: FirefoxNightly + publisher: + by-package-format: + msix-store: "CN=082E9164-EE6C-4EC8-B62C-441FAE7BEFA1" + msix: + by-level: + "1": "CN=Mozilla Fake SPC" + "2": "CN=Mozilla Fake SPC" + default: + # This value needs to line up with the signing certificate + # we're going to sign with. We only sign potential release + # or nightly builds with proper certificates, so even on + # level 3 repositories, some build types are expected to + # be signed with our fake certificate. + by-build-platform: + .*-shippable: "CN=Mozilla Corporation, OU=Firefox Engineering Operations, O=Mozilla Corporation, L=Mountain View, S=California, C=US" + .*-devedition: "CN=Mozilla Corporation, OU=Firefox Engineering Operations, O=Mozilla Corporation, L=Mountain View, S=California, C=US" + default: "CN=Mozilla Fake SPC" + publisher-display-name: + by-package-format: + msix: "Mozilla Corporation" + msix-store: "Mozilla" diff --git a/taskcluster/ci/repackage-shippable-l10n-msix/kind.yml b/taskcluster/ci/repackage-shippable-l10n-msix/kind.yml new file mode 100644 index 0000000000..6be2a95bf0 --- /dev/null +++ b/taskcluster/ci/repackage-shippable-l10n-msix/kind.yml @@ -0,0 +1,109 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.repackage + - gecko_taskgraph.transforms.job + - gecko_taskgraph.transforms.task + +kind-dependencies: + # We're going to generate tasks based on this. We `depend` on and fetch the package from this. + - build-signing + # We're not going to generate tasks based on these. But we are going to `depend` on and fetch + # langpacks from these. + - shippable-l10n-signing + - toolchain + +not-for-kind-dependencies: + - shippable-l10n-signing + +only-for-build-platforms: + - win32-shippable/opt + - win64-shippable/opt + - win32-devedition/opt + - win64-devedition/opt + +jobs: + repackage-shippable-l10n-msix: + from-deps: + group-by: platform + unique-kinds: false + worker-type: b-linux-gcp + worker: + max-run-time: 2700 + mozharness: + config: + by-build-platform: + win32\b.*: + - repackage/base.py + - repackage/win32_sfx_stub.py + - repackage/win32_signed.py + win64(?!-aarch64)\b.*: + - repackage/base.py + - repackage/win32_sfx_stub.py + - repackage/win64_signed.py + win64-aarch64\b.*: + - repackage/base.py + - repackage/win64-aarch64_sfx_stub.py + - repackage/win64_signed.py + package-formats: [msix, msix-store] + fetches: + toolchain: + - linux64-msix-packaging + msix: + vendor: Mozilla + channel: + by-shipping-product: + devedition: aurora + default: + by-release-type: + beta.*: beta + release.*: official + esr.*: official + default: nightly + identity-name: + by-shipping-product: + devedition: + by-package-format: + msix: MozillaFirefoxDevedition + msix-store: FirefoxDevedition + default: + by-package-format: + msix: + by-release-type: + beta.*: MozillaFirefoxBeta + release.*: MozillaFirefox + esr.*: MozillaFirefox + default: MozillaFirefoxNightly + msix-store: + by-release-type: + beta.*: FirefoxBeta + release.*: Firefox + esr.*: Firefox + default: FirefoxNightly + publisher: + by-package-format: + msix-store: "CN=082E9164-EE6C-4EC8-B62C-441FAE7BEFA1" + msix: + by-level: + "1": "CN=Mozilla Fake SPC" + "2": "CN=Mozilla Fake SPC" + default: + # This value needs to line up with the signing certificate + # we're going to sign with. We only sign potential release + # or nightly builds with proper certificates, so even on + # level 3 repositories, some build types are expected to + # be signed with our fake certificate. + by-build-platform: + .*-shippable: "CN=Mozilla Corporation, OU=Firefox Engineering Operations, O=Mozilla Corporation, L=Mountain View, S=California, C=US" + .*-devedition: "CN=Mozilla Corporation, OU=Firefox Engineering Operations, O=Mozilla Corporation, L=Mountain View, S=California, C=US" + default: "CN=Mozilla Fake SPC" + publisher-display-name: + by-package-format: + msix: "Mozilla Corporation" + msix-store: "Mozilla" diff --git a/taskcluster/ci/repackage-signing-l10n/kind.yml b/taskcluster/ci/repackage-signing-l10n/kind.yml new file mode 100644 index 0000000000..9d274b1ee3 --- /dev/null +++ b/taskcluster/ci/repackage-signing-l10n/kind.yml @@ -0,0 +1,31 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.repackage_signing + - gecko_taskgraph.transforms.repackage_routes + - gecko_taskgraph.transforms.task + +kind-dependencies: + - repackage-l10n + +only-for-build-platforms: + - win32-shippable/opt + - win32-devedition/opt + - win32/opt + - win64-shippable/opt + - win64-devedition/opt + - win64/opt + - win64-aarch64-shippable/opt + - win64-aarch64-devedition/opt + - win64-asan-reporter-shippable/opt + +jobs: + repackage-signing-l10n: + from-deps: + group-by: single-with-filters diff --git a/taskcluster/ci/repackage-signing-msi/kind.yml b/taskcluster/ci/repackage-signing-msi/kind.yml new file mode 100644 index 0000000000..8a6691413a --- /dev/null +++ b/taskcluster/ci/repackage-signing-msi/kind.yml @@ -0,0 +1,27 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.repackage_signing + - gecko_taskgraph.transforms.task + +kind-dependencies: + - repackage-msi + +only-for-build-platforms: + - win32-shippable/opt + - win32-devedition/opt + - win32/opt + - win64-shippable/opt + - win64-devedition/opt + - win64/opt + +jobs: + repackage-signing-msi: + from-deps: + group-by: single-with-filters diff --git a/taskcluster/ci/repackage-signing-msix/kind.yml b/taskcluster/ci/repackage-signing-msix/kind.yml new file mode 100644 index 0000000000..4976f08366 --- /dev/null +++ b/taskcluster/ci/repackage-signing-msix/kind.yml @@ -0,0 +1,19 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.repackage_signing + - gecko_taskgraph.transforms.task + +kind-dependencies: + - repackage-msix + +jobs: + repackage-signing-msix: + from-deps: + group-by: single-with-filters diff --git a/taskcluster/ci/repackage-signing-shippable-l10n-msix/kind.yml b/taskcluster/ci/repackage-signing-shippable-l10n-msix/kind.yml new file mode 100644 index 0000000000..0f6f7787ee --- /dev/null +++ b/taskcluster/ci/repackage-signing-shippable-l10n-msix/kind.yml @@ -0,0 +1,18 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.repackage_signing + - gecko_taskgraph.transforms.task + +kind-dependencies: + - repackage-shippable-l10n-msix + +jobs: + repackage-signing-shippable-l10n-msix: + from-deps: {} diff --git a/taskcluster/ci/repackage-signing/kind.yml b/taskcluster/ci/repackage-signing/kind.yml new file mode 100644 index 0000000000..49ea244a9e --- /dev/null +++ b/taskcluster/ci/repackage-signing/kind.yml @@ -0,0 +1,29 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.repackage_signing + - gecko_taskgraph.transforms.repackage_routes + - gecko_taskgraph.transforms.task + +kind-dependencies: + - repackage + +only-for-build-platforms: + - win32-devedition/opt + - win32-shippable/opt + - win64-devedition/opt + - win64-shippable/opt + - win64-aarch64-shippable/opt + - win64-aarch64-devedition/opt + - win64-asan-reporter-shippable/opt + +jobs: + repackage-signing: + from-deps: + group-by: single-with-filters diff --git a/taskcluster/ci/repackage/kind.yml b/taskcluster/ci/repackage/kind.yml new file mode 100644 index 0000000000..e67ce5566b --- /dev/null +++ b/taskcluster/ci/repackage/kind.yml @@ -0,0 +1,99 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.repackage_set_upstream_mac_kind + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.repackage + - gecko_taskgraph.transforms.repackage_routes + - gecko_taskgraph.transforms.job + - gecko_taskgraph.transforms.task + +kind-dependencies: + - build-signing + - build-mac-signing + - build-mac-notarization + - toolchain + +only-for-build-platforms: + - linux-shippable/opt + - linux-devedition/opt + - linux/opt + - linux64-shippable/opt + - linux64-devedition/opt + - linux64-asan-reporter-shippable/opt + - linux64/opt + - macosx64-shippable/opt + - macosx64-devedition/opt + - macosx64/opt + - macosx64/debug + - macosx64-aarch64/debug + - win32-shippable/opt + - win32-devedition/opt + - win32/opt + - win64-shippable/opt + - win64-devedition/opt + - win64-aarch64-shippable/opt + - win64-aarch64-devedition/opt + - win64/opt + - win64-asan-reporter-shippable/opt + +jobs: + repackage: + from-deps: + group-by: single-with-filters + upstream-mac-kind: + by-build-type: + debug: build-mac-signing + default: + by-project: + mozilla-(central|beta|release|esr.*): build-mac-notarization + default: build-mac-signing + worker-type: b-linux-gcp + worker: + max-run-time: + by-build-platform: + .*asan.*: 2700 + default: 900 + mozharness: + config: + by-build-platform: + linux\b.*: + - repackage/base.py + - repackage/linux32_signed.py + linux64\b.*: + - repackage/base.py + - repackage/linux64_signed.py + macosx64\b.*: + - repackage/base.py + - repackage/osx_signed.py + win32\b.*: + - repackage/base.py + - repackage/win32_sfx_stub.py + - repackage/win32_signed.py + win64(?!-aarch64)\b.*: + - repackage/base.py + - repackage/win32_sfx_stub.py + - repackage/win64_signed.py + win64-aarch64\b.*: + - repackage/base.py + - repackage/win64-aarch64_sfx_stub.py + - repackage/win64_signed.py + package-formats: + by-build-platform: + macosx64\b.*: + by-build-type: + # Debug builds can't be attributable + debug: [dmg, mar, pkg] + default: [dmg-attrib, mar, pkg] + linux.*: [mar] + win32\b.*: [mar, installer] + win64\b.*: [mar, installer] + fetches: + toolchain: + - linux64-mar-tools + - linux64-upx diff --git a/taskcluster/ci/repo-update/kind.yml b/taskcluster/ci/repo-update/kind.yml new file mode 100644 index 0000000000..414c3bd4f8 --- /dev/null +++ b/taskcluster/ci/repo-update/kind.yml @@ -0,0 +1,77 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.repo_update:transforms + - gecko_taskgraph.transforms.task:transforms + + +job-defaults: + worker: + env: + DO_HSTS: + by-project: + mozilla-(central|beta|esr.*): "1" + default: "" + DO_HPKP: + by-project: + mozilla-(central|beta|esr.*): "1" + default: "" + DO_REMOTE_SETTINGS: + by-project: + mozilla-(central|beta|release|esr.*): "1" + default: "" + DO_SUFFIX_LIST: + by-project: + mozilla-(central|beta|esr.*): "1" + default: "" + DO_MOBILE_EXPERIMENTS: + by-project: + mozilla-central: "" # TODO: enable after firefox-android merge + default: "" + USE_MOZILLA_CENTRAL: + by-project: + mozilla-central: "1" + default: "" + + +jobs: + hsts-hpkp-blocklist: + name: periodic_file_update + description: HSTS, HPKP and remote settings update + run-on-projects: [] # Only run via cron + treeherder: + kind: build + platform: linux64/opt + symbol: pfu + tier: 1 + worker-type: b-linux-xlarge-gcp + worker: + implementation: docker-worker + os: linux + docker-image: {in-tree: periodic-updates} + max-run-time: 14400 # Takes up to 4 hours + env: + PRODUCT: firefox + REVIEWERS: "#release-managers" + command: + - /runme.sh + taskcluster-proxy: true + artifacts: + - name: 'public/build/nsSTSPreloadList.diff' + path: '/home/worker/artifacts/nsSTSPreloadList.diff' + type: file + - name: 'public/build/StaticHPKPins.h.diff' + path: '/home/worker/artifacts/StaticHPKPins.h.diff' + type: file + - name: 'public/build/remote-settings.diff' + path: '/home/worker/artifacts/remote-settings.diff' + type: file + - name: 'public/build/initial_experiments.diff' + path: '/home/worker/artifacts/initial_experiments.diff' + type: file + scopes: + - secrets:get:project/releng/gecko/build/level-{level}/arc-phabricator-token diff --git a/taskcluster/ci/scriptworker-canary/kind.yml b/taskcluster/ci/scriptworker-canary/kind.yml new file mode 100644 index 0000000000..a1ee225b89 --- /dev/null +++ b/taskcluster/ci/scriptworker-canary/kind.yml @@ -0,0 +1,33 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.scriptworker_canary:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + treeherder: + platform: firefox-release/opt + tier: 1 + kind: build + worker-type: b-linux-gcp + worker: + docker-image: {in-tree: push-to-try} + max-run-time: 1800 + env: + MOZBUILD_STATE_PATH: /builds/worker/workspace + run: + sparse-profile: push-to-try + +jobs: + push: + description: Push scriptworker canary tasks. + treeherder: + symbol: Rel(push-scriptworker-canary) + run-on-projects: [mozilla-central] + addresses: ['release+scriptworker-canary@mozilla.com'] + ssh-key-secret: project/releng/scriptworker/scriptworker-canary-sshkey diff --git a/taskcluster/ci/searchfox/kind.yml b/taskcluster/ci/searchfox/kind.yml new file mode 100644 index 0000000000..98c2235fe1 --- /dev/null +++ b/taskcluster/ci/searchfox/kind.yml @@ -0,0 +1,183 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + - fetch + +transforms: + - gecko_taskgraph.transforms.build:transforms + - gecko_taskgraph.transforms.build_attrs:transforms + - gecko_taskgraph.transforms.build_lints:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + index: + product: firefox + treeherder: + symbol: Searchfox(idx) + kind: build + tier: 2 + run-on-projects: ['mozilla-central'] + optimization: null + use-system-python: false + # These builds don't use sccache because otherwise we wouldn't index + # the files that sccache optimizes away compilation for. + use-sccache: false + +jobs: + linux64-searchfox/debug: + description: "Linux64 Debug Searchfox" + index: + job-name: linux64-searchfox-debug + treeherder: + platform: linux64/debug + worker-type: b-linux-gcp + worker: + max-run-time: 10800 + env: + PERFHERDER_EXTRA_OPTIONS: searchfox + MOZSEARCH_PLATFORM: "linux" + run: + using: mozharness + actions: [build] + config: + - builds/releng_base_firefox.py + - builds/releng_sub_linux_configs/64_searchfox_and_debug.py + script: "mozharness/scripts/fx_desktop_build.py" + tooltool-downloads: public + keep-artifacts: false + fetches: + toolchain: + - linux64-clang + - linux64-nasm + - linux64-node + - linux64-rust + - linux64-cbindgen + - linux64-dump_syms + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + + macosx64-searchfox/debug: + description: "MacOS X x64 Debug Cross-compile Searchfox" + index: + job-name: macosx64-searchfox-debug + treeherder: + platform: osx-cross/debug + worker-type: b-linux-gcp + worker: + max-run-time: 10800 + env: + PERFHERDER_EXTRA_OPTIONS: searchfox + MOZSEARCH_PLATFORM: "macosx" + 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" + custom-build-variant-cfg: cross-debug-searchfox + secrets: true + keep-artifacts: false + fetches: + toolchain: + - linux64-clang + - linux64-hfsplus + - linux64-libdmg + - linux64-nasm + - linux64-node + - linux64-rust-cross + - linux64-cbindgen + - linux64-dump_syms + - macosx64-sdk + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + + win64-searchfox/debug: + description: "Win64 Searchfox Debug (clang-cl)" + index: + job-name: win64-searchfox-debug + treeherder: + platform: windows2012-64/debug + worker-type: b-linux-gcp + worker: + max-run-time: 10800 + env: + PERFHERDER_EXTRA_OPTIONS: searchfox + MOZSEARCH_PLATFORM: "windows" + run: + using: mozharness + 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 + - builds/taskcluster_sub_win64/searchfox_debug.py + extra-config: + mozconfig_platform: win64 + 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 + - windows-rs + fetch: + - upx-3.95-win + + android-armv7-searchfox/debug: + description: "Android ARMv7 Debug Searchfox" + index: + job-name: android-armv7-searchfox-debug + treeherder: + platform: android-4-1-armv7/debug + worker-type: b-linux-gcp + worker: + docker-image: {in-tree: android-build} + max-run-time: 10800 + env: + PERFHERDER_EXTRA_OPTIONS: searchfox + MOZSEARCH_PLATFORM: "android-armv7" + GRADLE_USER_HOME: "/builds/worker/checkouts/gecko/mobile/android/gradle/dotgradle-offline" + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest" + run: + using: mozharness + actions: [get-secrets, build] + config: + - builds/releng_base_android_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: arm-debug-searchfox + tooltool-downloads: internal + fetches: + toolchain: + - android-gradle-dependencies + - android-ndk-linux + - android-sdk-linux + - linux64-jdk + - linux64-clang + - linux64-rust-cross + - linux64-rust-size + - linux64-cbindgen + - linux64-dump_syms + - linux64-nasm + - linux64-node + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi diff --git a/taskcluster/ci/sentry/kind.yml b/taskcluster/ci/sentry/kind.yml new file mode 100644 index 0000000000..bfc3cf07a2 --- /dev/null +++ b/taskcluster/ci/sentry/kind.yml @@ -0,0 +1,34 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.sentry:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +jobs: + mach-release: + description: Inform Sentry of new revisions (aka Mach releases) + worker-type: b-linux-gcp + worker: + taskcluster-proxy: true + max-run-time: 3600 + docker-image: {in-tree: sentry} + env: + HG_PUSHLOG_URL: "{head_repository}/json-pushes?version=2&changeset={head_rev}" + SENTRY_SECRET: "project/engwf/gecko/{level}/tokens" + scopes: + - "secrets:get:project/engwf/gecko/{level}/tokens" + run: + using: run-task + checkout: false + command: /bin/bash /usr/bin/submit_sentry_release.sh + run-on-projects: ['mozilla-central'] + treeherder: + symbol: Sentry(mach-release) + platform: other/opt + tier: 2 + kind: other diff --git a/taskcluster/ci/shippable-l10n-mac-notarization/kind.yml b/taskcluster/ci/shippable-l10n-mac-notarization/kind.yml new file mode 100644 index 0000000000..461eac91ac --- /dev/null +++ b/taskcluster/ci/shippable-l10n-mac-notarization/kind.yml @@ -0,0 +1,29 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.mac_notarization + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.upstream_artifact_task + - gecko_taskgraph.transforms.shippable_l10n_signing + - gecko_taskgraph.transforms.signing + - gecko_taskgraph.transforms.task + +kind-dependencies: + - shippable-l10n-mac-signing + +only-for-attributes: + - shippable + +jobs: + shippable-l10n-mac-notarization: + from-deps: + group-by: chunk-locales + copy-attributes: true + max-run-time: 1800 + treeherder: + symbol: BMN diff --git a/taskcluster/ci/shippable-l10n-mac-signing/kind.yml b/taskcluster/ci/shippable-l10n-mac-signing/kind.yml new file mode 100644 index 0000000000..21fe44b4f0 --- /dev/null +++ b/taskcluster/ci/shippable-l10n-mac-signing/kind.yml @@ -0,0 +1,31 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.shippable_l10n_signing + - gecko_taskgraph.transforms.signing + - gecko_taskgraph.transforms.hardened_signing + - gecko_taskgraph.transforms.task + +kind-dependencies: + - shippable-l10n + +only-for-build-platforms: + - macosx64-shippable/opt + - macosx64-devedition/opt + - macosx64/opt + - macosx64/debug + +jobs: + shippable-l10n-mac-signing: + from-deps: + group-by: chunk-locales + treeherder: + symbol: BMS + attributes: + shipping_phase: promote diff --git a/taskcluster/ci/shippable-l10n-signing/kind.yml b/taskcluster/ci/shippable-l10n-signing/kind.yml new file mode 100644 index 0000000000..fdb545381f --- /dev/null +++ b/taskcluster/ci/shippable-l10n-signing/kind.yml @@ -0,0 +1,31 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.name_sanity + - gecko_taskgraph.transforms.upstream_artifact_task + - gecko_taskgraph.transforms.shippable_l10n_signing + - gecko_taskgraph.transforms.signing + - gecko_taskgraph.transforms.task + +kind-dependencies: + - shippable-l10n + +only-for-attributes: + - shippable + - nightly + +not-for-build-platforms: + - macosx64-shippable/opt + - macosx64-devedition/opt + - macosx64/opt + - macosx64/debug + +jobs: + shippable-l10n-signing: + from-deps: + group-by: chunk-locales diff --git a/taskcluster/ci/shippable-l10n/kind.yml b/taskcluster/ci/shippable-l10n/kind.yml new file mode 100644 index 0000000000..d38edb2ee5 --- /dev/null +++ b/taskcluster/ci/shippable-l10n/kind.yml @@ -0,0 +1,199 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.l10n + - gecko_taskgraph.transforms.job + - gecko_taskgraph.transforms.task + +kind-dependencies: + - build + - build-signing + - fetch + - repackage + - toolchain + +only-for-build-platforms: + - linux64-shippable/opt + - linux-shippable/opt + - macosx64-shippable/opt + - win32-shippable/opt + - win64-shippable/opt + - win64-aarch64-shippable/opt + - linux64-devedition/opt + - linux-devedition/opt + - macosx64-devedition/opt + - win32-devedition/opt + - win64-devedition/opt + - win64-aarch64-devedition/opt + +jobs: + shippable-l10n: + description: Localization + from-deps: + group-by: platform + locales-file: browser/locales/l10n-changesets.json + locales-per-chunk: 5 + run-on-projects: ['release'] + attributes: + shipping_phase: promote + ignore-locales: + by-build-platform: + # OSX has a special locale for japanese + macosx64.*: [ja] + default: [ja-JP-mac] + run-time: 1800 + fetches: + toolchain: + by-build-platform: + default: [] + macosx64.*: + - linux64-libdmg + - linux64-hfsplus + win.*: + - linux64-wine + - nsis + fetch: + by-build-platform: + default: [] + win.*: + - upx-3.95-win + tooltool: + by-build-platform: + default: internal + linux.*: public + index: + type: shippable-l10n + product: + by-build-platform: + default: firefox + .*-devedition: devedition + job-name: + by-build-platform: + linux-shippable: linux-opt + linux64-shippable: linux64-opt + macosx64-shippable: macosx64-opt + win32-shippable: win32-opt + win64-shippable: win64-opt + win64-aarch64-shippable: win64-aarch64-opt + linux-devedition: linux-devedition-opt + linux64-devedition: linux64-devedition-opt + macosx64-devedition: macosx64-devedition-opt + win32-devedition: win32-devedition-opt + win64-devedition: win64-devedition-opt + win64-aarch64-devedition: win64-aarch64-devedition-opt + worker-type: b-linux-gcp + treeherder: + symbol: L10n(B) + tier: 1 + platform: + by-build-platform: + linux64-shippable: linux64-shippable/opt + linux-shippable: linux32-shippable/opt + macosx64-shippable: osx-shippable/opt + win32-shippable: windows2012-32-shippable/opt + win64-shippable: windows2012-64-shippable/opt + win64-aarch64-shippable: windows2012-aarch64-shippable/opt + linux64-devedition: linux64-devedition/opt + linux-devedition: linux32-devedition/opt + macosx64-devedition: osx-cross-devedition/opt + win32-devedition: windows2012-32-devedition/opt + win64-devedition: windows2012-64-devedition/opt + win64-aarch64-devedition: windows2012-aarch64-devedition/opt + env: + by-build-platform: + linux.*: # linux64 and 32 get same treatment here + EN_US_PACKAGE_NAME: target.tar.bz2 + EN_US_BINARY_URL: + artifact-reference: <build-signing/{artifact_prefix}> + macosx64.*: + EN_US_PACKAGE_NAME: target.dmg + EN_US_BINARY_URL: + artifact-reference: <repackage/{artifact_prefix}> + win.*: + EN_US_PACKAGE_NAME: target.zip + EN_US_BINARY_URL: + artifact-reference: <build-signing/{artifact_prefix}> + mozharness: + config: + by-build-platform: + linux-shippable: + - single_locale/firefox.py + - single_locale/linux32.py + - single_locale/tc_common.py + - single_locale/tc_linux_common.py + - taskcluster_nightly.py + linux64-shippable: + - single_locale/firefox.py + - single_locale/linux64.py + - single_locale/tc_common.py + - single_locale/tc_linux_common.py + - taskcluster_nightly.py + macosx64-shippable: + - single_locale/firefox.py + - single_locale/macosx64.py + - single_locale/tc_common.py + - single_locale/tc_macosx64.py + - taskcluster_nightly.py + win32-shippable: + - single_locale/firefox.py + - single_locale/win32.py + - single_locale/tc_common.py + - single_locale/tc_win32.py + - taskcluster_nightly.py + win64-shippable: + - single_locale/firefox.py + - single_locale/win64.py + - single_locale/tc_common.py + - single_locale/tc_win64.py + - taskcluster_nightly.py + win64-aarch64-shippable: + - single_locale/firefox.py + - single_locale/win64-aarch64.py + - single_locale/tc_common.py + - single_locale/tc_win64.py + - taskcluster_nightly.py + linux-devedition: + - single_locale/devedition.py + - single_locale/linux32.py + - single_locale/tc_common.py + - single_locale/tc_linux_common.py + - taskcluster_nightly.py + linux64-devedition: + - single_locale/devedition.py + - single_locale/linux64.py + - single_locale/tc_common.py + - single_locale/tc_linux_common.py + - taskcluster_nightly.py + macosx64-devedition: + - single_locale/devedition.py + - single_locale/macosx64.py + - single_locale/tc_common.py + - single_locale/tc_macosx64.py + - taskcluster_nightly.py + win32-devedition: + - single_locale/devedition.py + - single_locale/win32.py + - single_locale/tc_common.py + - single_locale/tc_win32.py + - taskcluster_nightly.py + win64-devedition: + - single_locale/devedition.py + - single_locale/win64.py + - single_locale/tc_common.py + - single_locale/tc_win64.py + - taskcluster_nightly.py + win64-aarch64-devedition: + - single_locale/devedition.py + - single_locale/win64-aarch64.py + - single_locale/tc_common.py + - single_locale/tc_win64.py + - taskcluster_nightly.py + # no default, so we fail on new entries + actions: ['clone-locales', 'list-locales', 'setup', 'repack', + 'summary'] + script: mozharness/scripts/desktop_l10n.py diff --git a/taskcluster/ci/snap-upstream-build/kind.yml b/taskcluster/ci/snap-upstream-build/kind.yml new file mode 100644 index 0000000000..7016989ba8 --- /dev/null +++ b/taskcluster/ci/snap-upstream-build/kind.yml @@ -0,0 +1,218 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + - fetch + +transforms: + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + attributes: + cron: true + treeherder: + kind: build + tier: 2 + symbol: B + worker-type: b-linux-gcp + run: + checkout: true + worker: + artifacts: + - name: public/build + type: directory + path: /builds/worker/artifacts/ + docker-image: {in-tree: snap-build-core22} + max-run-time: 900 + env: + UPLOAD_DIR: artifacts + MOZ_STACKWALK_SYMBOLS_SERVER: '1' + fetches: + toolchain: + - linux64-minidump-stackwalk + +jobs: + amd64-nightly/opt: + description: Build Firefox Nightly as a Snap using upstream definition + attributes: + build_platform: linux64-snap-upstream-nightly + build_type: opt + index: + product: firefox + job-name: amd64-nightly + type: generic + worker: + max-run-time: 9000 + run: + using: run-task + command: >- + ./run.sh nightly + treeherder: + platform: linux64-snap-amd64-nightly/opt + + amd64-nightly/debug: + description: Build Firefox Nightly (debug) as a Snap using upstream definition + attributes: + build_platform: linux64-snap-upstream-nightly + build_type: debug + index: + product: firefox + job-name: amd64-nightly-debug + type: generic + worker: + max-run-time: 7200 + run: + using: run-task + command: >- + ./run.sh nightly 1 + treeherder: + platform: linux64-snap-amd64-nightly/debug + + amd64-beta/opt: + description: Build Firefox Beta as a Snap using upstream definition + attributes: + build_platform: linux64-snap-upstream-beta + build_type: opt + index: + product: firefox + job-name: amd64-beta + type: generic + worker: + max-run-time: 9000 + run: + using: run-task + command: >- + ./run.sh beta + treeherder: + platform: linux64-snap-amd64-beta/opt + + amd64-beta/debug: + description: Build Firefox Beta (debug) as a Snap using upstream definition + attributes: + build_platform: linux64-snap-upstream-beta + build_type: debug + index: + product: firefox + job-name: amd64-beta-debug + type: generic + worker: + max-run-time: 7200 + run: + using: run-task + command: >- + ./run.sh beta 1 + treeherder: + platform: linux64-snap-amd64-beta/debug + + amd64-stable/opt: + description: Build Firefox Stable as a Snap using upstream definition + attributes: + build_platform: linux64-snap-upstream-stable + build_type: opt + index: + product: firefox + job-name: amd64-stable + type: generic + worker: + max-run-time: 9000 + run: + using: run-task + command: >- + ./run.sh stable + treeherder: + platform: linux64-snap-amd64-stable/opt + + amd64-stable/debug: + description: Build Firefox Stable (debug) as a Snap using upstream definition + attributes: + build_platform: linux64-snap-upstream-stable + build_type: debug + index: + product: firefox + job-name: amd64-stable-debug + type: generic + worker: + max-run-time: 7200 + run: + using: run-task + command: >- + ./run.sh stable 1 + treeherder: + platform: linux64-snap-amd64-stable/debug + + amd64-esr/opt: + description: Build Firefox ESR as a Snap using upstream definition + attributes: + build_platform: linux64-snap-upstream-esr + build_type: opt + index: + product: firefox + job-name: amd64-esr + type: generic + worker: + max-run-time: 9000 + run: + using: run-task + command: >- + ./run.sh esr + treeherder: + platform: linux64-snap-amd64-esr/opt + + amd64-esr/debug: + description: Build Firefox ESR (debug) as a Snap using upstream definition + attributes: + build_platform: linux64-snap-upstream-esr + build_type: debug + index: + product: firefox + job-name: amd64-esr-debug + type: generic + worker: + max-run-time: 7200 + run: + using: run-task + command: >- + ./run.sh esr 1 + treeherder: + platform: linux64-snap-amd64-esr/debug + + amd64-try/opt: + description: Build Firefox Nightly as a Snap using upstream definition and try repo + attributes: + build_platform: linux64-snap-upstream-try + build_type: opt + index: + product: firefox + job-name: amd64-try + type: generic + worker: + max-run-time: 9000 + run: + using: run-task + command: >- + ./run.sh try + treeherder: + platform: linux64-snap-amd64-try/opt + + amd64-try/debug: + description: Build Firefox Nightly (debug) as a Snap using upstream definition and try repo + attributes: + build_platform: linux64-snap-upstream-try + build_type: debug + index: + product: firefox + job-name: amd64-try-debug + type: generic + worker: + max-run-time: 7200 + run: + using: run-task + command: >- + ./run.sh try 1 + treeherder: + platform: linux64-snap-amd64-try/debug diff --git a/taskcluster/ci/snap-upstream-test/kind.yml b/taskcluster/ci/snap-upstream-test/kind.yml new file mode 100644 index 0000000000..585a1fca1f --- /dev/null +++ b/taskcluster/ci/snap-upstream-test/kind.yml @@ -0,0 +1,73 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +only-for-attributes: + - build_platform + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.job + - gecko_taskgraph.transforms.task + - gecko_taskgraph.transforms.snap_test + +kind-dependencies: + - snap-upstream-build + +job-defaults: + attributes: + retrigger: true + cron: true + treeherder: + kind: test + tier: 2 + run: + using: run-task + checkout: false + worker: + max-run-time: 900 + env: + WAYLAND_DISPLAY: 'wayland-0' + artifacts: + - name: public/build + type: directory + path: builds/worker/artifacts/ + +jobs: + basic: + from-deps: + group-by: single-with-filters + description: Runs basic tests on a Firefox Snap package + worker-type: t-linux-wayland + run: + command: >- + export TASKCLUSTER_ROOT_DIR=$PWD && cd $MOZ_FETCHES_DIR/ && ./tests.sh --basic + fetches: + snap-upstream-build: + - firefox.snap + - snap-tests.zip + treeherder: + platform: linux64/opt + symbol: Sel(basic) + attributes: + snap_test_type: basic + + qa: + from-deps: + group-by: single-with-filters + description: Runs some QA tests on a Firefox Snap package + worker-type: t-linux-wayland + run: + command: >- + export TASKCLUSTER_ROOT_DIR=$PWD && cd $MOZ_FETCHES_DIR/ && ./tests.sh --qa + fetches: + snap-upstream-build: + - firefox.snap + - snap-tests.zip + treeherder: + platform: linux64/opt + symbol: Sel(QA) + attributes: + snap_test_type: qa diff --git a/taskcluster/ci/source-test/clang.yml b/taskcluster/ci/source-test/clang.yml new file mode 100644 index 0000000000..d77066afe7 --- /dev/null +++ b/taskcluster/ci/source-test/clang.yml @@ -0,0 +1,117 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + run-on-projects: ["trunk"] + platform: linux64/debug + worker-type: t-linux-xlarge-source + attributes: + code-review: true + worker: + docker-image: {in-tree: static-analysis-build} + max-run-time: 5400 + treeherder: + kind: other + tier: 2 + run: + using: run-task + tooltool-downloads: public + fetches: + toolchain: + - linux64-cbindgen + - linux64-nasm + - linux64-node + when: + files-changed: + - '**/*.c' + - '**/*.cpp' + - '**/*.cc' + - '**/*.cxx' + - '**/*.m' + - '**/*.mm' + +tidy: + description: Run static-analysis (clang-tidy) on C/C++ patches + treeherder: + symbol: cpp(clang-tidy) + run: + cwd: '{checkout}' + command: >- + source taskcluster/scripts/misc/source-test-clang-setup.sh && + ./mach --log-no-times static-analysis check --outgoing --output $HOME/clang-tidy.json --format json + fetches: + toolchain: + - linux64-clang + - linux64-clang-tidy + - linux64-rust + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + worker: + artifacts: + - type: file + name: public/code-review/clang-tidy.json + path: /builds/worker/clang-tidy.json + +format: + description: Run clang-format on C/C++ patches + treeherder: + symbol: cpp(clang-format) + # Run only on try and code-review tasks + # to avoid running clang format on the whole codebase + run-on-projects: [] + run: + cwd: '{checkout}' + command: >- + source taskcluster/scripts/misc/source-test-clang-setup.sh && + ./mach --log-no-times clang-format --outgoing --output $HOME/clang-format.json --format json && + ./mach --log-no-times clang-format --outgoing --output $HOME/clang-format.diff --format diff + fetches: + toolchain: + - linux64-clang + - linux64-clang-tidy + - linux64-rust + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + when: + files-changed: + - '**/*.c' + - '**/*.cpp' + - '**/*.cc' + - '**/*.cxx' + - '**/*.m' + - '**/*.mm' + - '**/*.h' + - '**/*.hh' + - '**/*.hpp' + - '**/*.hxx' + worker: + artifacts: + - type: file + name: public/code-review/clang-format.json + path: /builds/worker/clang-format.json + - type: file + name: public/code-review/clang-format.diff + path: /builds/worker/clang-format.diff + +external: + description: Run static-analysis (clang-tidy) on C/C++ patches with external checks + treeherder: + symbol: cpp(clang-tidy-external) + run: + cwd: '{checkout}' + command: >- + source taskcluster/scripts/misc/source-test-clang-setup.sh && + ./mach --log-no-times static-analysis check --checks="-*,mozilla-civet-*" --outgoing --output $HOME/clang-tidy.json --format json + fetches: + toolchain: + - linux64-clang + - linux64-clang-tidy-external + - linux64-rust + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + worker: + artifacts: + - type: file + name: public/code-review/clang-tidy.json + path: /builds/worker/clang-tidy.json diff --git a/taskcluster/ci/source-test/cram.yml b/taskcluster/ci/source-test/cram.yml new file mode 100644 index 0000000000..6e29e7c6a6 --- /dev/null +++ b/taskcluster/ci/source-test/cram.yml @@ -0,0 +1,21 @@ +--- +tryselect: + description: tools/tryselect integration tests + platform: linux1804-64/opt + treeherder: + symbol: cram(try) + kind: test + tier: 2 + worker-type: t-linux-xlarge-source + worker: + docker-image: {in-tree: "lint"} + max-run-time: 1800 + run: + using: mach + mach: cramtest tools/tryselect + always-target: true + when: + files-changed: + - testing/mach_commands.py + - third_party/python/cram/** + - tools/tryselect/** diff --git a/taskcluster/ci/source-test/doc.yml b/taskcluster/ci/source-test/doc.yml new file mode 100644 index 0000000000..3e0459f8f0 --- /dev/null +++ b/taskcluster/ci/source-test/doc.yml @@ -0,0 +1,75 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +generate: + description: Generate the Sphinx documentation + platform: doc/opt + treeherder: + symbol: doc(generate) + kind: test + tier: 1 + run-on-projects: ['trunk'] + worker-type: t-linux-xlarge-source + worker: + docker-image: {in-tree: "lint"} + max-run-time: 1800 + env: + LC_ALL: C + artifacts: + - type: file + name: public/docs.tar.gz + path: /builds/worker/checkouts/gecko/docs-out/main.tar.gz + - type: file + name: public/trees.json + path: /builds/worker/artifacts/trees.json + run: + using: run-task + cwd: '{checkout}' + command: > + cp -r /build/node_modules_eslint node_modules && + ln -s ../tools/lint/eslint/eslint-plugin-mozilla node_modules && + ln -s ../tools/lint/eslint/eslint-plugin-spidermonkey-js node_modules && + ./mach doc --outdir docs-out --no-open --no-serve --archive --fatal-warnings --check-num-warnings --dump-trees=/builds/worker/artifacts/trees.json + sparse-profile: sphinx-docs + optimization: + skip-unless-schedules: [docs] + +upload: + description: Generate and upload the Sphinx documentation + platform: doc/opt + attributes: + code-review: true + treeherder: + symbol: doc(upload) + kind: test + tier: 2 + run-on-projects: [mozilla-central-only] + worker-type: t-linux-xlarge-source + worker: + docker-image: {in-tree: "lint"} + max-run-time: 1800 + env: + LC_ALL: C + MOZ_SOURCE_DOCS_USE_GOOGLE: "1" + taskcluster-proxy: true + artifacts: + - type: file + name: public/firefox-source-docs-url.txt + path: /builds/worker/firefox-source-docs-url.txt + - type: file + name: public/trees.json + path: /builds/worker/artifacts/trees.json + run: + using: run-task + cwd: '{checkout}' + command: > + cp -r /build/node_modules_eslint node_modules && + ln -s ../tools/lint/eslint/eslint-plugin-mozilla node_modules && + ln -s ../tools/lint/eslint/eslint-plugin-spidermonkey-js node_modules && + ./mach doc --upload --no-open --no-serve --fatal-warnings --write-url /builds/worker/firefox-source-docs-url.txt --dump-trees=/builds/worker/artifacts/trees.json + sparse-profile: sphinx-docs + scopes: + - secrets:get:project/releng/gecko/build/level-{level}/gecko-docs-upload + optimization: + skip-unless-schedules: [docs] diff --git a/taskcluster/ci/source-test/file-metadata.yml b/taskcluster/ci/source-test/file-metadata.yml new file mode 100644 index 0000000000..b1fffaf64f --- /dev/null +++ b/taskcluster/ci/source-test/file-metadata.yml @@ -0,0 +1,126 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + platform: lint/opt + treeherder: + kind: other + tier: 1 + worker-type: t-linux-xlarge-source + worker: + artifacts: + - type: directory + path: /builds/worker/artifacts + name: public + docker-image: {in-tree: "lint"} + max-run-time: 1800 + run: + using: mach + +bugzilla-components: + description: Generate metadata about source files and Bugzilla + treeherder: + symbol: Bugzilla + tier: 1 + index: + product: source + job-name: source-bugzilla-info + run: + mach: file-info bugzilla-automation /builds/worker/artifacts + worker: + max-run-time: 1800 + run-on-projects: ['autoland', 'mozilla-central'] + +test-info-xorigin: + description: Generate test manifest metadata for tests disabled on cross-origin + treeherder: + symbol: test-info(xorigin) + tier: 2 + index: + product: source + job-name: test-info-xorigin + worker: + docker-image: {in-tree: debian12-amd64-build} + run-on-projects: ['mozilla-central'] + fetches: + toolchain: + - linux64-clang + - linux64-clang-tidy + - linux64-rust + - linux64-cbindgen + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + run: + using: run-task + cwd: '{checkout}' + command: >- + source taskcluster/scripts/misc/source-test-common.sh && + ./mach test-info report --show-tests --show-summary --filter-keys=fail-if,fails-if,random-if,skip-if --filter-values='(?<!!)xorigin' --output-file /builds/worker/artifacts/test-info-xorigin.json + +test-info-disabled-by-os: + description: Generate test manifest metadata for tests disabled on each operating system + treeherder: + symbol: test-info(disabled-by-os) + tier: 2 + index: + product: source + job-name: test-info-disabled-by-os + worker: + docker-image: {in-tree: debian12-amd64-build} + run-on-projects: ['mozilla-central'] + fetches: + toolchain: + - linux64-clang + - linux64-clang-tidy + - linux64-rust + - linux64-cbindgen + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + run: + using: run-task + cwd: '{checkout}' + command: >- + source taskcluster/scripts/misc/source-test-common.sh && + ./mach test-info report --show-tests --show-summary --filter-keys=fail-if,fails-if,random-if,skip-if --filter-values='(?<!!)(android|android_version|Android|AndroidVersion|geckoview|emulator|device)' --output-file /builds/worker/artifacts/test-info-disabled-on-android.json && + ./mach test-info report --show-tests --show-summary --filter-keys=fail-if,fails-if,random-if,skip-if --filter-values='(?<!!)(linux|Linux)' --output-file /builds/worker/artifacts/test-info-disabled-on-linux.json && + ./mach test-info report --show-tests --show-summary --filter-keys=fail-if,fails-if,random-if,skip-if --filter-values='(?<!!)(osx|OSX|mac)' --output-file /builds/worker/artifacts/test-info-disabled-on-mac.json && + ./mach test-info report --show-tests --show-summary --filter-keys=fail-if,fails-if,random-if,skip-if --filter-values='(?<!!)(win|Windows|WINNT)' --output-file /builds/worker/artifacts/test-info-disabled-on-windows.json + +test-info-all: + description: Generate global test manifest metadata + treeherder: + symbol: test-info(all) + tier: 2 + index: + product: source + job-name: test-info-all + worker: + docker-image: {in-tree: debian12-amd64-build} + max-run-time: 5400 + run-on-projects: ['mozilla-central'] + fetches: + toolchain: + - linux64-clang + - linux64-clang-tidy + - linux64-rust + - linux64-cbindgen + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + run: + using: run-task + cwd: '{checkout}' + command: >- + source taskcluster/scripts/misc/source-test-common.sh && + ./mach test-info testrun-report --output-file /builds/worker/artifacts/test-run-info.json && + ./mach test-info report --show-tests --show-summary --show-testruns --verbose --output-file /builds/worker/artifacts/test-info-all-tests.json --runcounts-input-file /builds/worker/artifacts/test-run-info.json && + ./mach test-info report --show-annotations --output-file /builds/worker/artifacts/test-info-manifest-conditions.json diff --git a/taskcluster/ci/source-test/jsshell.yml b/taskcluster/ci/source-test/jsshell.yml new file mode 100644 index 0000000000..2ce0a846d4 --- /dev/null +++ b/taskcluster/ci/source-test/jsshell.yml @@ -0,0 +1,87 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + platform: linux64-shippable/opt + require-build: + linux64.*: build-linux64-shippable/opt + worker-type: + by-platform: + linux64.*: t-linux-talos-1804 + worker: + by-platform: + linux64.*: + env: + by-shell: + sm: + SHELL: /bin/bash + JSSHELL: js + v8: + SHELL: /bin/bash + JSSHELL: d8/release/d8 + max-run-time: 3600 + treeherder: + kind: test + tier: 2 + run: + using: mach + mach: jsshell-bench --perfherder={shell} --binary=$MOZ_FETCHES_DIR/$JSSHELL {test} + run-on-projects: + by-shell: + sm: + by-test-platform: + (linux|windows|macos)(?!.*shippable).*: [] + default: ['mozilla-central', 'integration'] + default: + by-test-platform: + (linux|windows|macos)(?!.*shippable).*: [] + default: ['mozilla-central'] + fetches: + build: + - target.jsshell.zip + toolchain: + - linux64-custom-v8 + optimization: + skip-unless-expanded: null + +bench-ares6: + description: Ares6 JavaScript shell benchmark suite + shell: ['sm', 'v8'] + test: ares6 + treeherder: + symbol: ares6 + +bench-sixspeed: + description: Six-Speed JavaScript shell benchmark suite + shell: ['sm', 'v8'] + test: six-speed + treeherder: + symbol: 6speed + +bench-sunspider: + description: SunSpider JavaScript shell benchmark suite + shell: ['sm'] + test: sunspider + treeherder: + symbol: sunspider + +bench-web-tooling: + description: Web Tooling shell benchmark suite + shell: ['sm', 'v8'] + test: web-tooling-benchmark + treeherder: + symbol: webtool + fetches: + fetch: + - web-tooling-benchmark + +bench-octane: + description: Octane shell benchmark suite + shell: ['sm', 'v8'] + test: octane + treeherder: + symbol: octane + fetches: + fetch: + - octane diff --git a/taskcluster/ci/source-test/kind.yml b/taskcluster/ci/source-test/kind.yml new file mode 100644 index 0000000000..bb605e939a --- /dev/null +++ b/taskcluster/ci/source-test/kind.yml @@ -0,0 +1,45 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.try_job:transforms + - gecko_taskgraph.transforms.source_test:transforms + - taskgraph.transforms.task_context + - gecko_taskgraph.transforms.release_notifications:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +kind-dependencies: + - fetch + - toolchain + - build + +jobs-from: + - clang.yml + - cram.yml + - doc.yml + - file-metadata.yml + - jsshell.yml + - mozlint.yml + - mozlint-android.yml + - node.yml + - puppeteer.yml + - python.yml + - shadow-scheduler.yml + - taskgraph.yml + - vendor.yml + - webidl.yml + - webcompat.yml + - wpt-manifest.yml + - wpt-metadata.yml + +job-defaults: + use-system-python: false + attributes: + retrigger: true + task-context: + from-object: {} + substitution-fields: [] diff --git a/taskcluster/ci/source-test/mozlint-android.yml b/taskcluster/ci/source-test/mozlint-android.yml new file mode 100644 index 0000000000..6602d8c818 --- /dev/null +++ b/taskcluster/ci/source-test/mozlint-android.yml @@ -0,0 +1,106 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- + +# Just one TC job that runs all the lints. There's no real advantage +# to running them separately, and this way we perform the expensive +# clone and somewhat expensive compilation of the Android +# intermediates just once. +lints: + always-target: true + attributes: + build_platform: android + build_type: opt + code-review: true + description: Android lints + platform: lint/opt + treeherder: + symbol: A(lints) + kind: test + tier: 1 + worker-type: t-linux-xlarge-source + worker: + docker-image: {in-tree: android-build} + env: + GRADLE_USER_HOME: /builds/worker/checkouts/gecko/mobile/android/gradle/dotgradle-offline + MOZCONFIG: mobile/android/config/mozconfigs/android-arm/nightly-android-lints + MOZ_OBJDIR: obj-firefox + PERFHERDER_EXTRA_OPTIONS: android-lints + TINDERBOX_OUTPUT: '1' + max-run-time: 3600 + artifacts: + - type: file + name: public/code-review/mozlint.json + path: /builds/worker/mozlint.json + - name: public/android/geckoview/api.txt + path: /builds/worker/checkouts/gecko/obj-firefox/gradle/build/mobile/android/geckoview/intermediates/javac/withGeckoBinariesDebug/classes/api.txt + type: file + - name: public/android/geckoview/api.txt.map + path: /builds/worker/checkouts/gecko/obj-firefox/gradle/build/mobile/android/geckoview/intermediates/javac/withGeckoBinariesDebug/classes/api.txt.map + type: file + - name: public/android/geckoview/apilint-result.json + path: /builds/worker/checkouts/gecko/obj-firefox/gradle/build/mobile/android/geckoview/intermediates/javac/withGeckoBinariesDebug/classes/apilint-result.json + type: file + - name: public/android/geckoview/javadoc-results.json + path: /builds/worker/checkouts/gecko/obj-firefox/gradle/build/mobile/android/geckoview/reports/javadoc-results-withGeckoBinariesDebug.json + type: file + - name: public/geckoview/unittest + path: /builds/worker/checkouts/gecko/obj-firefox/gradle/build/mobile/android/geckoview/reports/tests + type: directory + - name: public/android/lint/lint-results-officialWithoutGeckoBinariesDebug.html + path: /builds/worker/checkouts/gecko/obj-firefox/gradle/build/mobile/android/geckoview/reports/lint-results-withGeckoBinariesDebug.html + type: file + - name: public/android/lint/lint-results-withGeckoBinariesDebug.xml + path: /builds/worker/checkouts/gecko/obj-firefox/gradle/build/mobile/android/geckoview/reports/lint-results-withGeckoBinariesDebug.xml + type: file + - name: public/android/checkstyle/checkstyle.html + path: /builds/worker/checkouts/gecko/obj-firefox/gradle/build/mobile/android/geckoview/reports/checkstyle/withGeckoBinariesDebug.html + type: file + - name: public/android/checkstyle/checkstyle.xml + path: /builds/worker/checkouts/gecko/obj-firefox/gradle/build/mobile/android/geckoview/reports/checkstyle/withGeckoBinariesDebug.xml + type: file + run: + using: run-task + command: > + ln -s $MOZ_FETCHES_DIR/android-gradle-dependencies $GECKO_PATH && + ln -s $MOZ_FETCHES_DIR/android-sdk-linux $GECKO_PATH && + ln -s $MOZ_FETCHES_DIR/node $GECKO_PATH && + cd $GECKO_PATH && + ./mach --log-no-times build pre-export export && + ./mach --log-no-times lint -f treeherder -f json:/builds/worker/mozlint.json + --linter android-api-lint + --linter android-format + --linter android-javadoc + --linter android-checkstyle + --linter android-lint + --linter android-test + * + tooltool-downloads: internal # For internal toolchains. + fetches: + toolchain: + # Aliases aren't allowed for toolchains installed by fetch. + - linux64-android-gradle-dependencies + - linux64-android-sdk-linux-repack + - linux64-jdk-repack + - linux64-node + when: + files-changed: + # Source files. + - 'mobile/android/**/*.java' + - 'mobile/android/**/*.kt' + # Resources. + - 'mobile/android/**/*.jpeg' + - 'mobile/android/**/*.jpg' + - 'mobile/android/**/*.png' + - 'mobile/android/**/*.svg' + - 'mobile/android/**/*.xml' + # Build stuff. + - 'mobile/android/**/Makefile.in' + - 'mobile/android/config/**' + - 'mobile/android/gradle.configure' + - 'mobile/android/**/moz.build' + - '**/*.gradle' + # Other misc lint related files. + - 'python/mozlint/**' + - 'tools/lint/**' diff --git a/taskcluster/ci/source-test/mozlint.yml b/taskcluster/ci/source-test/mozlint.yml new file mode 100644 index 0000000000..28f2381827 --- /dev/null +++ b/taskcluster/ci/source-test/mozlint.yml @@ -0,0 +1,609 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + always-target: true + attributes: + code-review: true + treeherder: + kind: test + tier: 1 + platform: lint/opt + worker-type: t-linux-xlarge-source + worker: + docker-image: {in-tree: "lint"} + max-run-time: 1800 + artifacts: + - type: file + name: public/code-review/mozlint.json + path: /builds/worker/mozlint.json + run: + using: mach + when: + files-changed: + # Other misc lint related files. + - 'python/mozlint/**' + - 'tools/lint/**' + +codespell: + description: Checks for misspellings in text files + treeherder: + symbol: text(spell) + # We don't want patches to be backed out because of a typo, a follow up bug will be + # good enough + tier: 2 + run: + mach: lint -v -l codespell -f treeherder -f json:/builds/worker/mozlint.json . + when: + files-changed: + - '**/*.js' + - '**/*.jsm' + - '**/*.jxs' + - '**/*.mjs' + - '**/*.xml' + - '**/*.html' + - '**/*.xhtml' + - '**/*.cpp' + - '**/*.c' + - '**/*.h' + - '**/*.configure' + - '**/*.py' + - '**/*.properties' + - '**/*.rst' + - '**/*.ftl' + - 'tools/lint/codespell.yml' + + +rejected-words: + description: Reject some words we don't want to use in the code base + treeherder: + symbol: text(rejected-words) + # We don't want patches to be backed out because of this, a follow up bug will be + # good enough + tier: 2 + run: + mach: lint -v -l rejected-words -f treeherder -f json:/builds/worker/mozlint.json . + when: + files-changed: + - '**/*.js' + - '**/*.jsm' + - '**/*.jxs' + - '**/*.mjs' + - '**/*.xml' + - '**/*.html' + - '**/*.xhtml' + - '**/*.cpp' + - '**/*.c' + - '**/*.h' + - '**/*.idl' + - '**/*.webidl' + - '**/*.configure' + - '**/*.py' + - '**/*.properties' + - '**/*.rst' + - '**/*.ftl' + - '**/*.java' + - '**/*.kt' + - 'tools/lint/rejected-words.yml' + +eslint: + description: JS lint check + treeherder: + symbol: js(ES) + run: + using: run-task + cwd: '{checkout}' + command: > + cp -r /build/node_modules_eslint node_modules && + cp -r /build/node_modules_eslint-plugin-mozilla/ tools/lint/eslint/eslint-plugin-mozilla/node_modules && + ln -s ../tools/lint/eslint/eslint-plugin-mozilla node_modules && + ln -s ../tools/lint/eslint/eslint-plugin-spidermonkey-js node_modules && + ./mach lint -v -l eslint -f treeherder -f json:/builds/worker/mozlint.json . + when: + files-changed: + # Files that are likely audited. + - '**/*.js' + - '**/*.jsm' + - '**/*.json' + - '**/*.jsx' + - '**/*.mjs' + - '**/*.sjs' + - '**/*.html' + - '**/*.xhtml' + - '**/*.xml' + - 'tools/lint/eslint.yml' + # Run when eslint policies change. + - '**/.eslintignore' + - '**/*eslintrc*' + # The plugin implementing custom checks. + - 'tools/lint/eslint/eslint-plugin-mozilla/**' + - 'tools/lint/eslint/eslint-plugin-spidermonkey-js/**' + +eslint-build: + description: ESLint checks with build data + always-target: false + # Triggered by cron task, don't run on any projects and disable optimization. + run-on-projects: [] + when: null + attributes: + code-review: false + treeherder: + symbol: js(ES-B) + tier: 2 + run: + using: run-task + cwd: '{checkout}' + command: > + export MOZ_XPT_ARTIFACTS_DIR="$MOZ_FETCHES_DIR/$MOZ_XPT_ARTIFACTS_DIRNAME" && + find "$MOZ_XPT_ARTIFACTS_DIR" && + cp -r /build/node_modules_eslint node_modules && + cp -r /build/node_modules_eslint-plugin-mozilla/ tools/lint/eslint/eslint-plugin-mozilla/node_modules && + ln -s ../tools/lint/eslint/eslint-plugin-mozilla node_modules && + ln -s ../tools/lint/eslint/eslint-plugin-spidermonkey-js node_modules && + ./mach lint -v -l eslint -f treeherder --quiet -f json:/builds/worker/mozlint.json . --rule "mozilla/valid-services-property: error" --rule "mozilla/valid-ci-uses: error" + worker: + env: + MOZ_XPT_ARTIFACTS_DIRNAME: xpt_artifacts + require-build: + .*: build-linux64/opt + fetches: + build: + - artifact: target.xpt_artifacts.zip + dest: xpt_artifacts + +stylelint: + description: CSS lint check + treeherder: + symbol: stylelint + run: + using: run-task + cwd: '{checkout}' + command: > + cp -r /build/node_modules_eslint node_modules && + ./mach lint -v -l stylelint -f treeherder -f json:/builds/worker/mozlint.json . + when: + files-changed: + # Files that are likely audited. + - '**/*.css' + - 'tools/lint/styleint.yml' + # Run when stylelint policies change. + - '**/.stylelintignore' + - '**/*stylelintrc*' + +license: + description: Check for license blocks in source files. + treeherder: + symbol: pedantic(license) + run: + mach: lint -v -l license -f treeherder -f json:/builds/worker/mozlint.json . + when: + files-changed: + - '**/*.c' + - '**/*.cc' + - '**/*.cpp' + - '**/*.css' + - '**/*.dtd' + - '**/*.ftl' + - '**/*.h' + - '**/*.html' + - '**/*.idl' + - '**/*.js' + - '**/*.jsm' + - '**/*.jsx' + - '**/*.m' + - '**/*.mjs' + - '**/*.mm' + - '**/*.properties' + - '**/*.py' + - '**/*.rs' + - '**/*.svg' + - '**/*.webidl' + - '**/*.xhtml' + - '**/*.xml' + - 'tools/lint/license.yml' + +lintpref: + description: Check for duplicates between all.js and StaticPrefList.yaml. + treeherder: + symbol: misc(pref) + run: + mach: lint -v -l lintpref -f treeherder -f json:/builds/worker/mozlint.json . + when: + files-changed: + - 'modules/libpref/init/all.js' + - 'modules/libpref/init/StaticPrefList.yaml' + - 'browser/app/profile/firefox.js' + - 'devtools/client/preferences/debugger.js' + - 'mobile/android/app/geckoview-prefs.js' + - 'browser/branding/official/pref/firefox-branding.js' + - 'browser/branding/nightly/pref/firefox-branding.js' + - 'browser/branding/unofficial/pref/firefox-branding.js' + - 'browser/branding/aurora/pref/firefox-branding.js' + - 'browser/app/profile/channel-prefs.js' + - 'mobile/android/installer/mobile-l10n.js' + - 'mobile/android/locales/en-US/mobile-l10n.js' + - 'tools/lint/lintpref.yml' + +mingw-cap: + description: lint for MinGW Capitalization issues + treeherder: + symbol: misc(mingw) + run: + mach: lint -v -l mingw-capitalization -f treeherder -f json:/builds/worker/mozlint.json . + when: + files-changed: + - '**/*.cpp' + - '**/*.cc' + - '**/*.c' + - '**/*.h' + - 'tools/lint/mingw-capitalization.yml' + +updatebot: + description: Ensure moz.yaml files are valid per schema + treeherder: + symbol: misc(mozyaml) + run: + mach: lint -v -l updatebot -f treeherder -f json:/builds/worker/mozlint.json . + when: + files-changed: + - '**/moz.yaml' + +mscom-init: + description: Lint for Microsoft COM initialization + treeherder: + symbol: misc(mscom) + run: + mach: lint -v -l mscom-init -f treeherder -f json:/builds/worker/mozlint.json . + when: + files-changed: + - '**/*.cpp' + - '**/*.cc' + - '**/*.c' + - '**/*.h' + - 'tools/lint/mscom-init.yml' + +py-black: + description: black run over the gecko codebase + treeherder: + symbol: py(black) + run: + mach: lint -v -l black -f treeherder -f json:/builds/worker/mozlint.json . + when: + files-changed: + # The list of extensions should match tools/lint/black.yml + - '**/*.py' + - '**/moz.build' + - '**/*.configure' + - '**/*.mozbuild' + - 'pyproject.toml' + - 'tools/lint/black.yml' + +py-ruff: + description: Run ruff over the gecko codebase + treeherder: + symbol: py(ruff) + run: + mach: lint -v -l ruff -f treeherder -f json:/builds/worker/mozlint.json . + when: + files-changed: + - '**/*.py' + - '**/*.configure' + - '**/.ruff.toml' + - 'pyproject.toml' + - 'tools/lint/ruff.yml' + - 'tools/lint/python/ruff.py' + - 'tools/lint/python/ruff_requirements.txt' + +test-manifest: + description: lint test manifests + treeherder: + symbol: misc(tm) + run: + mach: lint -v -l test-manifest-alpha -l test-manifest-disable -l test-manifest-skip-if -f treeherder -f json:/builds/worker/mozlint.json . + when: + files-changed: + - '**/*.toml' + - 'python/mozlint/**' + - 'tools/lint/**' + - 'tools/lint/test-disable.yml' + +wptlint-gecko: + description: web-platform-tests linter + treeherder: + symbol: misc(W) + run: + mach: lint -v -l wpt -f treeherder -f json:/builds/worker/mozlint.json . + when: + files-changed: + - 'testing/web-platform/tests/**' + - 'testing/web-platform/mozilla/tests/**' + - 'tools/lint/wpt.yml' + +yaml: + description: yamllint run over the gecko codebase + treeherder: + symbol: pedantic(yaml) + run: + mach: lint -v -l yaml -f treeherder -f json:/builds/worker/mozlint.json . + when: + files-changed: + - '**/*.yml' + - '**/*.yaml' + - '**/.ymllint' + +rst: + description: rst lint run over the gecko codebase + treeherder: + symbol: text(rst) + run: + mach: lint -v -l rst -f treeherder -f json:/builds/worker/mozlint.json . + when: + files-changed: + - '**/*.rst' + - 'tools/lint/rst.yml' + +shellcheck: + description: shellcheck run over the gecko codebase + treeherder: + symbol: misc(shell) + run: + mach: lint -v -l shellcheck -f treeherder -f json:/builds/worker/mozlint.json . + when: + files-changed: + - '**/*.sh' + - 'tools/lint/shellcheck.yml' + + +localization: + description: l10n tests for strings with errors + treeherder: + symbol: l10n(l1nt) + run: + mach: lint -v -l l10n -f treeherder * + attributes: + code-review: false + when: + files-changed: + - '**/locales/en-US/**' + - '**/l10n.toml' + - 'third_party/python/compare-locales/**' + - 'third_party/python/fluent/**' + - 'tools/lint/l10n.yml' + + +l10n-conflicts: + description: l10n tests for strings with errors and conflicts with cross-channel + treeherder: + symbol: l10n(l1nt-conflicts) + always-target: false + run-on-projects: [] + run: + mach: lint -W -l l10n -f treeherder -f json:/builds/worker/mozlint.json . + when: + files-changed: + - '**/locales/en-US/**' + - '**/l10n.toml' + - 'third_party/python/compare-locales/**' + - 'third_party/python/fluent/**' + - 'tools/lint/l10n.yml' + + +clang-format: + description: clang-format on the C/C++ code + treeherder: + symbol: cpp(clang-format) + run: + mach: lint -v -l clang-format -f treeherder -f json:/builds/worker/mozlint.json . + when: + files-changed: + - '**/*.cpp' + - '**/*.c' + - '**/*.cc' + - '**/*.h' + - '**/*.m' + - '**/*.mm' + - 'tools/lint/clang-format.yml' + dependencies: + linux64-clang-tidy: toolchain-linux64-clang-tidy + fetches: + linux64-clang-tidy: + - artifact: clang-tidy.tar.zst + dest: clang-tools + + +rustfmt: + description: rustfmt on the Rust code + treeherder: + symbol: rust(rustfmt) + run: + mach: lint -v -l rustfmt -f treeherder -f json:/builds/worker/mozlint.json . + when: + files-changed: + - '**/*.rs' + - 'tools/lint/rustfmt.yml' + fetches: + toolchain: + - linux64-rust + + +clippy: + description: clippy on the Rust code + treeherder: + symbol: rust(clippy) + run: + mach: lint -v -l clippy -f treeherder -f json:/builds/worker/mozlint.json -j 1 . + when: + files-changed: + - '**/*.rs' + - '**/Cargo.toml' + - 'tools/lint/clippy.yml' + 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 + + +file-whitespace: + description: Check for trailing whitespaces and Windows CR + platform: lint/opt + treeherder: + symbol: pedantic(file-whitespace) + # We don't want patches to be backed out because of this, a follow up bug will be + # good enough + tier: 2 + run: + mach: lint -v -l file-whitespace -f treeherder -f json:/builds/worker/mozlint.json . + when: + files-changed: + - '**/*.c' + - '**/*.cc' + - '**/*.cpp' + - '**/*.css' + - '**/*.dtd' + - '**/*.idl' + - '**/*.ftl' + - '**/*.h' + - '**/*.html' + - '**/*.json' + - '**/*.md' + - '**/*.mn' + - '**/*.properties' + - '**/*.py' + - '**/*.rs' + - '**/*.rst' + - '**/*.toml' + - '**/*.webidl' + - '**/*.yaml' + - '**/*.yml' + - '**/*.xhtml' + + +file-perm: + description: Check for incorrect permissions on source files + platform: lint/opt + treeherder: + symbol: pedantic(file-perm) + # We don't want patches to be backed out because of this, a follow up bug will be + # good enough + tier: 2 + run: + mach: lint -v -l file-perm -f treeherder -f json:/builds/worker/mozlint.json . + when: + files-changed: + - '**/*.build' + - '**/*.c' + - '**/*.cc' + - '**/*.cpp' + - '**/*.flac' + - '**/*.h' + - '**/*.html' + - '**/*.idl' + - '**/*.js' + - '**/*.jsm' + - '**/*.json' + - '**/*.jsx' + - '**/*.m' + - '**/*.m4s' + - '**/*.md' + - '**/*.mjs' + - '**/*.mm' + - '**/*.mn' + - '**/*.mozbuild' + - '**/*.mp4' + - '**/*.png' + - '**/*.rs' + - '**/*.rst' + - '**/*.svg' + - '**/*.toml' + - '**/*.ttf' + - '**/*.wasm' + - '**/*.webidl' + - '**/*.xhtml' + - '**/*.xml' + - '**/*.yaml' + - '**/*.yml' + + +perfdocs-verify: + description: Verifies Performance Testing documentation + treeherder: + symbol: text(perfdocs) + run: + mach: lint -v -l perfdocs -f treeherder -f json:/builds/worker/mozlint.json . + worker: + env: + WORKSPACE: /builds/worker/checkouts/gecko/ + DECISION_TASK_ID: {task-reference: <decision>} + artifacts: + - type: file + name: public/perfdocs.diff + path: /builds/worker/diff.txt + when: + files-changed: + - 'devtools/perfdocs/**' + - 'taskcluster/**' + - '**/perftest.toml' + - 'python/mozperftest/**' + - 'testing/awsy/**' + - 'testing/raptor/**' + - 'testing/talos/**' + - 'testing/performance/**' + - 'testing/perfdocs/**' + - 'tools/lint/perfdocs.yml' + +condprof-addons-verify: + description: | + Verifies all xpi files needed by condprof customization sideloading addons are + included in the firefox-addons fetch task. + treeherder: + symbol: misc(condprof-addons) + run: + mach: | + lint -v -l condprof-addons -f treeherder -f json:/builds/worker/mozlint.json . + fetches: + fetch: + - firefox-addons + when: + files-changed: + - 'testing/condprofile/condprof/customization/*.json' + - 'taskcluster/ci/fetch/browsertime.yml' + +fluent-lint: + description: Check for problems with Fluent files. + platform: lint/opt + treeherder: + symbol: l10n(fluent) + run: + mach: lint --linter fluent-lint -f treeherder -f json:/builds/worker/mozlint.json . + when: + files-changed: + - '**/*.ftl' + - 'tools/lint/fluent-lint.yml' + - 'tools/lint/fluent-lint/exclusions.yml' + +trojan-source: + description: Trojan Source attack - CVE-2021-42572 + platform: lint/opt + treeherder: + symbol: misc(trojan-source) + run: + mach: lint -v -l trojan-source --include-third-party -f treeherder -f json:/builds/worker/mozlint.json . + when: + files-changed: + - '**/*.c' + - '**/*.cc' + - '**/*.cpp' + - '**/*.h' + - '**/*.py' + - '**/*.rs' + - 'tools/lint/trojan-source.yml' diff --git a/taskcluster/ci/source-test/node.yml b/taskcluster/ci/source-test/node.yml new file mode 100644 index 0000000000..f1df46b73d --- /dev/null +++ b/taskcluster/ci/source-test/node.yml @@ -0,0 +1,186 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +newtab-unit-tests: + description: newtab unit tests + platform: linux1804-64/opt + treeherder: + symbol: node(newtab) + kind: test + tier: 1 + worker-type: t-linux-xlarge-source + worker: + docker-image: {in-tree: "ubuntu1804-test"} + max-run-time: 1800 + require-build: + by-project: + autoland: + linux1804-64/opt: build-linux64/opt + try: + linux1804-64/opt: build-linux64/opt + default: + linux1804-64/opt: build-linux64-shippable/opt + run: + using: run-task + cache-dotcache: true + cwd: '{checkout}' + command: > + cd /builds/worker/checkouts/gecko && + rm -rf node_modules && + npm ci && + cd /builds/worker/checkouts/gecko/browser/components/aboutwelcome && + rm -rf node_modules && + npm ci && + cd /builds/worker/checkouts/gecko/browser/components/asrouter && + rm -rf node_modules && + npm ci && + cd /builds/worker/checkouts/gecko/browser/components/newtab && + rm -rf node_modules && + npm ci && + node bin/try-runner.js + when: + files-changed: + - "browser/components/newtab/**" + - "browser/components/aboutwelcome/**" + - "browser/components/asrouter/**" + +newtab-unit-tests-ccov: + description: newtab unit tests code coverage + platform: linux1804-64/opt + treeherder: + symbol: node(newtab-ccov) + kind: test + tier: 1 + worker-type: t-linux-xlarge-source + worker: + docker-image: {in-tree: "ubuntu1804-test"} + max-run-time: 1800 + artifacts: + - name: public/code-coverage-grcov.zip + path: /builds/worker/checkouts/gecko/browser/components/newtab/logs/coverage/code-coverage-grcov.zip + type: file + require-build: + by-project: + try: + linux1804-64/opt: build-linux64/opt + default: + linux1804-64/opt: build-linux64-shippable/opt + run: + using: run-task + cache-dotcache: true + cwd: '{checkout}' + command: > + cd /builds/worker/checkouts/gecko && + rm -rf node_modules && + npm ci && + cd /builds/worker/checkouts/gecko/browser/components/aboutwelcome && + rm -rf node_modules && + npm ci && + cd /builds/worker/checkouts/gecko/browser/components/asrouter && + rm -rf node_modules && + npm ci && + cd /builds/worker/checkouts/gecko/browser/components/newtab && + rm -rf node_modules && + npm ci && + node bin/try-runner.js + # This should only run on mozilla-central, as the bot will only parse mozilla-central + # coverage anyways. + run-on-projects: ["mozilla-central"] + # Note the lack of a "when" rule here. This is to avoid seeing fluctuating + # coverage on coverage.moz.tools / searchfox depending on whether the latest + # push contained patches touching these files or not. + +devtools-tests: + description: devtools node-based tests (for instance jest) + platform: linux1804-64/opt + attributes: + code-review: true + treeherder: + symbol: node(devtools) + kind: test + tier: 1 + worker-type: t-linux-xlarge-source + worker: + docker-image: {in-tree: "lint"} + max-run-time: 1800 + artifacts: + - type: file + name: public/code-review/issues.json + path: /builds/worker/issues.json + run: + using: run-task + cache-dotcache: true + cwd: '{checkout}' + # Re-use rather than re-installing to avoid hitting/requiring + # nodejs servers for downloads + command: > + cp -r /build/node_modules_eslint node_modules && + cp -r /build/node_modules_eslint-plugin-mozilla/ tools/lint/eslint/eslint-plugin-mozilla/node_modules && + ln -s ../tools/lint/eslint/eslint-plugin-mozilla node_modules && + ln -s ../tools/lint/eslint/eslint-plugin-spidermonkey-js node_modules && + cd devtools/client/bin/ && + node devtools-node-test-runner.js --suite=all --artifact=/builds/worker/issues.json + when: + files-changed: + - 'devtools/client/**' + - 'devtools/shared/**' + +devtools-verify-bundle: + description: devtools bundle checker + platform: linux1804-64/opt + attributes: + code-review: true + treeherder: + symbol: node(devtools-bundle) + kind: test + tier: 2 + worker-type: t-linux-xlarge-source + worker: + docker-image: {in-tree: "lint"} + max-run-time: 1200 + artifacts: + - type: file + name: public/code-review/issues.json + path: /builds/worker/issues.json + run: + using: run-task + cache-dotcache: true + cwd: '{checkout}' + # Re-use rather than re-installing to avoid hitting/requiring + # nodejs servers for downloads + command: > + cp -r /build/node_modules_eslint node_modules && + cp -r /build/node_modules_eslint-plugin-mozilla/ tools/lint/eslint/eslint-plugin-mozilla/node_modules && + ln -s ../tools/lint/eslint/eslint-plugin-mozilla node_modules && + ln -s ../tools/lint/eslint/eslint-plugin-spidermonkey-js node_modules && + cd devtools/client/debugger && + yarn && + node bin/bundle.js && + cd ../../.. && + ./mach python taskcluster/scripts/misc/verify-devtools-bundle.py --output /builds/worker/issues.json + when: + files-changed: + - 'devtools/**' + +eslint-plugin-mozilla: + description: eslint-plugin-mozilla integration tests + platform: linux1804-64/opt + treeherder: + symbol: node(epm) + kind: test + tier: 1 + worker-type: t-linux-xlarge-source + worker: + docker-image: {in-tree: "lint"} + max-run-time: 1800 + run: + using: run-task + cache-dotcache: true + cwd: '{checkout}/tools/lint/eslint/eslint-plugin-mozilla' + command: > + cp -r /build/node_modules_eslint-plugin-mozilla node_modules && + npm run test + when: + files-changed: + - 'tools/lint/eslint/eslint-plugin-mozilla/**' diff --git a/taskcluster/ci/source-test/puppeteer.yml b/taskcluster/ci/source-test/puppeteer.yml new file mode 100644 index 0000000000..3bfd1a9645 --- /dev/null +++ b/taskcluster/ci/source-test/puppeteer.yml @@ -0,0 +1,52 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + platform: linux1804-64/opt + require-build: + by-project: + try: + linux1804-64/opt: build-linux64/opt + default: + linux1804-64/opt: build-linux64-shippable/opt + fetches: + build: + - target.tar.bz2 + toolchain: + - linux64-node + treeherder: + kind: test + tier: 1 + worker-type: t-linux-xlarge-source + worker: + docker-image: {in-tree: ubuntu1804-test} + max-run-time: 3600 + artifacts: + - type: file + name: public/remote/pup_errorsummary.json + path: /builds/worker/pup_errorsummary.json + optimization: + skip-unless-expanded: null + +puppeteer: + description: Puppeteer tests against Firefox CDP-based remote protocol + treeherder: + symbol: Pup(cdp) + run: # Bug 1651542: Use screenshot feature to warm-up the font cache before the actual test + using: run-task + command: > + cd $GECKO_PATH/ && + $MOZ_FETCHES_DIR/firefox/firefox --screenshot http://example.org && + ./mach puppeteer-test --ci -vv --binary $MOZ_FETCHES_DIR/firefox/firefox --cdp --headless --log-tbpl - --log-errorsummary /builds/worker/pup_errorsummary.json + +puppeteer-with-bidi: + description: Puppeteer tests against Firefox Webdriver BiDi remote protocol + treeherder: + symbol: Pup(wd) + run: # Bug 1651542: Use screenshot feature to warm-up the font cache before the actual test + using: run-task + command: > + cd $GECKO_PATH/ && + $MOZ_FETCHES_DIR/firefox/firefox --screenshot http://example.org && + ./mach puppeteer-test --ci -vv --binary $MOZ_FETCHES_DIR/firefox/firefox --headless --log-tbpl - --log-errorsummary /builds/worker/pup_errorsummary.json diff --git a/taskcluster/ci/source-test/python.yml b/taskcluster/ci/source-test/python.yml new file mode 100644 index 0000000000..3fd8b25b32 --- /dev/null +++ b/taskcluster/ci/source-test/python.yml @@ -0,0 +1,636 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + platform: linux1804-64/opt + always-target: + by-platform: + macosx.*: false + default: true + worker-type: + by-platform: + linux1804-64.*: t-linux-xlarge-source + macosx1015-64.*: t-osx-1015-r8 + windows11-64.*: win11-64-2009-source + worker: + by-platform: + linux1804-64.*: + docker-image: {in-tree: "lint"} + max-run-time: 3600 + macosx.*: + max-run-time: 3600 + env: + PATH: "/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin" + default: + max-run-time: 3600 + treeherder: + kind: test + tier: 1 + run: + using: mach + when: + files-changed: + - 'config/mozunit/**' + - 'python/mach_commands.py' + +firefox-ci: + description: taskcluster/gecko_taskgraph unit tests + always-target: false + python-version: [3] + treeherder: + symbol: ci + run: + using: python-test + subsuite: ci + when: + files-changed: + - '.taskcluster.yml' + - 'taskcluster/ci/**' + - 'taskcluster/**/*.py' + - 'tools/tryselect/selectors/auto.py' + +fog: + description: Python unit tests for Firefox on Glean + platform: + - linux1804-64/opt + - macosx1015-64/opt + - windows11-64/opt + python-version: [3] + treeherder: + symbol: fp + run: + using: python-test + subsuite: fog + when: + files-changed: + - 'toolkit/components/glean/**' + +mach: + description: python/mach unit tests + platform: + - linux1804-64/opt + - macosx1015-64/opt + - windows11-64/opt + python-version: [3] + treeherder: + symbol: mach + run: + using: python-test + subsuite: mach + when: + files-changed: + - 'python/mach/**' + - 'python/sites/**' + +marionette-harness: + description: testing/marionette/harness unit tests + platform: + - linux1804-64/opt + - windows11-64/opt + python-version: [3] + treeherder: + symbol: mnh + run: + using: python-test + subsuite: marionette-harness + when: + files-changed: + - 'testing/marionette/harness/**' + - 'testing/mozbase/mozlog/mozlog/**' + - 'testing/mozbase/mozlog/setup.py' + +mochitest-harness: + description: testing/mochitest unittests + platform: + - linux1804-64/opt + - linux1804-64/debug + - linux1804-64-asan/opt + always-target: false + require-build: + by-project: + try: + linux1804-64-asan/opt: build-linux64-asan/opt + linux1804-64/debug: build-linux64/debug + linux1804-64/opt: build-linux64/opt + default: + linux1804-64-asan/opt: build-linux64-asan/opt + linux1804-64/debug: build-linux64/debug + linux1804-64/opt: build-linux64-shippable/opt + treeherder: + symbol: py3(mch) + worker: + by-platform: + linux1804-64.*: + docker-image: {in-tree: "ubuntu1804-test"} + max-run-time: 3600 + run: + using: run-task + cwd: '{checkout}' + command: > + source /builds/worker/scripts/xvfb.sh && + start_xvfb '1600x1200x24' 0 && + export GECKO_BINARY_PATH=$MOZ_FETCHES_DIR/firefox/firefox && + export TEST_HARNESS_ROOT=$MOZ_FETCHES_DIR/tests && + ./mach python-test --subsuite mochitest + fetches: + build: + - target.tar.bz2 + - artifact: target.common.tests.tar.gz + dest: tests + - artifact: target.mochitest.tests.tar.gz + dest: tests + toolchain: + - linux64-fix-stacks + when: + files-changed: + - 'testing/mochitest/**' + - 'testing/mozbase/mozrunner/mozrunner/**' + - 'testing/mozbase/moztest/moztest/selftest/**' + - 'testing/mozharness/mozharness/base/log.py' + - 'testing/mozharness/mozharness/mozilla/structuredlog.py' + - 'testing/mozharness/mozharness/mozilla/testing/errors.py' + - 'testing/profiles/**' + + +mozbase: + description: testing/mozbase unit tests + platform: + - linux1804-64/opt + - macosx1015-64/opt + - windows11-64/opt + python-version: [3] + treeherder: + symbol: mb + run: + using: python-test + subsuite: mozbase + when: + files-changed: + - 'testing/mozbase/**' + +mozharness: + description: mozharness integration tests + treeherder: + symbol: py3(mh) + run: + using: run-task + cache-dotcache: true + cwd: '{checkout}/testing/mozharness' + command: > + /usr/local/bin/tox -e py311-hg6.4 + when: + files-changed: + - 'testing/mozharness/**' + +mozlint: + description: python/mozlint unit tests + platform: + - linux1804-64/opt + - macosx1015-64/opt + - windows11-64/opt + python-version: [3] + treeherder: + symbol: mozlint + tier: 2 + run: + using: python-test + subsuite: mozlint + dependencies: + clang-tidy: + by-platform: + linux1804-64/opt: toolchain-linux64-clang-tidy + macosx1015-64/opt: toolchain-macosx64-clang-tidy + windows11-64/opt: toolchain-win64-clang-tidy + fetches: + toolchain: + by-platform: + linux1804-64/opt: + - linux64-node + - linux64-rust + macosx1015-64/opt: + - macosx64-node + - macosx64-rust + windows11-64/opt: + - win64-node + - win64-rust + clang-tidy: + - artifact: clang-tidy.tar.zst + dest: clang-tools + when: + files-changed: + - 'python/mozlint/**' + - 'tools/lint/**' + +mozrelease: + description: python/mozrelease unit tests + python-version: [3] + treeherder: + symbol: release + run: + using: python-test + subsuite: mozrelease + when: + files-changed: + - 'python/mozrelease/**' + +mozterm: + description: python/mozterm unit tests + platform: + - linux1804-64/opt + - windows11-64/opt + python-version: [3] + treeherder: + symbol: term + run: + using: python-test + subsuite: mozterm + when: + files-changed: + - 'python/mozterm/**' + +mozversioncontrol: + description: python/mozversioncontrol unit tests + platform: + - linux1804-64/opt + - macosx1015-64/opt + - windows11-64/opt + python-version: [3] + treeherder: + symbol: vcs + run: + using: python-test + subsuite: mozversioncontrol + when: + files-changed: + - 'python/mozversioncontrol/**' + +raptor: + description: testing/raptor unit tests + platform: + - linux1804-64/opt + - macosx1015-64/opt + - windows11-64/opt + python-version: [3] + treeherder: + symbol: rap + run: + using: python-test + subsuite: raptor + when: + files-changed: + - 'testing/raptor/**' + +reftest-harness: + description: layout/tools/reftest unittests + platform: + - linux1804-64/opt + - linux1804-64/debug + - linux1804-64-asan/opt + require-build: + by-project: + try: + linux1804-64-asan/opt: build-linux64-asan/opt + linux1804-64/debug: build-linux64/debug + linux1804-64/opt: build-linux64/opt + default: + linux1804-64-asan/opt: build-linux64-asan/opt + linux1804-64/debug: build-linux64/debug + linux1804-64/opt: build-linux64-shippable/opt + always-target: false + treeherder: + symbol: py3(ref) + worker: + by-platform: + linux1804-64.*: + docker-image: {in-tree: "ubuntu1804-test"} + max-run-time: 3600 + run: + using: run-task + cwd: '{checkout}' + command: > + source /builds/worker/scripts/xvfb.sh && + start_xvfb '1600x1200x24' 0 && + export GECKO_BINARY_PATH=$MOZ_FETCHES_DIR/firefox/firefox && + export TEST_HARNESS_ROOT=$MOZ_FETCHES_DIR/tests && + ./mach python-test --subsuite reftest + fetches: + build: + - target.tar.bz2 + - artifact: target.common.tests.tar.gz + dest: tests + - artifact: target.reftest.tests.tar.gz + dest: tests + toolchain: + - linux64-fix-stacks + when: + files-changed: + - 'layout/tools/reftest/**' + - 'testing/mozbase/mozrunner/mozrunner/**' + - 'testing/mozbase/moztest/moztest/selftest/**' + - 'testing/mozharness/mozharness/base/log.py' + - 'testing/mozharness/mozharness/mozilla/structuredlog.py' + - 'testing/mozharness/mozharness/mozilla/testing/errors.py' + +taskgraph-tests: + description: taskcluster/gecko_taskgraph unit tests + python-version: [3] + treeherder: + symbol: tg + run: + using: python-test + subsuite: taskgraph + when: + files-changed: + - 'taskcluster/**/*.py' + - 'python/mach/**/*.py' + +tryselect: + description: tools/tryselect unit tests + platform: + - linux1804-64/opt + - windows11-64/opt + python-version: [3] + treeherder: + symbol: try + run: + using: python-test + subsuite: try + when: + files-changed: + - 'taskcluster/ci/config.yml' + - 'taskcluster/ci/test/**' + - 'taskcluster/gecko_taskgraph/transforms/**' + - 'tools/tryselect/**' + +mozbuild: + description: mozbuild unit tests + platform: + - linux1804-64/opt + - macosx1015-64/opt + - windows11-64/opt + python-version: [3] + treeherder: + symbol: mbu + run: + using: python-test + subsuite: mozbuild + fetches: + toolchain: + by-platform: + linux1804-64/opt: + - linux64-node + macosx1015-64/opt: + - macosx64-node + windows11-64/opt: + - win64-node + - win64-mozmake + when: + files-changed: + - '**/moz.configure' + - 'build/moz.configure/**' + - 'config/tests/**' + - 'dom/bindings/mozwebidlcodegen/**' + - 'modules/libpref/init/**' + - 'modules/libpref/test/**' + - 'python/mach/**' + - 'python/mozboot/**' + - 'python/mozbuild/**' + - 'python/mozterm/**' + - 'python/mozversioncontrol/**' + - 'testing/mozbase/**' + - 'testing/xpcshell/xpcshellcommandline.py' + +mozperftest: + description: mozperftest unit tests + platform: + - linux1804-64/opt + - macosx1015-64/opt + - windows11-64/opt + treeherder: + symbol: mpu + run: + mach: perftest-test + fetches: + toolchain: + by-platform: + linux1804-64/opt: + - linux64-node + macosx1015-64/opt: + - macosx64-node + windows11-64/opt: + - win64-node + when: + files-changed: + - 'testing/performance/**' + - 'python/mozperftest/**' + +fxms-schemas: + description: > + Ensure messaging-system schemas are up-to-date and run Experimenter + integration tests. + platform: + - linux1804-64/opt + treeherder: + symbol: py3(fxms) + require-build: + by-project: + try: + linux1804-64/opt: build-linux64/opt + default: + linux1804-64/opt: build-linux64/opt + fetches: + build: + - artifact: target.tar.bz2 + - artifact: target.common.tests.tar.gz + worker: + by-platform: + linux1804-64.*: + docker-image: {in-tree: "ubuntu1804-test"} + max-run-time: 3600 + run: + using: run-task + cwd: '{checkout}' + command: > + cd browser/components/asrouter/content-src/schemas && + env LD_LIBRARY_PATH=${MOZ_FETCHES_DIR}/firefox \ + ${MOZ_FETCHES_DIR}/bin/xpcshell \ + -g ${MOZ_FETCHES_DIR}/firefox \ + -a ${MOZ_FETCHES_DIR}/firefox/browser \ + extract-test-corpus.js + ../../../../../mach python -- make-schemas.py --check + when: + files-changed: + - 'browser/components/asrouter/content-src/schemas/extract-test-corpus.js' + - 'browser/components/asrouter/content-src/schemas/make-schemas.py' + - 'browser/components/asrouter/content-src/**/*.schema.json' + - 'browser/components/asrouter/modules/CFRMessageProvider.sys.mjs' + - 'browser/components/asrouter/modules/OnboardingMessageProvider.sys.mjs' + - 'browser/components/asrouter/modules/PanelTestProvider.sys.mjs' + +condprof: + description: testing/condprofile unit tests + platform: + - linux1804-64/opt + - macosx1015-64/opt + - windows11-64/opt + python-version: [3] + treeherder: + symbol: condprof + run: + using: python-test + subsuite: condprof + when: + files-changed: + - 'testing/condprofile/condprof**' + - 'testing/condprofile/setup.py' + +featuregates: + description: featuregates Python unit tests + platform: + - linux1804-64/opt + - windows11-64/opt + python-version: [3] + treeherder: + symbol: fg + run: + using: python-test + subsuite: featuregates + fetches: + toolchain: + by-platform: + linux1804-64/opt: + - linux64-node + windows11-64/opt: + - win64-node + when: + files-changed: + - 'toolkit/components/featuregates/**' + +skip-fails: + description: testing/skip-fails unit tests + always-target: false + python-version: [3] + treeherder: + symbol: sf + run: + using: python-test + subsuite: skip-fails + when: + files-changed: + - 'testing/skipfails.py' + - 'testing/test/**' + +talos: + description: testing/talos unit tests + platform: windows11-64/opt + python-version: [3] + treeherder: + symbol: tal + run: + using: python-test + subsuite: talos + when: + files-changed: + - 'testing/talos/**' + +telemetry-integration-tests: + description: pytest-based integration tests for Telemetry + always-target: false + platform: + - linux1804-64/opt + worker: + by-platform: + linux1804-64.*: + docker-image: {in-tree: "ubuntu1804-test"} + max-run-time: 3600 + require-build: + by-project: + try: + linux1804-64/opt: build-linux64/opt + default: + linux1804-64/opt: build-linux64-shippable/opt + treeherder: + symbol: tt(i) + tier: 3 + run-on-projects: [] + run: + using: run-task + cwd: '{checkout}' + command: > + source /builds/worker/scripts/xvfb.sh && + start_xvfb '1600x1200x24' 0 && + export GECKO_BINARY_PATH=$MOZ_FETCHES_DIR/firefox/firefox && + ./mach python-test --subsuite telemetry-integration-tests + fetches: + build: + - target.tar.bz2 + - artifact: target.common.tests.tar.gz + dest: tests + - artifact: target.reftest.tests.tar.gz + dest: tests + when: + files-changed: + - 'toolkit/components/telemetry/**' + +telemetry-python: + description: Python unit tests for Telemetry + platform: + - linux1804-64/opt + - macosx1015-64/opt + - windows11-64/opt + python-version: [3] + treeherder: + symbol: tp + run: + using: python-test + subsuite: telemetry-python + fetches: + toolchain: + by-platform: + linux1804-64/opt: + - linux64-node + macosx1015-64/opt: + - macosx64-node + windows11-64/opt: + - win64-node + when: + files-changed: + - 'toolkit/components/telemetry/**' + +webext: + description: WebExtensions python utilities unit tests + platform: + - linux1804-64/opt + python-version: [3] + treeherder: + symbol: webext-py + tier: 2 + run: + using: python-test + subsuite: webext-python + when: + files-changed: + - 'toolkit/components/extensions/webidl-api/**' + - 'toolkit/components/extensions/schemas/*.json' + - 'browser/components/extensions/schemas/*.json' + - 'mobile/android/components/extensions/schemas/*.json' + +xpcom: + description: xpcom unit tests + platform: + - linux1804-64/opt + python-version: [3] + treeherder: + symbol: xpcom + run: + using: python-test + subsuite: xpcom + when: + files-changed: + - 'third_party/python/ply/**' + - 'xpcom/components/*.py' + - 'xpcom/components/test/**' + - 'xpcom/ds/tools/**' + - 'xpcom/ds/test/**' + - 'xpcom/idl-parser/**' diff --git a/taskcluster/ci/source-test/shadow-scheduler.yml b/taskcluster/ci/source-test/shadow-scheduler.yml new file mode 100644 index 0000000000..97d1b1f30b --- /dev/null +++ b/taskcluster/ci/source-test/shadow-scheduler.yml @@ -0,0 +1,178 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + platform: gecko-decision/opt + worker-type: t-linux-xlarge-source + worker: + docker-image: {in-tree: "lint"} + max-run-time: 3600 + artifacts: + - type: file + name: public/shadow-scheduler/optimized-tasks.json + path: /builds/worker/optimized-tasks.json + env: + DECISION_TASK_ID: {task-reference: <decision>} + treeherder: + kind: other + tier: 3 + run-on-projects: ['autoland-only'] + run: + using: mach + mach: taskgraph optimized -v --json -p task-id=$DECISION_TASK_ID --output-file /builds/worker/optimized-tasks.json + sparse-profile: taskgraph + +relevant_tests: + description: Runs the relevant_tests optimization strategy instead of the default. + treeherder: + symbol: SS(relevant_tests) + index: + product: source + job-name: shadow-scheduler-relevant_tests + worker: + env: + TASKGRAPH_OPTIMIZE_STRATEGIES: gecko_taskgraph.optimize:experimental.relevant_tests + +bugbug_tasks_medium: + description: Runs the bugbug_tasks_medium optimization strategy instead of the default. + treeherder: + symbol: SS(bugbug_tasks_medium) + index: + product: source + job-name: shadow-scheduler-bugbug_tasks_medium + worker: + env: + TASKGRAPH_OPTIMIZE_STRATEGIES: gecko_taskgraph.optimize:experimental.bugbug_tasks_medium + +bugbug_tasks_high: + description: Runs the bugbug_tasks_high optimization strategy (with a high confidence threshold) instead of the default. + treeherder: + symbol: SS(bugbug_tasks_high) + index: + product: source + job-name: shadow-scheduler-bugbug_tasks_high + worker: + env: + TASKGRAPH_OPTIMIZE_STRATEGIES: gecko_taskgraph.optimize:experimental.bugbug_tasks_high + +bugbug_debug_disperse: + description: Runs the bugbug_debug_disperse optimization strategy instead of the default. + treeherder: + symbol: SS(bugbug_debug_disperse) + index: + product: source + job-name: shadow-scheduler-bugbug_debug_disperse + worker: + env: + TASKGRAPH_OPTIMIZE_STRATEGIES: gecko_taskgraph.optimize:experimental.bugbug_debug_disperse + +bugbug_disperse_low: + description: Runs the bugbug_disperse_low optimization strategy instead of the default. + treeherder: + symbol: SS(bugbug_disperse_low) + index: + product: source + job-name: shadow-scheduler-bugbug_disperse_low + worker: + env: + TASKGRAPH_OPTIMIZE_STRATEGIES: gecko_taskgraph.optimize:experimental.bugbug_disperse_low + +bugbug_disperse_medium: + description: Runs the bugbug_disperse_medium optimization strategy instead of the default. + treeherder: + symbol: SS(bugbug_disperse_med) + index: + product: source + job-name: shadow-scheduler-bugbug_disperse_medium + worker: + env: + TASKGRAPH_OPTIMIZE_STRATEGIES: gecko_taskgraph.optimize:experimental.bugbug_disperse_medium + +bugbug_disperse_reduced_medium: + description: Runs the bugbug_disperse_reduced_medium optimization strategy instead of the default. + treeherder: + symbol: SS(bugbug_di_r_med_noun) + index: + product: source + job-name: shadow-scheduler-bugbug_disperse_reduced_medium + worker: + env: + TASKGRAPH_OPTIMIZE_STRATEGIES: gecko_taskgraph.optimize:experimental.bugbug_disperse_reduced_medium + +bugbug_reduced_manifests_config_selection_low: + description: Runs the bugbug_reduced_manifests_config_selection_low optimization strategy instead of the default. + treeherder: + symbol: SS(bugbug_r_c_s_low) + index: + product: source + job-name: shadow-scheduler-bugbug_reduced_manifests_config_selection_low + worker: + env: + TASKGRAPH_OPTIMIZE_STRATEGIES: gecko_taskgraph.optimize:experimental.bugbug_reduced_manifests_config_selection_low + +bugbug_reduced_manifests_config_selection_medium: + description: Runs the bugbug_reduced_manifests_config_selection_medium optimization strategy instead of the default. + treeherder: + symbol: SS(bugbug_r_c_s_med) + index: + product: source + job-name: shadow-scheduler-bugbug_reduced_manifests_config_selection_medium + worker: + env: + TASKGRAPH_OPTIMIZE_STRATEGIES: gecko_taskgraph.optimize:experimental.bugbug_reduced_manifests_config_selection_medium + +bugbug_disperse_medium_no_unseen: + description: Runs the bugbug_disperse_medium_no_unseen optimization strategy instead of the default. + treeherder: + symbol: SS(bugbug_disp_med_noun) + index: + product: source + job-name: shadow-scheduler-bugbug_disperse_medium_no_unseen + worker: + env: + TASKGRAPH_OPTIMIZE_STRATEGIES: gecko_taskgraph.optimize:experimental.bugbug_disperse_medium_no_unseen + +bugbug_disperse_medium_only_one: + description: Runs the bugbug_disperse_medium_only_one optimization strategy instead of the default. + treeherder: + symbol: SS(bugbug_disp_med_one) + index: + product: source + job-name: shadow-scheduler-bugbug_disperse_medium_only_one + worker: + env: + TASKGRAPH_OPTIMIZE_STRATEGIES: gecko_taskgraph.optimize:experimental.bugbug_disperse_medium_only_one + +bugbug_disperse_high: + description: Runs the bugbug_disperse_high optimization strategy instead of the default. + treeherder: + symbol: SS(bugbug_disperse_high) + index: + product: source + job-name: shadow-scheduler-bugbug_disperse_high + worker: + env: + TASKGRAPH_OPTIMIZE_STRATEGIES: gecko_taskgraph.optimize:experimental.bugbug_disperse_high + +bugbug_reduced: + description: Runs the bugbug_reduced optimization strategy instead of the default. + treeherder: + symbol: SS(bugbug_reduced) + index: + product: source + job-name: shadow-scheduler-bugbug_reduced + worker: + env: + TASKGRAPH_OPTIMIZE_STRATEGIES: gecko_taskgraph.optimize:experimental.bugbug_reduced + +bugbug_reduced_high: + description: Runs the bugbug_reduced optimization strategy (with a low confidence threshold) instead of the default. + treeherder: + symbol: SS(bugbug_reduced_high) + index: + product: source + job-name: shadow-scheduler-bugbug_reduced_high + worker: + env: + TASKGRAPH_OPTIMIZE_STRATEGIES: gecko_taskgraph.optimize:experimental.bugbug_reduced_high diff --git a/taskcluster/ci/source-test/taskgraph.yml b/taskcluster/ci/source-test/taskgraph.yml new file mode 100644 index 0000000000..132d5e488c --- /dev/null +++ b/taskcluster/ci/source-test/taskgraph.yml @@ -0,0 +1,37 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +diff: + description: Generates diffs of CI changes + platform: linux1804-64/opt + worker-type: t-linux-xlarge-source + worker: + docker-image: {in-tree: "lint"} + max-run-time: 1800 + # Uncomment to upload logs of the generations as artifacts. + # env: + # XDG_CACHE_HOME: "/builds/worker/artifacts/cache" + artifacts: + - type: directory + name: public/taskgraph + path: /builds/worker/artifacts + attributes: + code-review: true + always-target: true + treeherder: + kind: test + platform: gecko-decision/opt + symbol: tgdiff + tier: 2 + run: + using: run-task + cwd: '{checkout}' + command: >- + mkdir -p /builds/worker/artifacts/diffs && + ./mach taskgraph target --fast -p "taskcluster/test/params" -o "/builds/worker/artifacts/diffs/diff.txt" --diff {base_rev} && + python taskcluster/scripts/misc/summarize-tgdiff.py /builds/worker/artifacts/diffs/ 20 + when: + files-changed: + - 'taskcluster/ci/**' + - 'taskcluster/**/*.py' diff --git a/taskcluster/ci/source-test/vendor.yml b/taskcluster/ci/source-test/vendor.yml new file mode 100644 index 0000000000..c6594c6f68 --- /dev/null +++ b/taskcluster/ci/source-test/vendor.yml @@ -0,0 +1,44 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + worker-type: t-linux-xlarge-source + attributes: + code-review: true + worker: + docker-image: {in-tree: static-analysis-build} + max-run-time: 1200 + artifacts: + - type: file + name: public/code-review/issues.json + path: /builds/worker/issues.json + treeherder: + kind: test + tier: 1 + platform: lint/opt + run: + using: run-task + +rust: + description: Rust vendoring validation + treeherder: + symbol: rust(vendor) + worker: + env: + MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE: system + run: + cwd: '{checkout}' + command: >- + ./mach vendor rust --issues-json /builds/worker/issues.json + fetches: + toolchain: + - linux64-cargo-vet + - linux64-rust + when: + files-changed: + - 'Cargo.lock' + - '**/Cargo.toml' + - 'python/mozbuild/mozbuild/vendor/vendor_rust.py' + - 'supply-chain/**' + - 'third_party/rust/**' diff --git a/taskcluster/ci/source-test/webcompat.yml b/taskcluster/ci/source-test/webcompat.yml new file mode 100644 index 0000000000..66ff7910a6 --- /dev/null +++ b/taskcluster/ci/source-test/webcompat.yml @@ -0,0 +1,37 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + platform: linux1804-64/opt + require-build: + by-project: + try: + linux1804-64/opt: build-linux64/opt + default: + linux1804-64/opt: build-linux64-shippable/opt + fetches: + build: + - target.tar.bz2 + toolchain: + - linux64-geckodriver + run-on-projects: [] + treeherder: + kind: test + worker-type: t-linux-xlarge-source + worker: + docker-image: {in-tree: ubuntu1804-test} + max-run-time: 1800 + optimization: + skip-unless-expanded: null + +interventions: + description: webcompat intervention tests + treeherder: + symbol: wc(I) + tier: 3 + python-version: [3] + run: + using: mach + # Need to start Xvfb if we remove --headless + mach: test-interventions --headless --binary $MOZ_FETCHES_DIR/firefox/firefox --webdriver-binary $MOZ_FETCHES_DIR/geckodriver --log-tbpl - diff --git a/taskcluster/ci/source-test/webidl.yml b/taskcluster/ci/source-test/webidl.yml new file mode 100644 index 0000000000..eec7a75e38 --- /dev/null +++ b/taskcluster/ci/source-test/webidl.yml @@ -0,0 +1,24 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +test: + description: WebIDL parser tests + platform: lint/opt + treeherder: + symbol: Wp + kind: test + tier: 1 + worker-type: t-linux-xlarge-source + worker: + docker-image: {in-tree: "lint"} + max-run-time: 1800 + run: + using: mach + mach: webidl-parser-test --verbose + when: + files-changed: + - 'dom/bindings/parser/runtests.py' + - 'dom/bindings/parser/WebIDL.py' + - 'dom/bindings/parser/tests/**' + - 'other-licenses/ply/**' diff --git a/taskcluster/ci/source-test/wpt-manifest.yml b/taskcluster/ci/source-test/wpt-manifest.yml new file mode 100644 index 0000000000..06b29b60f5 --- /dev/null +++ b/taskcluster/ci/source-test/wpt-manifest.yml @@ -0,0 +1,39 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + platform: linux64/opt + treeherder: + kind: test + tier: 2 + worker-type: t-linux-xlarge-source + worker: + docker-image: {in-tree: "lint"} + max-run-time: 1800 + +upload: + description: Generate and store the web-platform-tests manifest + treeherder: + symbol: Wm + index: + product: source + job-name: manifest-upload + rank: build_date + run: + using: run-task + cwd: '{checkout}' + command: > + ./mach wpt-manifest-update --config testing/web-platform/wptrunner.ini --no-download + && tar -cvzf manifests.tar.gz -C testing/web-platform/ meta/MANIFEST.json mozilla/meta/MANIFEST.json + worker: + artifacts: + - type: file + path: /builds/worker/checkouts/gecko/manifests.tar.gz + name: public/manifests.tar.gz + + max-run-time: 3600 + when: + files-changed: + - 'testing/web-platform/tests/**' + - 'testing/web-platform/mozilla/tests/**' diff --git a/taskcluster/ci/source-test/wpt-metadata.yml b/taskcluster/ci/source-test/wpt-metadata.yml new file mode 100644 index 0000000000..b2c54d62b9 --- /dev/null +++ b/taskcluster/ci/source-test/wpt-metadata.yml @@ -0,0 +1,58 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + platform: lint/opt + treeherder: + kind: test + tier: 2 + worker-type: t-linux-xlarge-source + worker: + docker-image: {in-tree: "lint"} + max-run-time: 1800 + +summary: + description: Summarize wpt metadata + treeherder: + symbol: wpt-meta + index: + product: source + job-name: source-wpt-metadata-summary + run: + using: mach + mach: wpt-metadata-summary --out-dir=/builds/worker/artifacts + worker: + artifacts: + - type: directory + path: /builds/worker/artifacts + name: public + max-run-time: 2700 + when: + files-changed: + - 'testing/web-platform/meta/**' + - 'testing/web-platform/mozilla/meta/**' + - 'testing/web-platform/metasummary.py' + + +fission-regression: + description: Summarize fission regressions in wpt + treeherder: + symbol: wpt-fis + index: + product: source + job-name: source-wpt-fission-regressions + run: + using: mach + mach: wpt-fission-regressions --all-json /builds/worker/artifacts/regressions.json --untriaged /builds/worker/artifacts/untriaged.txt + worker: + artifacts: + - type: directory + path: /builds/worker/artifacts + name: public + max-run-time: 2700 + when: + files-changed: + - 'testing/web-platform/meta/**' + - 'testing/web-platform/mozilla/meta/**' + - 'testing/web-platform/fissionregressions.py' diff --git a/taskcluster/ci/spidermonkey/kind.yml b/taskcluster/ci/spidermonkey/kind.yml new file mode 100644 index 0000000000..358ffeeb3f --- /dev/null +++ b/taskcluster/ci/spidermonkey/kind.yml @@ -0,0 +1,74 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + +transforms: + - gecko_taskgraph.transforms.spidermonkey:transforms + - gecko_taskgraph.transforms.build_attrs:transforms + - gecko_taskgraph.transforms.build_lints:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + attributes: + retrigger: true + treeherder: + kind: build + tier: 1 + index: + product: firefox + worker-type: b-linux-gcp + run: + using: spidermonkey + when: + files-changed: + # any when.files-changed specified below in a job will be + # appended to this list + - build/** + - config/** + - configure.py + - dom/bindings/** + - intl/icu/** + - js/moz.configure + - js/public/** + - js/src/** + - layout/tools/reftest/reftest/** + - Makefile.in + - media/webrtc/trunk/tools/gyp/** + - memory/** + - mfbt/** + - modules/fdlibm/** + - modules/zlib/src/** + - mozglue/** + - moz.build + - moz.configure + - nsprpub/** + - python/** + - taskcluster/moz.build + - taskcluster/ci/spidermonkey/kind.yml + - testing/mozbase/** + - testing/web-platform/** + - test.mozbuild + - toolkit/mozapps/installer/package-name.mk + - toolkit/mozapps/installer/upload-files.mk + fetches: + toolchain: + by-worker-type: + .*-b-win2022: + - win64-clang + - win64-rust + default: + - linux64-clang + - linux64-gcc + - linux64-rust + - linux64-dump_syms + - sysroot-x86_64-linux-gnu + +jobs-from: + - linux.yml + - windows.yml diff --git a/taskcluster/ci/spidermonkey/linux.yml b/taskcluster/ci/spidermonkey/linux.yml new file mode 100644 index 0000000000..cf7604bf5a --- /dev/null +++ b/taskcluster/ci/spidermonkey/linux.yml @@ -0,0 +1,606 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + worker: + max-run-time: 10800 + docker-image: {in-tree: debian12-amd64-build} + env: + MOZ_JS_UPLOAD_BINARIES_DEFAULT: "0" + run: + tooltool-downloads: public + +sm-package-linux64/opt: + description: "Spidermonkey source package and test" + index: + job-name: sm-package-linux64-opt + treeherder: + symbol: SM(pkg) + platform: linux64/opt + run: + using: spidermonkey-package + spidermonkey-variant: plain + fetches: + toolchain: + - linux64-clang + - linux64-cbindgen + - linux64-dump_syms + - linux64-breakpad-injector + - linux64-minidump-stackwalk + - linux64-llvm-symbolizer + - linux64-rust + - linux64-gcc + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + +sm-plain-linux64/debug: + description: "Spidermonkey Plain" + index: + job-name: sm-plain-linux64-debug + treeherder: + platform: linux64/debug + symbol: SM(p) + run: + spidermonkey-variant: plaindebug + fetches: + toolchain: + - linux64-clang + - linux64-cbindgen + - linux64-dump_syms + - linux64-breakpad-injector + - linux64-minidump-stackwalk + - linux64-llvm-symbolizer + - linux64-rust + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + +sm-plain-linux64/opt: + description: "Spidermonkey Plain" + index: + job-name: sm-plain-linux64-opt + treeherder: + symbol: SM(p) + platform: linux64/opt + run: + spidermonkey-variant: plain + fetches: + toolchain: + - linux64-clang + - linux64-cbindgen + - linux64-dump_syms + - linux64-breakpad-injector + - linux64-minidump-stackwalk + - linux64-llvm-symbolizer + - linux64-rust + - linux64-gcc + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + +sm-smoosh-linux64/debug: + description: "Spidermonkey SmooshMonkey" + index: + job-name: sm-smoosh-linux64-debug + treeherder: + platform: linux64/debug + symbol: SM(smoosh) + tier: 3 + run: + spidermonkey-variant: smooshdebug + run-on-projects: [] + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-dump_syms + - linux64-breakpad-injector + - linux64-minidump-stackwalk + - linux64-llvm-symbolizer + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + when: + files-changed: + - 'third_party/rust/jsparagus/**' + - 'js/src/frontend/Frontend2.cpp' + - 'js/src/frontend/Frontend2.h' + - 'js/src/frontend/SourceNotes.h' + - 'js/src/frontend/smoosh/**' + - 'js/public/Symbol.h' + - 'js/src/vm/AsyncFunctionResolveKind.h' + - 'js/src/vm/BytecodeFormatFlags.h' + - 'js/src/vm/CheckIsObjectKind.h' + - 'js/src/vm/FunctionFlags.h' + - 'js/src/vm/FunctionPrefixKind.h' + - 'js/src/vm/GeneratorAndAsyncKind.h' + - 'js/src/vm/GeneratorResumeKind.h' + - 'js/src/vm/Opcodes.h' + - 'js/src/vm/ThrowMsgKind.h' + - 'js/src/vm/StencilEnums.h' + +sm-smoosh-linux64/opt: + description: "Spidermonkey SmooshMonkey" + index: + job-name: sm-smoosh-linux64-opt + treeherder: + symbol: SM(smoosh) + platform: linux64/opt + tier: 3 + run: + spidermonkey-variant: smoosh + run-on-projects: [] + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-dump_syms + - linux64-breakpad-injector + - linux64-minidump-stackwalk + - linux64-llvm-symbolizer + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + when: + files-changed: + - 'third_party/rust/jsparagus/**' + - 'js/src/frontend/Frontend2.cpp' + - 'js/src/frontend/Frontend2.h' + - 'js/src/frontend/SourceNotes.h' + - 'js/src/frontend/smoosh/**' + - 'js/public/Symbol.h' + - 'js/src/vm/AsyncFunctionResolveKind.h' + - 'js/src/vm/BytecodeFormatFlags.h' + - 'js/src/vm/CheckIsObjectKind.h' + - 'js/src/vm/FunctionFlags.h' + - 'js/src/vm/FunctionPrefixKind.h' + - 'js/src/vm/GeneratorAndAsyncKind.h' + - 'js/src/vm/GeneratorResumeKind.h' + - 'js/src/vm/Opcodes.h' + - 'js/src/vm/ThrowMsgKind.h' + - 'js/src/vm/StencilEnums.h' + +sm-nojit-linux64/opt: + description: "Spidermonkey no JIT" + index: + job-name: sm-nojit-linux64-opt + treeherder: + symbol: SM(nojit) + platform: linux64/opt + run: + spidermonkey-variant: nojit + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-dump_syms + - linux64-breakpad-injector + - linux64-minidump-stackwalk + - linux64-llvm-symbolizer + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + +sm-pbl-linux64/opt: + description: "Spidermonkey PBL" + index: + job-name: sm-pbl-linux64-opt + treeherder: + symbol: SM(pbl) + platform: linux64/opt + tier: 2 + run: + spidermonkey-variant: pbl + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-dump_syms + - linux64-breakpad-injector + - linux64-minidump-stackwalk + - linux64-llvm-symbolizer + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + +sm-plain-linux32/debug: + description: "Spidermonkey Plain" + index: + job-name: sm-plain-linux32-debug + treeherder: + platform: linux32/debug + symbol: SM(p) + run: + spidermonkey-variant: plaindebug + spidermonkey-platform: linux + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-dump_syms + - linux64-breakpad-injector + - linux64-minidump-stackwalk + - linux64-llvm-symbolizer + - linux64-pkgconf + - sysroot-i686-linux-gnu + - sysroot-x86_64-linux-gnu + +sm-arm-sim-linux32/debug: + description: "Spidermonkey ARM sim" + index: + job-name: sm-arm-sim-linux32-debug + treeherder: + platform: linux32/debug + symbol: SM(arm) + run: + spidermonkey-variant: arm-sim + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-dump_syms + - linux64-breakpad-injector + - linux64-minidump-stackwalk + - linux64-llvm-symbolizer + - linux64-pkgconf + - sysroot-i686-linux-gnu + - sysroot-x86_64-linux-gnu + +sm-arm64-sim-linux64/debug: + description: "Spidermonkey ARM64 sim" + index: + job-name: sm-arm64-sim-linux64-debug + treeherder: + platform: linux64/debug + symbol: SM(arm64) + run: + spidermonkey-variant: arm64-sim + worker: + env: + MOZ_JS_UPLOAD_BINARIES_DEFAULT: "1" + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-dump_syms + - linux64-breakpad-injector + - linux64-minidump-stackwalk + - linux64-llvm-symbolizer + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + +sm-asan-linux64/opt: + description: "Spidermonkey Address Sanitizer" + index: + job-name: sm-linux64-asan-opt + treeherder: + symbol: SM(asan) + platform: linux64/opt + worker: + env: + MOZ_JS_UPLOAD_BINARIES_DEFAULT: "1" + run: + spidermonkey-variant: asan + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-dump_syms + - linux64-breakpad-injector + - linux64-minidump-stackwalk + - linux64-llvm-symbolizer + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + +sm-compacting-linux64/debug: + description: "Spidermonkey Compacting" + index: + job-name: sm-compacting-linux64-debug + treeherder: + platform: linux64/debug + symbol: SM(cgc) + run: + spidermonkey-variant: compacting + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-dump_syms + - linux64-breakpad-injector + - linux64-minidump-stackwalk + - linux64-llvm-symbolizer + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + +sm-linux64-wasi/opt: + description: "Spidermonkey WASI opt build" + index: + job-name: sm-linux64-wasi-opt + treeherder: + platform: linux64/opt + symbol: SM(wasi) + tier: 2 + run: + spidermonkey-variant: wasi + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-dump_syms + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + +# Like sm-linux64-wasi/opt but with Intl/ICU enabled. +sm-linux64-wasi-intl/opt: + description: "Spidermonkey WASI Intl opt build" + index: + job-name: sm-linux64-wasi-intl-opt + treeherder: + platform: linux64/opt + symbol: SM(wasi-intl) + tier: 2 + run: + spidermonkey-variant: wasi-intl + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-dump_syms + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + +sm-wasm-no-experimental-linux64/debug: + description: "Spidermonkey WebAssembly No experimental features" + index: + job-name: sm-wasm-no-experimental-linux64-debug + treeherder: + platform: linux64/debug + symbol: SM(wasm-no-experimental) + tier: 2 + run: + spidermonkey-variant: wasm-noexperimental + fetches: + toolchain: + - linux64-clang + - linux64-cbindgen + - linux64-dump_syms + - linux64-breakpad-injector + - linux64-minidump-stackwalk + - linux64-llvm-symbolizer + - linux64-rust + - linux64-gcc + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + +sm-linux64-wasi-pbl/opt: + description: "Spidermonkey WASI opt build with PBL" + index: + job-name: sm-pbl-linux64-wasi-opt + treeherder: + platform: linux64/opt + symbol: SM(wasi-pbl) + tier: 2 + run: + spidermonkey-variant: wasi-pbl + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-dump_syms + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + +sm-msan-linux64/opt: + description: "Spidermonkey Memory Sanitizer" + index: + job-name: sm-linux64-msan-opt + treeherder: + symbol: SM(msan) + platform: linux64/opt + tier: 3 + worker: + env: + MOZ_JS_UPLOAD_BINARIES_DEFAULT: "1" + run: + spidermonkey-variant: msan + # Disable by default by allow try pushes to explicitly request. + run-on-projects: [] + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-dump_syms + - linux64-breakpad-injector + - linux64-minidump-stackwalk + - linux64-llvm-symbolizer + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + +sm-tsan-linux64/opt: + description: "Spidermonkey Thread Sanitizer" + index: + job-name: sm-linux64-tsan-opt + treeherder: + symbol: SM(tsan) + platform: linux64/opt + worker: + env: + MOZ_JS_UPLOAD_BINARIES_DEFAULT: "1" + run: + spidermonkey-variant: tsan + fetches: + toolchain: + - linux64-clang + - linux64-gcc + - linux64-cbindgen + - linux64-dump_syms + - linux64-breakpad-injector + - linux64-minidump-stackwalk + - linux64-llvm-symbolizer + - linux64-rust-dev + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + +sm-rootanalysis-linux64/debug: + description: "Spidermonkey Root Analysis" + index: + job-name: sm-rootanalysis-linux64-debug + treeherder: + platform: linux64/debug + symbol: SM(r) + run: + spidermonkey-variant: rootanalysis + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-dump_syms + - linux64-breakpad-injector + - linux64-minidump-stackwalk + - linux64-llvm-symbolizer + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + +sm-nonunified-linux64/debug: + description: "Spidermonkey Non-Unified Debug" + index: + job-name: sm-nonunified-linux64-debug + treeherder: + platform: linux64/debug + symbol: SM(nu) + run: + spidermonkey-variant: nonunified + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-dump_syms + - linux64-breakpad-injector + - linux64-minidump-stackwalk + - linux64-llvm-symbolizer + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + +sm-fuzzing-linux64/opt: + description: "Spidermonkey Fuzzing" + index: + job-name: sm-linux64-fuzzing + treeherder: + platform: linux64/opt + symbol: SM(f) + worker: + env: + MOZ_JS_UPLOAD_BINARIES_DEFAULT: "1" + run: + spidermonkey-variant: fuzzing + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-dump_syms + - linux64-breakpad-injector + - linux64-minidump-stackwalk + - linux64-llvm-symbolizer + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + +sm-fuzzilli-linux64/debug: + description: "Spidermonkey Fuzzilli debug" + index: + job-name: sm-linux64-fuzzilli-debug + treeherder: + platform: linux64/debug + symbol: SM(fuzzilli) + worker: + env: + MOZ_JS_UPLOAD_BINARIES_DEFAULT: "1" + run: + spidermonkey-variant: fuzzilli + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + +sm-gdb-linux64/debug: + description: "Spidermonkey GDB Pretty-printers" + index: + job-name: sm-gdb-linux64 + worker: + docker-image: {in-tree: gdb-test} + treeherder: + platform: linux64/debug + tier: 2 + symbol: SM(gdb) + run: + spidermonkey-variant: gdb + fetches: + toolchain: + - linux64-clang + - linux64-gcc + - linux64-rust + - linux64-cbindgen + - linux64-dump_syms + - linux64-breakpad-injector + - linux64-minidump-stackwalk + - linux64-llvm-symbolizer + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + +sm-rt-linux64/debug: + description: "SpiderMonkey Records&Tuples" + index: + job-name: sm-rt-linux64-debug + treeherder: + platform: linux64/debug + symbol: SM(rt) + run: + spidermonkey-variant: rtdebug + fetches: + toolchain: + - linux64-clang + - linux64-cbindgen + - linux64-dump_syms + - linux64-breakpad-injector + - linux64-minidump-stackwalk + - linux64-llvm-symbolizer + - linux64-rust + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + +sm-temporal-linux64/debug: + description: "SpiderMonkey Temporal" + index: + job-name: sm-temporal-linux64-debug + treeherder: + platform: linux64/debug + symbol: SM(temporal) + run: + spidermonkey-variant: temporaldebug + fetches: + toolchain: + - linux64-clang + - linux64-cbindgen + - linux64-dump_syms + - linux64-breakpad-injector + - linux64-minidump-stackwalk + - linux64-llvm-symbolizer + - linux64-rust + - linux64-pkgconf + - sysroot-x86_64-linux-gnu diff --git a/taskcluster/ci/spidermonkey/windows.yml b/taskcluster/ci/spidermonkey/windows.yml new file mode 100644 index 0000000000..2fa90deb8e --- /dev/null +++ b/taskcluster/ci/spidermonkey/windows.yml @@ -0,0 +1,124 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + worker-type: b-win2022 + worker: + max-run-time: 10800 + run: + tooltool-downloads: public + +sm-plain-win64/debug: + description: "Spidermonkey Plain win64 debug" + index: + job-name: sm-plain-win64-debug + treeherder: + platform: windows2012-64/debug + symbol: SM(p) + run: + spidermonkey-variant: plaindebug + spidermonkey-platform: win64 + fetches: + toolchain: + - win64-cbindgen + - win64-clang + - win64-rust + - win64-mozmake + - vs + +sm-plain-win32/debug: + description: "Spidermonkey Plain win32 debug" + index: + job-name: sm-plain-win32-debug + treeherder: + platform: windows2012-32/debug + symbol: SM(p) + tier: 2 + run: + spidermonkey-variant: plaindebug + spidermonkey-platform: win32 + run-on-projects: ['mozilla-central'] + fetches: + toolchain: + - win64-cbindgen + - win64-clang + - win64-rust + - win64-mozmake + - vs + +sm-plain-win64/opt: + description: "Spidermonkey Plain win64 opt" + index: + job-name: sm-plain-win64-opt + treeherder: + platform: windows2012-64/opt + symbol: SM(p) + run: + spidermonkey-variant: plain + spidermonkey-platform: win64 + fetches: + toolchain: + - win64-cbindgen + - win64-clang + - win64-rust + - win64-mozmake + - vs + +sm-plain-win32/opt: + description: "Spidermonkey Plain win32 opt" + index: + job-name: sm-plain-win32-opt + treeherder: + platform: windows2012-32/opt + symbol: SM(p) + tier: 2 + run: + spidermonkey-variant: plain + spidermonkey-platform: win32 + run-on-projects: ['mozilla-central'] + fetches: + toolchain: + - win64-cbindgen + - win64-clang + - win64-rust + - win64-mozmake + - vs + +sm-compacting-win64/debug: + description: "Spidermonkey Compacting win64 debug" + index: + job-name: sm-compacting-win64-debug + treeherder: + platform: windows2012-64/debug + symbol: SM(cgc) + run: + spidermonkey-variant: compacting + spidermonkey-platform: win64 + fetches: + toolchain: + - win64-cbindgen + - win64-clang + - win64-rust + - win64-mozmake + - vs + +sm-compacting-win32/debug: + description: "Spidermonkey Compacting win32 debug" + index: + job-name: sm-compacting-win32-debug + treeherder: + platform: windows2012-32/debug + symbol: SM(cgc) + tier: 2 + run: + spidermonkey-variant: compacting + spidermonkey-platform: win32 + run-on-projects: [] + fetches: + toolchain: + - win64-cbindgen + - win64-clang + - win64-rust + - win64-mozmake + - vs diff --git a/taskcluster/ci/startup-test/kind.yml b/taskcluster/ci/startup-test/kind.yml new file mode 100644 index 0000000000..bc62e7e764 --- /dev/null +++ b/taskcluster/ci/startup-test/kind.yml @@ -0,0 +1,129 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + # We want to test the signed version of a build, to make sure + # any startup problems or crashes caused by signing are caught + # This means we depend on a different kind depending on the platform + # non-system python + - toolchain + # linux + - build-signing + # mac + - repackage + # windows + - repackage-signing + +transforms: + - gecko_taskgraph.transforms.startup_test:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + name: startup-test + description: Check whether or not a product crashes on startup + run-on-projects: ['mozilla-central'] + worker: + max-run-time: 3600 + run: + sparse-profile: startup-test + attributes: + build_type: opt + treeherder: + symbol: SUT + kind: test + tier: 1 + use-system-python: false + +jobs: + linux32: + dependencies: + build-signing: build-signing-linux-shippable/opt + run: + using: run-task + cwd: "{checkout}" + extra-config: + upstream_kind: build-signing + upstream_artifact: target.tar.bz2 + binary: firefox + worker-type: b-linux-gcp + worker: + docker-image: {in-tree: ubuntu1804-test} + shipping-product: firefox + attributes: + build_platform: linux-shippable + treeherder: + platform: linux-shippable/opt + + linux64: + dependencies: + build-signing: build-signing-linux64-shippable/opt + run: + using: run-task + cwd: "{checkout}" + extra-config: + upstream_kind: build-signing + upstream_artifact: target.tar.bz2 + binary: firefox + worker-type: b-linux-gcp + worker: + docker-image: {in-tree: ubuntu1804-test} + shipping-product: firefox + attributes: + build_platform: linux64-shippable + treeherder: + platform: linux64-shippable/opt + + macosx64: + dependencies: + repackage: repackage-macosx64-shippable/opt + run: + using: mach + python-version: 3 + extra-config: + upstream_kind: repackage + upstream_artifact: target.dmg + binary: Contents/MacOS/firefox + worker-type: t-osx-1015-r8 + shipping-product: firefox + attributes: + build_platform: macosx64-shippable + treeherder: + platform: macosx64-shippable/opt + + win32: + dependencies: + repackage-signing: repackage-signing-win32-shippable/opt + run: + using: mach + python-version: 3 + extra-config: + upstream_kind: repackage-signing + upstream_artifact: target.installer.exe + binary: core/firefox.exe + worker-type: win11-64-2009-source + shipping-product: firefox + attributes: + build_platform: win32-shippable + treeherder: + platform: windows2012-32-shippable/opt + + win64: + dependencies: + repackage-signing: repackage-signing-win64-shippable/opt + run: + using: mach + python-version: 3 + extra-config: + upstream_kind: repackage-signing + upstream_artifact: target.installer.exe + binary: core/firefox.exe + worker-type: win11-64-2009-source + shipping-product: firefox + attributes: + build_platform: win64-shippable + treeherder: + platform: windows2012-64-shippable/opt diff --git a/taskcluster/ci/static-analysis-autotest/kind.yml b/taskcluster/ci/static-analysis-autotest/kind.yml new file mode 100644 index 0000000000..6a01325598 --- /dev/null +++ b/taskcluster/ci/static-analysis-autotest/kind.yml @@ -0,0 +1,101 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + +transforms: + - gecko_taskgraph.transforms.build_attrs:transforms + - gecko_taskgraph.transforms.build_lints:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + attributes: + retrigger: true + index: + product: firefox + worker: + skip-artifacts: true + max-run-time: 3600 + env: + PERFHERDER_EXTRA_OPTIONS: static-analysis-autotest + use-system-python: false + run-on-projects: ['mozilla-central'] + run: + using: mozharness + actions: [static-analysis-autotest] + script: mozharness/scripts/fx_desktop_build.py + treeherder: + symbol: Sa + kind: build + tier: 1 + +jobs: + linux64-st-autotest/debug: + description: "Linux64 Debug Static Analysis Autotest" + index: + job-name: linux64-st-autotest-debug + treeherder: + platform: linux64/debug + worker-type: t-linux-large + worker: + docker-image: {in-tree: static-analysis-build} + env: + # clang-tidy needs a recent libstdc++, which can be found in the clang + # toolchain. + LD_LIBRARY_PATH: /builds/worker/checkouts/gecko/clang/lib + PERFHERDER_EXTRA_OPTIONS: static-analysis-autotest + run: + config: + - builds/releng_base_firefox.py + - builds/releng_sub_linux_configs/64_stat_and_debug.py + tooltool-downloads: public + keep-artifacts: false + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-clang-tidy + - linux64-rust + - linux64-sccache + - linux64-cbindgen + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + + win64-st-autotest/debug: + description: "Win64 Debug Static Analysis Autotest" + index: + job-name: win64-st-autotest-debug + treeherder: + platform: windows2012-64/debug + tier: 2 + worker-type: b-win2022 + run: + config: + - builds/releng_base_firefox.py + - builds/taskcluster_base_windows.py + - builds/taskcluster_base_win64.py + - builds/taskcluster_sub_win64/debug.py + extra-config: + mozconfig_variant: debug + use-sccache: false + fetches: + toolchain: + - win64-clang + - win64-rust + - win64-cbindgen + - win64-clang-tidy + - win64-nasm + - win64-node + - win64-dump_syms + - win64-winchecksec + - vs + - windows-rs + - sysroot-wasm32-wasi diff --git a/taskcluster/ci/system-symbols-reprocess/kind.yml b/taskcluster/ci/system-symbols-reprocess/kind.yml new file mode 100644 index 0000000000..5b81817188 --- /dev/null +++ b/taskcluster/ci/system-symbols-reprocess/kind.yml @@ -0,0 +1,46 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +# we need that to apply grouping only on jobs that have "build_platform", so we +# dont fail for the "fetch" kind that does is a dependency but does not have it +only-for-attributes: + - build_platform + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.reprocess_symbols + - gecko_taskgraph.transforms.job + - gecko_taskgraph.transforms.task + +kind-dependencies: + - system-symbols + - system-symbols-upload + - fetch + +jobs: + system-symbols-reprocess: + from-deps: + kinds: ["system-symbols", "system-symbols-upload"] + group-by: platform + description: Reprocess Symbols on Crash-Stats + attributes: + cron: true + worker-type: b-linux-gcp + worker: + docker-image: {in-tree: system-symbols-linux-scraper} + max-run-time: 7200 + env: + # {level} gets replaced in the reprocess_symbols transform + CRASHSTATS_SECRET: "project/releng/gecko/build/level-{level}/gecko-symbol-reprocess" + DUMP_SYMS: "/bin/false" + run: + using: run-task + command: {artifact-reference: "${MOZ_FETCHES_DIR}/symbol-scrapers/reprocess.sh <system-symbols/public/build/target.crashreporter-symbols.zip>"} + fetches: + fetch: + - symbol-scrapers + scopes: + - secrets:get:project/releng/gecko/build/level-{level}/gecko-symbol-reprocess diff --git a/taskcluster/ci/system-symbols-upload/kind.yml b/taskcluster/ci/system-symbols-upload/kind.yml new file mode 100644 index 0000000000..dd9462a84b --- /dev/null +++ b/taskcluster/ci/system-symbols-upload/kind.yml @@ -0,0 +1,34 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.upload_symbols + - gecko_taskgraph.transforms.job + - gecko_taskgraph.transforms.task + +kind-dependencies: + - system-symbols + +jobs: + system-symbols-upload: + description: Upload Symbols + from-deps: {} + attributes: + cron: true + worker-type: b-linux-gcp + worker: + docker-image: {in-tree: "lint"} + max-run-time: 1200 + env: + # {level} gets replaced in the upload_symbols transform + SYMBOL_SECRET: "project/releng/gecko/build/level-{level}/gecko-symbol-upload" + run: + using: mach + mach: {artifact-reference: "python toolkit/crashreporter/tools/upload_symbols.py <system-symbols/public/build/target.crashreporter-symbols.zip> --ignore-missing"} + sparse-profile: upload-symbols + scopes: + - secrets:get:project/releng/gecko/build/level-{level}/gecko-symbol-upload diff --git a/taskcluster/ci/system-symbols/kind.yml b/taskcluster/ci/system-symbols/kind.yml new file mode 100644 index 0000000000..0090454a68 --- /dev/null +++ b/taskcluster/ci/system-symbols/kind.yml @@ -0,0 +1,320 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + - fetch + +transforms: + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + attributes: + cron: true + # This enables uploading symbols. + enable-full-crashsymbols: true + fetches: + toolchain: + - linux64-dump_syms + treeherder: + platform: symbols/opt + kind: other + tier: 2 + worker-type: b-linux-gcp + worker: + env: + MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE: system + +jobs: + mac: + description: Extract macOS system symbols found in crashreports + attributes: + build_platform: macos + index: + product: system-symbols + job-name: mac + type: generic + worker: + env: + PROCESSED_PACKAGES_INDEX: gecko.v2.mozilla-central.latest.system-symbols.mac + PROCESSED_PACKAGES_PATH: public/build/processed-packages.gz + artifacts: + - name: public/build + type: directory + path: /builds/worker/artifacts/ + docker-image: {in-tree: system-symbols-mac} + max-run-time: 28800 + run: + using: run-task + command: >- + ./run.sh + treeherder: + symbol: system-symbols-mac + fetches: + toolchain: + - linux64-libdmg + win: + description: Extract windows system symbols found in crashreports + attributes: + build_platform: windows + index: + product: system-symbols + job-name: win + type: generic + worker: + artifacts: + - name: public/build + type: directory + path: /builds/worker/artifacts/ + docker-image: {in-tree: system-symbols-win} + max-run-time: 3600 + run: + using: run-task + command: >- + ./run.sh + treeherder: + symbol: system-symbols-win + archlinux: + description: Extract ArchLinux system symbols found in crashreports + attributes: + build_platform: archlinux + index: + product: system-symbols + job-name: archlinux + type: generic + worker: + artifacts: + - name: public/build + type: directory + path: /builds/worker/artifacts/ + docker-image: {in-tree: system-symbols-linux-scraper} + max-run-time: 14400 + run: + using: run-task + command: >- + ./run.sh arch + treeherder: + symbol: sys-symbols-archlinux + fetches: + fetch: + - symbol-scrapers + debian: + description: Extract Debian system symbols found in crashreports + attributes: + build_platform: debian + index: + product: system-symbols + job-name: debian + type: generic + worker: + artifacts: + - name: public/build + type: directory + path: /builds/worker/artifacts/ + docker-image: {in-tree: system-symbols-linux-scraper} + max-run-time: 14400 + run: + using: run-task + command: >- + ./run.sh debian + treeherder: + symbol: sys-symbols-debian + fetches: + fetch: + - symbol-scrapers + firefox-snap: + description: Extract Firefox Snap symbols found in crashreports + attributes: + build_platform: firefox-snap + index: + product: system-symbols + job-name: firefox-snap + type: generic + worker: + artifacts: + - name: public/build + type: directory + path: /builds/worker/artifacts/ + docker-image: {in-tree: system-symbols-linux-scraper} + max-run-time: 14400 + run: + using: run-task + command: >- + ./run.sh firefox-snap + treeherder: + symbol: firefox-symbols-snap + fetches: + fetch: + - symbol-scrapers + flatpak: + description: Extract Firefox Flatpak symbols found in crashreports + attributes: + build_platform: firefox-flatpak + index: + product: system-symbols + job-name: firefox-flatpak + type: generic + worker: + artifacts: + - name: public/build + type: directory + path: /builds/worker/artifacts/ + docker-image: {in-tree: system-symbols-linux-scraper} + max-run-time: 14400 + run: + using: run-task + command: >- + ./run.sh firefox-flatpak + treeherder: + symbol: firefox-symbols-fltpk + fetches: + fetch: + - symbol-scrapers + gnome-sdk-snap: + description: Extract GNOME SDK Snap symbols found in crashreports + attributes: + build_platform: gnome-sdk-snap + index: + product: system-symbols + job-name: gnome-sdk-snap + type: generic + worker: + artifacts: + - name: public/build + type: directory + path: /builds/worker/artifacts/ + docker-image: {in-tree: system-symbols-linux-scraper} + max-run-time: 14400 + run: + using: run-task + command: >- + ./run.sh gnome-sdk-snap + treeherder: + symbol: gnome-sdk-symbols-snap + fetches: + fetch: + - symbol-scrapers + fedora: + description: Extract Fedora system symbols found in crashreports + attributes: + build_platform: fedora + index: + product: system-symbols + job-name: fedora + type: generic + worker: + artifacts: + - name: public/build + type: directory + path: /builds/worker/artifacts/ + docker-image: {in-tree: system-symbols-linux-scraper} + max-run-time: 14400 + run: + using: run-task + command: >- + ./run.sh fedora + treeherder: + symbol: sys-symbols-fedora + fetches: + fetch: + - symbol-scrapers + opensuse: + description: Extract OpenSUSE system symbols found in crashreports + attributes: + build_platform: opensuse + index: + product: system-symbols + job-name: opensuse + type: generic + worker: + artifacts: + - name: public/build + type: directory + path: /builds/worker/artifacts/ + docker-image: {in-tree: system-symbols-linux-scraper} + max-run-time: 14400 + run: + using: run-task + command: >- + ./run.sh opensuse + treeherder: + symbol: sys-symbols-opensuse + fetches: + fetch: + - symbol-scrapers + ubuntu: + description: Extract Ubuntu system symbols found in crashreports + attributes: + build_platform: ubuntu + index: + product: system-symbols + job-name: ubuntu + type: generic + worker: + artifacts: + - name: public/build + type: directory + path: /builds/worker/artifacts/ + docker-image: {in-tree: system-symbols-linux-scraper} + max-run-time: 14400 + run: + using: run-task + command: >- + ./run.sh ubuntu + treeherder: + symbol: sys-symbols-ubuntu + fetches: + fetch: + - symbol-scrapers + win-gfx: + description: Extract symbols from closed-source Windows graphics drivers + attributes: + build_platform: windows-graphics + index: + product: system-symbols + job-name: win-gfx + type: generic + worker: + artifacts: + - name: public/build + type: directory + path: /builds/worker/artifacts/ + docker-image: {in-tree: system-symbols-win-gfx} + max-run-time: 14400 + run: + using: run-task + command: >- + ./run.sh + treeherder: + symbol: sys-symbols-win-gfx + fetches: + fetch: + - symbol-scrapers + alpine: + description: Extract Alpine Linux system symbols found in crashreports + attributes: + build_platform: alpine + index: + product: system-symbols + job-name: alpine + type: generic + worker: + artifacts: + - name: public/build + type: directory + path: /builds/worker/artifacts/ + docker-image: {in-tree: system-symbols-linux-scraper} + max-run-time: 14400 + run: + using: run-task + command: >- + ./run.sh alpine + treeherder: + symbol: sys-symbols-alpine + fetches: + fetch: + - symbol-scrapers diff --git a/taskcluster/ci/test/awsy.yml b/taskcluster/ci/test/awsy.yml new file mode 100644 index 0000000000..c3cafe7e9a --- /dev/null +++ b/taskcluster/ci/test/awsy.yml @@ -0,0 +1,75 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + suite: awsy + max-run-time: 7200 + instance-size: xlarge + virtualization: + by-test-platform: + windows.*(?:-shippable)?-qr/.*: virtual-with-gpu + default: virtual + allow-software-gl-layers: false + mozharness: + script: awsy_script.py + config: + by-test-platform: + windows.*: + - awsy/taskcluster_windows_config.py + macosx.*/opt: + - awsy/macosx_config.py + default: + - awsy/linux_config.py + tier: default + test-manifest-loader: null # don't load tests in the taskgraph + + +awsy: + description: Are we slim yet - tp5 pageset + treeherder-symbol: SY(sy) + run-on-projects: [] + +awsy-tp6: + description: Are we slim yet - tp6 pageset + treeherder-symbol: SY(sy-tp6) + run-on-projects: + by-test-platform: + .*-devedition/.*: [] # don't run on devedition + windows.*-32.*/opt: [] + (linux|windows|mac)(?!.*shippable).*/opt: [] + default: [trunk] + mozharness: + extra-options: + - --tp6 + +awsy-dmd: + description: Are we slim yet - dmd enabled + treeherder-symbol: SY(sy-d) + run-on-projects: [] + mozharness: + extra-options: + - --dmd + +awsy-base: + description: Are we slim yet - about:blank base case + treeherder-symbol: SY(ab) + run-on-projects: + by-test-platform: + .*-devedition/.*: [] # don't run on devedition. + windows.*-32.*/opt: [] + (linux|windows|mac)(?!.*shippable).*/opt: [] + default: [trunk] + tier: default + mozharness: + extra-options: + - --base + +awsy-base-dmd: + description: Are we slim yet - about:blank base case - dmd enabled + treeherder-symbol: SY(ab-d) + run-on-projects: [] + mozharness: + extra-options: + - --base + - --dmd diff --git a/taskcluster/ci/test/browsertime-desktop.yml b/taskcluster/ci/test/browsertime-desktop.yml new file mode 100644 index 0000000000..b1422e1b2f --- /dev/null +++ b/taskcluster/ci/test/browsertime-desktop.yml @@ -0,0 +1,918 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + max-run-time: + by-test-platform: + .*-qr/.*: 2400 + default: 1800 + suite: raptor + run-on-projects: + by-test-platform: + linux.*shippable[^-qr].*: [mozilla-central] + default: [] + limit-platforms: + by-app: + chrome: + - .*shippable.* + chromium: + - .*shippable.* + safari: + - .*macos.*shippable.* + custom-car: + - .*64.*shippable.* + default: [] + test-manifest-loader: null # don't load tests in the taskgraph + tier: 3 + virtualization: hardware + mozharness: + script: raptor_script.py + config: + by-test-platform: + macosx.*: + - raptor/mac_config.py + windows.*: + - raptor/windows_config.py + default: + - raptor/linux_config.py + extra-options: + - --conditioned-profile=settled + fetches: + toolchain: + by-app: + custom-car: + by-test-platform: + # this satisfied taskgraph for now, but once mac/win is implemented + # then linux will be the default + linux.*: + - linux64-custom-car + - linux64-minidump-stackwalk + - linux64-fix-stacks + windows10-64.*: + - win64-custom-car + - win64-minidump-stackwalk + - win64-fix-stacks + macosx1015.*: + - macosx64-custom-car + - macosx64-minidump-stackwalk + - macosx64-fix-stacks + macosx1400.*: + - macosx-arm64-custom-car + - macosx64-aarch64-minidump-stackwalk + - macosx64-aarch64-fix-stacks + default: [] + default: + by-test-platform: + windows.*-32.*.: + - win32-minidump-stackwalk + - win32-fix-stacks + windows10-64.*: + - win64-minidump-stackwalk + - win64-fix-stacks + macos.*: + - macosx64-minidump-stackwalk + - macosx64-fix-stacks + default: + - linux64-minidump-stackwalk + - linux64-fix-stacks + +browsertime-tp6: + <<: &tp6-defaults + description: Raptor (browsertime) tp6 page-load tests + limit-platforms: + by-app: + chrome: + - .*shippable.* + chromium: + - .*shippable.* + safari: + - .*macos.*shippable.* + custom-car: + - .*64.*shippable.* + default: [] + max-run-time: + by-subtest: + imgur: 4800 + default: 4000 + mozharness: + extra-options: + by-test-platform: + windows10-64.*shippable.*-qr.*: + - --chimera + - --browsertime-no-ffwindowrecorder + - --conditioned-profile=settled + - --extra-profiler-run + default: + - --chimera + - --conditioned-profile=settled + - --extra-profiler-run + run-on-projects: + by-subtest: + netflix: + by-app: + firefox: + by-test-platform: + windows.*-32.*: [] + (macosx1015|linux|windows10-64).*shippable-qr.*: [trunk] + default: [] + default: [] + default: + by-app: + firefox: + by-test-platform: + windows.*-32.*: [] + .*64(?!.*nightlyasrelease).*shippable-qr/.*: [trunk] + default: [] + default: [] + treeherder-symbol: Btime(tp6) + raptor: + apps: [firefox, chrome] + test: tp6 + run-visual-metrics: true + subtests: + - buzzfeed + - ebay + - espn + - expedia + - [facebook, fb] + - [google-docs, gdocs] + - [google-mail, gmail] + - [google-search, gsearch] + - imdb + - imgur + - linkedin + - microsoft + - netflix + - nytimes + - office + - outlook + - paypal + - pinterest + - reddit + - tumblr + - twitch + - wikia + - youtube + tier: + by-app: + firefox: 2 + default: 3 + +browsertime-responsiveness: + <<: *tp6-defaults + raptor: + apps: [firefox, chrome] + test: tp6 + run-visual-metrics: true + subtests: + - cnn-nav + - [facebook-nav, fbnav] + - [reddit-billgates-ama, rdt-ama] + - [reddit-billgates-post-1, rdt-post-1] + - [reddit-billgates-post-2, rdt-post-2] + mozharness: + extra-options: + by-test-platform: + windows10-.*: + - --cold + - --browsertime-no-ffwindowrecorder + - --conditioned-profile=settled + - --extra-profiler-run + default: + - --cold + - --conditioned-profile=settled + - --extra-profiler-run + run-on-projects: + by-app: + firefox: + by-test-platform: + windows.*-32.*: [] + .*64(?!.*nightlyasrelease).*shippable-qr/.*: [trunk] + default: [] + default: [] + tier: + by-app: + firefox: 2 + default: 3 + +browsertime-tp6-essential: + <<: *tp6-defaults + <<: &tp6-essential-defaults + mozharness: + extra-options: + by-test-platform: + windows10-64.*shippable.*-qr.*: + - --chimera + - --browsertime-no-ffwindowrecorder + - --conditioned-profile=settled + - --collect-perfstats + - --extra-profiler-run + default: + - --chimera + - --conditioned-profile=settled + - --extra-profiler-run + raptor: + apps: [firefox, chrome, custom-car] + test: tp6 + run-visual-metrics: + by-test-platform: + macosx1400.*shippable.*: false + # Bug 1845014 Resolve osx 1300 vismet permafails + default: true + subtests: + - amazon + - [bing-search, bing] + - cnn + - fandom + - [google-slides, gslides] + - instagram + - twitter + - wikipedia + - yahoo-mail + run-on-projects: + by-app: + firefox: + by-test-platform: + windows.*-32.*: [] + macosx1100.*shippable.*: [mozilla-central] + .*64(?!.*nightlyasrelease).*shippable-qr/.*: [trunk] + default: [] + default: [] + tier: + by-test-platform: + linux1804-64-clang-trunk-qr/opt: 2 + default: + by-app: + firefox: 1 + default: 3 + +browsertime-tp6-bytecode: + <<: *tp6-defaults + <<: *tp6-essential-defaults + raptor: + apps: [firefox] + test: tp6 + run-visual-metrics: true + subtests: + - amazon + - [bing-search, bing] + - cnn + - fandom + - [google-slides, gslides] + - instagram + - twitter + - wikipedia + - yahoo-mail + run-on-projects: + by-app: + firefox: + by-test-platform: + windows.*-32.*: [] + macosx1100.*shippable.*: [mozilla-central] + .*64(?!.*nightlyasrelease).*shippable-qr/.*: [trunk] + default: [] + default: [] + mozharness: + extra-options: + by-test-platform: + windows10-64.*shippable.*-qr.*: + - --chimera + - --browsertime + - --browsertime-no-ffwindowrecorder + - --conditioned-profile=settled + - --test-bytecode-cache + - --extra-profiler-run + default: + - --chimera + - --browsertime + - --conditioned-profile=settled + - --test-bytecode-cache + - --extra-profiler-run + tier: + by-app: + firefox: 2 + default: 3 + treeherder-symbol: Btime-cache(tp6) + +browsertime-benchmark: + description: Raptor (browsertime) Benchmark tests + raptor: + apps: [firefox, chrome, safari, custom-car] + subtests: + by-test-platform: + macosx1400.*shippable.*: + - [speedometer, sp] + - [speedometer3, sp3] + default: + by-app: + firefox: + - ares6 + - [assorted-dom, dom] + - [jetstream2, js2] + - [matrix-react-bench, mrb] + - [motionmark-animometer, mm-a] + - [motionmark-animometer-ramp, mm-ar] + - [motionmark-htmlsuite-ramp, mm-hr] + - [motionmark-htmlsuite, mm-h] + - [speedometer, sp] + - [speedometer3, sp3] + - [stylebench, sb] + - [sunspider, ss] + - [twitch-animation, tw-a] + - [unity-webgl, ugl] + - [webaudio, wa] + safari: + - ares6 + - [assorted-dom, dom] + - [jetstream2, js2] + # - [matrix-react-bench, mrb] Perma fails on osx 10.15.x machines (Bug 1807754) + - [motionmark-animometer, mm-a] + - [motionmark-htmlsuite, mm-h] + - [motionmark-animometer-ramp, mm-ar] + - [motionmark-htmlsuite-ramp, mm-hr] + - [speedometer, sp] + # - [speedometer3, sp3] Perma fails on osx 10.15.x machines (Bug 1809535) + - [stylebench, sb] + - [sunspider, ss] + - [unity-webgl, ugl] + - [webaudio, wa] + custom-car: + - [speedometer, sp] + - [speedometer3, sp3] + - [motionmark-animometer-ramp, mm-ar] + - [motionmark-htmlsuite-ramp, mm-hr] + chrome: + by-test-platform: + macosx1015.*shippable.*: + - ares6 + - [assorted-dom, dom] + - [jetstream2, js2] + - [matrix-react-bench, mrb] + - [motionmark-animometer, mm-a] + - [motionmark-htmlsuite, mm-h] + - [speedometer, sp] + - [speedometer3, sp3] + - [stylebench, sb] + - [sunspider, ss] + - [unity-webgl, ugl] + - [webaudio, wa] + default: + - ares6 + - [assorted-dom, dom] + - [jetstream2, js2] + - [matrix-react-bench, mrb] + - [motionmark-animometer, mm-a] + - [motionmark-animometer-ramp, mm-ar] + - [motionmark-htmlsuite, mm-h] + - [motionmark-htmlsuite-ramp, mm-hr] + - [speedometer, sp] + - [speedometer3, sp3] + - [stylebench, sb] + - [sunspider, ss] + - [unity-webgl, ugl] + - [webaudio, wa] + default: + - ares6 + - [assorted-dom, dom] + - [jetstream2, js2] + - [matrix-react-bench, mrb] + - [motionmark-animometer, mm-a] + - [motionmark-animometer-ramp, mm-ar] + - [motionmark-htmlsuite, mm-h] + - [motionmark-htmlsuite-ramp, mm-hr] + - [speedometer, sp] + - [speedometer3, sp3] + - [stylebench, sb] + - [sunspider, ss] + - [unity-webgl, ugl] + - [webaudio, wa] + treeherder-symbol: Btime() + tier: + by-app: + firefox: + by-subtest: + motionmark-animometer: + by-test-platform: + linux1804-64-clang-trunk-qr/opt: 2 + default: 1 + default: + by-test-platform: + windows10-64-ccov.*/.*: 3 + linux64-ccov.*/.*: 3 + default: 2 + default: + by-subtest: + unity-webgl: 3 + default: 2 + run-on-projects: + by-subtest: + speedometer3: + by-app: + firefox: + by-test-platform: + windows.*-32.*: [] + .*64.*shippable-qr/.*: [trunk] + .*nightlyasrelease.*: [autoland, mozilla-central] + default: [] + custom-car: + by-test-platform: + (linux|windows10-64).*shippable-qr.*: [mozilla-central] + default: [] + default: [] + unity-webgl: + by-app: + firefox: + by-test-platform: + windows.*-32.*: [] + # Disabled on autoland due to bug 1720063, and bug 1795826 + .*64.*shippable-qr/.*: [mozilla-central] + default: [] + default: [] + speedometer: + by-app: + firefox: + by-test-platform: + windows.*-32.*: [] + .*64.*shippable-qr/.*: [trunk] + .*nightlyasrelease.*: [autoland] + default: [] + custom-car: + by-test-platform: + (linux|windows10-64).*shippable-qr.*: [mozilla-central] + default: [] + default: [] + default: + by-app: + firefox: + by-test-platform: + windows.*-32.*: [] + .*64.*shippable-qr/.*: [trunk] + default: [] + default: [] + max-run-time: + by-subtest: + ares6: 1500 + assorted-dom: + by-test-platform: + .*-qr/.*: 2100 + default: 1500 + jetstream2: 8000 + matrix-react-bench: 1500 + motionmark-htmlsuite: 1500 + motionmark-htmlsuite-ramp: 3000 + motionmark-animometer-ramp: 2100 + unity-webgl: 2400 + speedometer3: + by-test-platform: + macosx1400.*shippable.*: 4200 + default: 2100 + speedometer: 2100 + default: 900 + mozharness: + extra-options: + by-test-platform: + macosx1400.*shippable.*: + - --extra-profiler-run + - --page-timeout=900000 + default: + - --extra-profiler-run + +browsertime-benchmark-wasm: + description: Raptor (browsertime) WASM benchmarks + raptor: + apps: [firefox, chrome, safari] + subtests: + by-app: + firefox: + - [wasm-godot, godot] + - [wasm-godot-baseline, godot-b] + - [wasm-godot-optimizing, godot-i] + - [wasm-misc, wm] + - [wasm-misc-baseline, wm-b] + - [wasm-misc-optimizing, wm-i] + safari: + # - [wasm-misc, wm] Perma fails (Bug 1809533) + - [wasm-godot, godot] + default: + - [wasm-misc, wm] + - [wasm-godot, godot] + treeherder-symbol: Btime() + tier: 2 + run-on-projects: + by-app: + firefox: + by-test-platform: + windows.*-32.*: [] + .*64(?!.*nightlyasrelease).*shippable-qr/.*: [mozilla-central] + default: [] + default: [] + max-run-time: + by-subtest: + wasm-godot: 1500 + wasm-godot-baseline: 1500 + wasm-misc-baseline: 1500 + default: 900 + mozharness: + extra-options: + - --extra-profiler-run + +browsertime-youtube-playback: + description: Browsertime YouTube Playback on Firefox + raptor: + apps: [firefox] + subtests: + by-app: + firefox: + - [youtube-playback-av1-sfr, ytp-av1-sfr] + - [youtube-playback-h264-sfr, ytp-h264-sfr] + - [youtube-playback-hfr, ytp-hfr] + - [youtube-playback-vp9-sfr, ytp-vp9-sfr] + - [youtube-playback-widevine-hfr, ytp-widevine-hfr] + - [youtube-playback-widevine-h264-sfr, ytp-widevine-h264-sfr] + - [youtube-playback-widevine-vp9-sfr, ytp-widevine-vp9-sfr] + treeherder-symbol: Btime() + run-on-projects: + by-test-platform: + windows.*-32.*: [] + .*64(?!.*nightlyasrelease).*shippable-qr/.*: [mozilla-central] + default: [] + tier: 2 + limit-platforms: + by-subtest: + youtube-playback-av1-sfr: + - macosx1015-64-shippable-qr/opt + default: [] + max-run-time: + by-subtest: + youtube-playback-hfr: 3600 + youtube-playback-widevine.*: 3600 + default: 2700 + +browsertime-youtube-playback-power: + description: Browsertime YouTube Playback on Firefox with power usage tracking + raptor: + apps: [firefox] + subtests: + by-app: + firefox: + + - [youtube-playback-h264-1080p30, ytp-h264-1080p30] + - [youtube-playback-h264-1080p60, ytp-h264-1080p60] + - [youtube-playback-h264-full-1080p30, ytp-h264-full-1080p30] + - [youtube-playback-h264-full-1080p60, ytp-h264-full-1080p60] + - [youtube-playback-v9-1080p30, ytp-v9-1080p30] + - [youtube-playback-v9-1080p60, ytp-v9-1080p60] + - [youtube-playback-v9-full-1080p30, ytp-v9-full-1080p30] + - [youtube-playback-v9-full-1080p60, ytp-v9-full-1080p60] + treeherder-symbol: Btime() + run-on-projects: + by-test-platform: + macosx.*shippable-qr.*: [mozilla-central] + default: [] + tier: 2 + max-run-time: 2700 + +browsertime-tp6-live: + <<: *tp6-defaults + description: Raptor (browsertime) tp6 on live-sites + mozharness: + extra-options: + - --browser-cycles=15 + - --chimera + - --live-sites + - --extra-profiler-run + raptor: + apps: [firefox, chrome, safari] + test: tp6 + run-visual-metrics: true + subtests: + by-app: + safari: + - amazon + - [bing-search, bing] + - ebay + # - [facebook, fb] Perma fails on osx 10.15.7 + - fandom + - [google-docs, gdocs] + - [google-mail, gmail] + - [google-search, gsearch] + - [google-slides, gslides] + - imdb + - imgur + # - instagram # (see bug 1736999) + - linkedin + - microsoft + # - netflix # Perma fails on osx 10.15.7 (Bug 1802922) + # - office (site loads blank page if not signed in) + # - outlook Perma fails on osx 10.15.7 + - paypal + - pinterest + - reddit + - tumblr + - twitch + # - twitter Perma fails on osx 10.15.7 + - wikipedia + - yahoo-mail + - youtube + chrome: + - amazon + - [bing-search, bing] + - ebay + - [facebook, fb] + - fandom + - [google-docs, gdocs] + - [google-mail, gmail] + - [google-search, gsearch] + - [google-slides, gslides] + - imdb + # - imgur (see bugs 1825337 & 1817420) + - instagram + - linkedin + - microsoft + - netflix + # - office (site loads blank page if not signed in) + - outlook + - paypal + - pinterest + - reddit + - tumblr + - twitch + - twitter + - wikipedia + - yahoo-mail + - youtube + default: + - amazon + - [bing-search, bing] + - ebay + - [facebook, fb] + - fandom + - [google-docs, gdocs] + - [google-mail, gmail] + - [google-search, gsearch] + - [google-slides, gslides] + - imdb + - imgur + - instagram + - linkedin + - microsoft + - netflix + # - office (site loads blank page if not signed in) + - outlook + - paypal + - pinterest + - reddit + - tumblr + - twitch + - twitter + - wikipedia + - yahoo-mail + - youtube + run-on-projects: [] + tier: 3 + treeherder-symbol: Btime-live(tp6) + +browsertime-tp6-live-sheriffed: + <<: *tp6-defaults + raptor: + apps: [firefox] + test: tp6 + run-visual-metrics: true + subtests: + - cnn + description: Raptor (browsertime) tp6 on live-sites + mozharness: + extra-options: + - --browser-cycles=5 + - --chimera + - --live-sites + - --extra-profiler-run + - --browsertime-arg=maxLoadTime=240000 + run-on-projects: + by-test-platform: + (linux|windows10-64|macos)(?!.*shippable).*: [] + (linux|windows|macosx1015)(?!.*-qr).*: [] + windows.*-32.*: [] + default: [] + tier: 2 + treeherder-symbol: Btime-live(tp6) + +browsertime-tp6-profiling: + <<: *tp6-defaults + raptor: + apps: [firefox] + test: tp6 + run-visual-metrics: true + subtests: [amazon] + description: Raptor (browsertime) tp6 page-load tests with Gecko Profiling + mozharness: + extra-options: + - --chimera + - --gecko-profile + run-on-projects: + by-test-platform: + (linux|windows|macosx1015).*shippable-qr.*: [mozilla-central] + default: [] + tier: 2 + treeherder-symbol: Btime-Prof(tp6) + +browsertime-custom: + raptor: + apps: [firefox] + run-visual-metrics: true + subtests: [[process-switch, ps]] + description: Raptor (browsertime) custom pageload tests + max-run-time: 2700 + mozharness: + extra-options: + - --chimera + - --extra-profiler-run + run-on-projects: + by-test-platform: + windows.*-32.*: [] + .*64(?!.*nightlyasrelease).*shippable-qr/.*: [mozilla-central] + default: [] + tier: 1 + treeherder-symbol: Btime(ps) + +browsertime-first-install: + raptor: + apps: [firefox] + run-visual-metrics: true + subtests: [welcome] + description: Raptor (browsertime) custom pageload tests + max-run-time: 2700 + mozharness: + extra-options: + - --chimera + - --extra-profiler-run + run-on-projects: + by-test-platform: + windows.*-32.*: [] + .*64(?!.*nightlyasrelease).*shippable-qr/.*: [trunk] + default: [] + tier: 1 + treeherder-symbol: Btime(welcome) + +browsertime-regression-tests: + raptor: + apps: [firefox] + subtests: [[constant-regression, regress-c]] + description: Raptor (browsertime) tests for our regression detection system + max-run-time: 700 + run-on-projects: [autoland] + limit-platforms: + - .*linux(?!.*shippable)(?!.*clang).* + mozharness: + extra-options: + by-test-platform: + windows10-64.*shippable.*-qr.*: [] + default: [] + tier: 2 + treeherder-symbol: Btime(regressor) + +browsertime-upload: + raptor: + apps: [firefox, chrome, safari] + subtests: + - [upload, upload-h2] + - upload-h3 + description: Raptor (browsertime) http2, http3 file upload performance test + max-run-time: 2700 + run-on-projects: + by-app: + firefox: + by-test-platform: + windows.*-32.*: [] + .*64.*shippable-qr/.*: [autoland, mozilla-central] + default: [] + default: [] + tier: 3 + treeherder-symbol: Btime(upload) + fetches: + fetch: + - upload-speed-test-file + +browsertime-pageload-benchmark: + raptor: + apps: [firefox] + subtests: [tp6-bench] + description: Raptor (browsertime) TP6 pageload benchmark test + max-run-time: 4500 + mozharness: + extra-options: + - --browser-cycles=5 + run-on-projects: [] + tier: 2 + treeherder-symbol: Btime(tp6-bench) + +browsertime-speculative: + raptor: + apps: [firefox] + run-visual-metrics: true + subtests: [connect] + description: Raptor (browsertime) speculative connect pageload tests + max-run-time: 420 + run-on-projects: + by-test-platform: + windows.*-32.*: [] + .*64.*shippable-qr/.*: [autoland] + default: [] + tier: 2 + treeherder-symbol: Btime(speculative) + +browsertime-throttled: + raptor: + apps: [firefox] + run-visual-metrics: true + subtests: [throttled] + description: Raptor (browsertime) throttled network pageload tests + max-run-time: 420 + run-on-projects: [] + tier: 3 + treeherder-symbol: Btime(throttled) + +browsertime-tp6-webextensions: + <<: *tp6-defaults + <<: *tp6-essential-defaults + description: Raptor (browsertime) tp6 page-load tests with webextensions installed on Firefox Desktop + raptor: + apps: [firefox] + test: tp6 + run-visual-metrics: true + subtests: + - amazon + fetches: + fetch: + - firefox-addons + run-on-projects: + by-app: + firefox: + by-test-platform: + windows.*-32.*: [] + macosx1100.*shippable.*: [mozilla-central] + .*64(?!.*nightlyasrelease).*shippable-qr/.*: [trunk-only] + default: [] + default: [] + mozharness: + extra-options: + by-test-platform: + windows10-64.*shippable.*-qr.*: + - --chimera + - --browsertime + - --browsertime-no-ffwindowrecorder + - --conditioned-profile=settled-webext + default: + - --chimera + - --browsertime + - --conditioned-profile=settled-webext + # TODO(Bug 1867781): promote to tier 2 after confirming no issue have been caught while runing as tier 3. + tier: 3 + treeherder-symbol: Btime-webext(tp6) + +browsertime-indexeddb: + description: Raptor (browsertime) tests for IndexedDB + max-run-time: 2700 + treeherder-symbol: Btime(idb) + limit-platforms: + by-app: + chrome: + - .*shippable.* + chromium: + - .*shippable.* + custom-car: + - .*64.*shippable.* + default: [] + raptor: + apps: [firefox, chrome, chromium] + run-visual-metrics: false + subtests: + - addMab1 + - addMabN + - addMar1 + - addMarN + - addMbl1 + - addMblN + - addkAB1 + - addkABN + - addkAR1 + - addkARN + - addkBL1 + - addkBLN + - getkeyrng + run-on-projects: + by-app: + firefox: + by-test-platform: + windows.*-32.*: [] + .*64.*shippable-qr/.*: [autoland, mozilla-central] + default: [] + default: [] + tier: + by-app: + firefox: 2 + default: 3 + mozharness: + extra-options: + - --extra-profiler-run diff --git a/taskcluster/ci/test/browsertime-mobile.yml b/taskcluster/ci/test/browsertime-mobile.yml new file mode 100644 index 0000000000..89bbc5fb6b --- /dev/null +++ b/taskcluster/ci/test/browsertime-mobile.yml @@ -0,0 +1,456 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + max-run-time: 3600 + suite: raptor + variants: + - geckoview-no-fission + run-on-projects: [] + tier: 3 + test-manifest-loader: null # don't load tests in the taskgraph + target: + by-app: + fenix: + by-test-platform: + android-hw.*-aarch64.*/.*: + index: mobile.v3.firefox-android.apks.fenix-nightly.latest.arm64-v8a + name: build/target.arm64-v8a.apk + default: + index: mobile.v3.firefox-android.apks.fenix-nightly.latest.armeabi-v7a + name: build/target.armeabi-v7a.apk + refbrow: + by-test-platform: + android-hw.*-aarch64.*/.*: + index: mobile.v2.reference-browser.raptor.latest.arm64-v8a + name: target.arm64-v8a.apk + default: + index: mobile.v2.reference-browser.raptor.latest.armeabi-v7a + name: target.armeabi-v7a.apk + default: geckoview_example.apk + virtualization: hardware + raptor: + activity: + by-app: + fenix: org.mozilla.fenix.IntentReceiverActivity + geckoview: org.mozilla.geckoview_example.GeckoViewActivity + refbrow: org.mozilla.reference.browser.BrowserTestActivity + default: None + binary-path: + by-app: + fenix: org.mozilla.fenix + geckoview: org.mozilla.geckoview_example + refbrow: org.mozilla.reference.browser.raptor + default: None + mozharness: + script: raptor_script.py + config: + - raptor/android_hw_config.py + extra-options: + # Bug 1635749, disable window recorder temporarily + - --browsertime-no-ffwindowrecorder + optimization: + skip-unless-backstop: null + limit-platforms: + by-app: + chrome-m: + - .*shippable-qr.* + cstm-car-m: + - .*shippable-qr.* + default: [] + fetches: + toolchain: + by-app: + cstm-car-m: + - android-custom-car + - linux64-minidump-stackwalk + - linux64-fix-stacks + default: + - linux64-minidump-stackwalk + - linux64-fix-stacks + +browsertime-tp6m: + <<: &tp6m-defaults + description: Raptor (browsertime) tp6 page-load tests on android + max-run-time: + by-subtest: + reddit: + by-app: + geckoview: 7200 + default: 3600 + imdb: + by-app: + geckoview: 7200 + default: 3600 + default: 3600 + mozharness: + extra-options: + - --chimera + tier: + by-app: + geckoview: 1 + refbrow: 2 + default: 3 + treeherder-symbol: Btime(tp6m) + raptor: + apps: [geckoview, fenix, chrome-m, refbrow] + run-visual-metrics: true + test: tp6m + subtests: + - amazon + - bing + - [bing-search-restaurants, bing-s-r] + - booking + - cnn + - [cnn-ampstories, cnn-amp] + - dailymail + - [ebay-kleinanzeigen, ebay-k] + - [ebay-kleinanzeigen-search, ebay-k-s] + - [facebook-cristiano, fb-cris] + - [google-maps, gmaps] + - [google-search-restaurants, gsearch-r] + - instagram + - imdb + - reddit + - sina + - [stackoverflow, stacko] + - web-de + - wikipedia + - youtube + run-on-projects: + by-app: + geckoview: + by-variant: + geckoview-no-fission: + by-test-platform: + android-hw-a51.*shippable-qr.*: [trunk-only] + default: [] + default: + by-subtest: + wikipedia: + by-test-platform: + android-hw-a51.*shippable-qr.*: [] + default: [] + google-search-restaurants: + by-test-platform: + android-hw-a51.*shippable-qr.*: [] + default: [] + default: + by-test-platform: + android-hw-a51.*shippable-qr.*: [] + default: [] + default: [] + +browsertime-tp6m-essential: + <<: *tp6m-defaults + run-without-variant: false + raptor: + apps: [geckoview, fenix, chrome-m, refbrow] + run-visual-metrics: true + test: tp6m + subtests: + - allrecipes + - [amazon-search, amazon-s] + - espn + # Bug 1682027 - Disabled due to high failure rate + # - facebook + - google + - [microsoft-support, micros-sup] + - [youtube-watch, youtube-w] + run-on-projects: + by-app: + geckoview: + by-subtest: + allrecipes: + by-test-platform: + android-hw-a51.*shippable.*: [trunk] + default: [] + default: + by-test-platform: + android-hw-a51.*shippable.*: [trunk-only] + default: [] + default: [] + tier: + by-app: + geckoview: 1 + refbrow: 2 + default: 3 + +browsertime-tp6m-webextensions: + <<: *tp6m-defaults + description: Raptor (browsertime) tp6 page-load tests with webextensions installed on android + treeherder-symbol: Btime-webext(tp6m) + run-without-variant: false + mozharness: + extra-options: + - --chimera + - --browsertime-no-ffwindowrecorder + - --conditioned-profile=settled-webext + - --browser-cycles=5 + raptor: + apps: [fenix] + run-visual-metrics: true + test: tp6m + subtests: + - [amazon-search, amazon-s] + fetches: + fetch: + - firefox-addons + run-on-projects: + by-app: + fenix: + by-test-platform: + android-hw-a51.*shippable.*: [mozilla-central] + default: [] + default: [] + # TODO(Bug 1867781): promote to tier 2 after confirming no issue have been caught while runing as tier 3. + tier: 3 + +browsertime-youtube-playback-mobile: + description: Browsertime YouTube Playback on Android + treeherder-symbol: Btime(ytp) + run-without-variant: false + raptor: + apps: [fenix, geckoview, refbrow] + subtests: + by-test-platform: + android-hw-a51.*: + - [youtube-playback-h264-sfr, ytp-h264-sfr] + - [youtube-playback-hfr, ytp-hfr] + # Bug 1699469 - Disabled until a crash is fixed. + # - [youtube-playback-widevine-h264-sfr, ytp-widevine-h264-sfr] + # - [youtube-playback-widevine-hfr, ytp-widevine-hfr] + test-url-param: + by-subtest: + youtube-playback-h264-sfr: # remove high resolution tests + exclude=1,2, + 23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38 + youtube-playback-hfr: + by-test-platform: + android-hw-a51.*: # remove VP9(1-34) and AV1(51-74) tests + exclude=1,2, + 3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34, + 51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74 + default: "" + youtube-playback-widevine-hfr: + by-test-platform: + android-hw-a51.*: # remove VP9(1-34) tests + exclude=1,2, + 3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34 + default: "" + default: "" + run-on-projects: + by-app: + geckoview: + by-test-platform: + android-hw-a51.*shippable.*: [mozilla-central] + default: [] + default: [] + max-run-time: 3600 + +browsertime-tp6m-live: + <<: *tp6m-defaults + run-without-variant: false + raptor: + apps: [chrome-m, fenix, geckoview] + run-visual-metrics: true + test: tp6m + subtests: + - allrecipes + - amazon + - [amazon-search, amazon-s] + - bing + - [bing-search-restaurants, bing-s-r] + - booking + - booking-sf + - cnn + - [cnn-ampstories, cnn-amp] + - dailymail + - discord + - [ebay-kleinanzeigen, ebay-k] + - [ebay-kleinanzeigen-search, ebay-k-s] + - espn + - expedia + - facebook + - [facebook-cristiano, fb-cris] + - [fashionbeans, fashbea] + - google + - [google-accounts, gacc] + - [google-maps, gmaps] + - [google-search-restaurants, gsearch-r] + - instagram + - imdb + - [imdb-firefox, imdb-f] + - [medium-article, medium] + - [microsoft-support, micros-sup] + - nytimes + - [people-article, people] + - reddit + - [reddit-thread, reddit-thr] + - rumble-fox + - [stackoverflow, stacko] + - [stackoverflow-question, stack-q] + - [urbandictionary-define, urbict-def] + - web-de + - [wikia-marvel, wikia-m] + - wikipedia + - youtube + - [youtube-watch, youtube-w] + mozharness: + extra-options: + - --live-sites + - --chimera + run-on-projects: + by-subtest: + cnn-ampstories: + by-app: + geckoview: + by-test-platform: + android-hw-a51.*shippable-qr.*: [autoland] + default: [] + default: [] + default: [] + tier: 3 + treeherder-symbol: Btime-live(tp6m) + +browsertime-tp6m-profiling: + description: Raptor (browsertime) tp6 page-load tests on android with Gecko profiling + run-without-variant: false + raptor: + apps: [geckoview] + test: tp6m + subtests: [amazon, youtube] + treeherder-symbol: Btime-Prof(tp6m) + mozharness: + script: raptor_script.py + config: + - raptor/android_hw_config.py + extra-options: + - --chimera + - --gecko-profile + run-on-projects: + by-test-platform: + android-hw-(a51).*aarch64-shippable-qr/opt: [mozilla-central] + default: [] + +browsertime-benchmark-speedometer-mobile: + description: Browsertime Speedometer on Android + run-without-variant: false + raptor: + apps: [geckoview, fenix, chrome-m, cstm-car-m] + tier: + by-app: + fenix: 1 + default: 3 + run-on-projects: + by-app: + refbrow: [] + geckoview: + by-test-platform: + android-hw-a51.*shippable-qr.*: [trunk] + default: [] + cstm-car-m: + by-test-platform: + android-hw-p6.*shippable-qr.*: [] + android-hw-s21.*shippable-qr.*: [] + default: [mozilla-central] + default: [] + treeherder-symbol: Btime(sp) + mozharness: + extra-options: + - --test=speedometer + +browsertime-benchmark-speedometer3-mobile: + description: Browsertime Speedometer 3 on Android + run-without-variant: false + raptor: + apps: [geckoview, fenix, chrome-m, cstm-car-m] + tier: + by-app: + fenix: 2 + geckoview: 2 + default: 3 + run-on-projects: + by-app: + refbrow: [] + geckoview: + by-test-platform: + android-hw-a51.*shippable-qr.*: [trunk-only] + default: [] + cstm-car-m: + by-test-platform: + android-hw-p6.*shippable-qr.*: [] + android-hw-s21.*shippable-qr.*: [] + default: [mozilla-central] + default: [] + treeherder-symbol: Btime(sp3) + mozharness: + extra-options: + - --test=speedometer3 + +browsertime-benchmark-motionmark: + description: Raptor (browsertime) Motionmark benchmark tests + run-without-variant: false + raptor: + apps: [fenix, chrome-m, geckoview] + subtests: + - [motionmark-animometer, mm-a] + - [motionmark-animometer-ramp, mm-ar] + - [motionmark-htmlsuite, mm-h] + - [motionmark-htmlsuite-ramp, mm-hr] + run-on-projects: + by-app: + chrome-m: [] + default: + by-test-platform: + android-hw-a51-.*aarch64-shippable-qr.*: [mozilla-central] + default: [] + treeherder-symbol: Btime() + tier: 2 + +browsertime-benchmark-unity-webgl-mobile: + description: Browsertime Unity WebGL on Android + run-without-variant: false + raptor: + apps: [geckoview, refbrow, fenix, chrome-m] + tier: + by-app: + geckoview: 2 + default: 3 + treeherder-symbol: Btime(ugl) + run-on-projects: + by-app: + refbrow: [] + geckoview: + by-test-platform: + # Disabled on autoland due to bug 1720063, and bug 1795826 + android-hw-a51-.*aarch64-shippable-qr.*: [mozilla-central] + default: [] + default: + by-test-platform: + android-hw-a51-.*aarch64-shippable-qr.*: [mozilla-central] + default: [] + max-run-time: + by-test-platform: + anrdroid-hw-a51.*: 1500 + default: 900 + mozharness: + extra-options: + - --test=unity-webgl + +browsertime-power: + description: Browsertime Power Usage Tests on Android + run-without-variant: false + raptor: + apps: [geckoview, fenix, refbrow] + subtests: + - idle + - idle-bg + - [speedometer, sp] + tier: 2 + run-on-projects: [] + treeherder-symbol: Btime-P(power) + mozharness: + extra-options: + - --power-test diff --git a/taskcluster/ci/test/compiled.yml b/taskcluster/ci/test/compiled.yml new file mode 100644 index 0000000000..08434d5ac7 --- /dev/null +++ b/taskcluster/ci/test/compiled.yml @@ -0,0 +1,135 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + test-manifest-loader: null # don't load tests in the taskgraph + run-without-variant: false + variants: + - 1proc + virtualization: virtual + mozharness: + script: + by-test-platform: + android-em.*: android_emulator_unittest.py + android-hw.*: android_hardware_unittest.py + default: desktop_unittest.py + config: + by-test-platform: + android-em-7.*: + - android/android_common.py + - android/android-x86_64.py + android-hw.*: + - android/android_common.py + - android/android_hw.py + linux.*: + - unittests/linux_unittest.py + - remove_executables.py + macosx.*: + - unittests/mac_unittest.py + windows.*: + - unittests/win_unittest.py + supports-artifact-builds: false + +cppunittest: + description: "CPP Unit Tests" + suite: cppunittest + treeherder-symbol: cppunit + target: + by-test-platform: + android-em-7.*: geckoview-test_runner.apk + default: null + tier: default + run-on-projects: + by-variant: + 1proc: built-projects + default: [] + +gtest: + description: "GTests run" + suite: gtest + treeherder-symbol: GTest + instance-size: xlarge + run-on-projects: + by-variant: + 1proc: + by-test-platform: + .*android.*: built-projects + .*(devedition|tsan|wayland).*: [] + linux1804-32-qr/opt: [] # try only, shippable on m-c + linux1804-32-qr/debug: ['mozilla-central'] # try and m-c + linux1804-32-shippable-qr/opt: ['mozilla-central'] # try and m-c + default: built-projects + default: [] + target: + by-test-platform: + android-em-7.*: geckoview-test_runner.apk + default: null + tier: default + +jittest: + description: "JIT Test run" + suite: jittest + treeherder-symbol: Jit + run-on-projects: + by-variant: + 1proc: + by-test-platform: + android-hw-.*-aarch64-qr/debug: ['mozilla-central', 'release'] + android-hw-.*-arm7-qr/debug: ['mozilla-central', 'release'] + default: built-projects + default: [] + chunks: + by-test-platform: + windows.*-ccov-qr/opt: 8 + windows.*: 1 + macosx.*/opt: 1 + macosx.*/debug: 3 + android.*: 10 + default: 6 + max-run-time: + by-test-platform: + windows.*-ccov.*/.*: 7200 + macosx.*-ccov.*/.*: 7200 + android-hw.*: 5400 + default: 3600 + mozharness: + chunked: + by-test-platform: + windows.*: false + macosx.*: false + default: true + target: + by-test-platform: + android-.*: geckoview-test_runner.apk + default: null + tier: + by-test-platform: + android-hw.*: 2 + default: default + +jittest-all: + description: "JIT Test run with all flags for android arm7 opt" + suite: jittest + treeherder-symbol: Jit + run-on-projects: + by-test-platform: + android-hw-.*-arm7(?:-shippable)?-qr/.*: ['mozilla-central', 'release'] + default: [] + chunks: 10 + max-run-time: 3600 + mozharness: + chunked: true + extra-options: + by-test-platform: + android.*: + - --jittest-flags=all + default: None + target: + by-test-platform: + android-.*: geckoview-test_runner.apk + default: null + tier: + by-test-platform: + android-hw.*: 2 + default: default diff --git a/taskcluster/ci/test/firefox-ui.yml b/taskcluster/ci/test/firefox-ui.yml new file mode 100644 index 0000000000..c45bb3d138 --- /dev/null +++ b/taskcluster/ci/test/firefox-ui.yml @@ -0,0 +1,27 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + suite: + category: firefox-ui + max-run-time: 5400 + test-manifest-loader: null # don't load tests in the taskgraph + run-on-projects: built-projects + mozharness: + script: firefox_ui_tests.py + config: + by-test-platform: + windows.*: + - firefox_ui_tests/taskcluster_windows.py + macosx.*: + - firefox_ui_tests/taskcluster.py + - firefox_ui_tests/taskcluster_mac.py + linux.*: + - firefox_ui_tests/taskcluster.py + - remove_executables.py + +firefox-ui-functional: + description: "Firefox-ui-tests functional run" + treeherder-symbol: Fxfn(en-US) + tier: 2 diff --git a/taskcluster/ci/test/kind.yml b/taskcluster/ci/test/kind.yml new file mode 100644 index 0000000000..514fb648c4 --- /dev/null +++ b/taskcluster/ci/test/kind.yml @@ -0,0 +1,88 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.test:loader + +kind-dependencies: + - build + - build-signing + - repackage-signing-shippable-l10n-msix + - repackage-signing-msix + - repackage-signing + - repackage + - fetch + - toolchain + +transforms: + - gecko_taskgraph.transforms.test:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +# Each stanza in a file pointed to by 'jobs-from' describes a particular test +# suite or sub-suite. These are processed through the transformations described +# above to produce a bunch of tasks. See the schema in +# `taskcluster/gecko_taskgraph/transforms/test/__init__.py` for a description of the fields +# used in these files. + +# Adding a new test type or running tests on a new platform? Be sure to review +# https://wiki.mozilla.org/Sheriffing/Job_Visibility_Policy + +jobs-from: + - awsy.yml + - browsertime-desktop.yml + - browsertime-mobile.yml + - compiled.yml + - firefox-ui.yml + - marionette.yml + - misc.yml + - mochitest.yml + - reftest.yml + - talos.yml + - web-platform.yml + - xpcshell.yml + +job-defaults: + attributes: + retrigger: true + require-signed-extensions: + by-release-type: + release|esr.*: true + beta: + by-test-platform: + .*-devedition/.*: false + default: true + default: false + mozharness: + requires-signed-builds: + by-test-platform: + macosx1100.*: true + windows1.*: + by-variant: + msix: true + default: false + default: false + fetches: + toolchain: + by-test-platform: + win.*: + - win32-minidump-stackwalk + - win32-fix-stacks + macosx1015.*: + - macosx64-minidump-stackwalk + - macosx64-fix-stacks + macosx1100.*: + - macosx64-aarch64-minidump-stackwalk + - macosx64-aarch64-fix-stacks + macosx1400.*: + - macosx64-aarch64-minidump-stackwalk + - macosx64-aarch64-fix-stacks + android-em-7.*: + - android-system-image-x86_64-linux + - android-avd-x86_64-linux + - android-emulator-linux + - linux64-minidump-stackwalk + - linux64-fix-stacks + default: + - linux64-minidump-stackwalk + - linux64-fix-stacks diff --git a/taskcluster/ci/test/marionette.yml b/taskcluster/ci/test/marionette.yml new file mode 100644 index 0000000000..d586a6cf24 --- /dev/null +++ b/taskcluster/ci/test/marionette.yml @@ -0,0 +1,54 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + suite: marionette + mozharness: + script: marionette.py + config: + by-test-platform: + macosx.*: + - marionette/prod_config.py + - marionette/mac_taskcluster_config.py + windows.*: + - marionette/windows_taskcluster_config.py + default: + - marionette/prod_config.py + - remove_executables.py + test-manifest-loader: null # don't load tests in the taskgraph + tier: + by-variant: + headless: 2 + default: default + variants: + - webrender-sw + - headless + run-on-projects: + by-variant: + headless: + by-test-platform: + (linux.*64)(-shippable)?-qr/opt: built-projects + default: [] + webrender-sw: + by-test-platform: + .*wayland.*: [] + .*/debug: built-projects + default: [] + default: + by-test-platform: + .*(tsan|wayland).*: [] + default: built-projects + virtualization: virtual + +marionette: + description: "Marionette unittest run" + treeherder-symbol: Mn + max-run-time: + by-test-platform: + .*asan.*: 5400 + .*ccov.*: 3600 + .*debug.*: 3600 + default: 2700 + instance-size: default + chunks: 1 diff --git a/taskcluster/ci/test/misc.yml b/taskcluster/ci/test/misc.yml new file mode 100644 index 0000000000..b31860a165 --- /dev/null +++ b/taskcluster/ci/test/misc.yml @@ -0,0 +1,269 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + test-manifest-loader: null # don't load tests in the taskgraph + +geckoview-junit: + description: "Geckoview junit run" + suite: geckoview-junit + variants: ["geckoview-fission", "no-fission"] + treeherder-symbol: gv-junit + loopback-video: true + target: geckoview-androidTest.apk + max-run-time: 3600 + run-on-projects: + by-variant: + geckoview-fission: ['trunk'] + no-fission: built-projects + default: [] + tier: default + mozharness: + script: android_emulator_unittest.py + config: + by-test-platform: + android-em-7.*: + - android/android_common.py + - android/android-x86_64.py + extra-options: + - --test-suite=geckoview-junit + +telemetry-tests-client: + description: "Telemetry tests client run" + suite: telemetry-tests-client + treeherder-symbol: tt(c) + run-on-projects: built-projects + max-run-time: 1200 + tier: default + mozharness: + script: telemetry/telemetry_client.py + config: + by-test-platform: + linux.*: + - remove_executables.py + windows.*: [] + macosx.*: [] + +test-verify: + description: "Extra verification of tests modified on this push" + suite: test-verify + treeherder-symbol: TV + loopback-video: true + max-run-time: 10800 + allow-software-gl-layers: false + variants: + - no-fission + run-on-projects: + by-variant: + no-fission: + by-test-platform: + # do not run on ccov or asan or shippable or wayland + .*(-ccov|-asan|-shippable|-wayland).*: [] + # we prefer -qr platforms with fis, no need to run on both + (?!.*(-ccov|-asan|-shippable))(?!.*-qr).*: [] + # do not run on mozilla-central, beta or release: usually just confirms earlier results + android.*: ['integration'] + default: [] + default: + by-test-platform: + # do not run on ccov or asan or shippable or wayland + .*(-ccov|-asan|-shippable|-wayland).*: [] + # we prefer -qr platforms with fis, no need to run on both + (?!.*(-ccov|-asan|-shippable))(?!.*-qr).*: [] + # do not run on mozilla-central, beta or release: usually just confirms earlier results + android.*: [] + default: ['integration'] + built-projects-only: true + target: + by-test-platform: + android-em-7.*: geckoview-test_runner.apk + default: null + optimization: + test-verify: ["test-verify"] + tier: 2 + mozharness: + script: + by-test-platform: + android-em.*: android_emulator_unittest.py + default: desktop_unittest.py + config: + by-test-platform: + android-em-7.*: + - android/android_common.py + - android/android-x86_64.py + linux.*: + - unittests/linux_unittest.py + - remove_executables.py + macosx.*: + - unittests/mac_unittest.py + windows.*: + - unittests/win_unittest.py + extra-options: + - --verify + fetches: + toolchain: + by-test-platform: + linux.*: + - linux64-node + - linux64-minidump-stackwalk + - linux64-fix-stacks + macosx.*: + - macosx64-node + - macosx64-minidump-stackwalk + - macosx64-fix-stacks + win.*-64.*: + - win64-node + - win32-minidump-stackwalk + - win32-fix-stacks + win.*32.*: + - win32-node + - win32-minidump-stackwalk + - win32-fix-stacks + android-em-7.*: + - android-emulator-linux + - android-system-image-x86_64-linux + - android-avd-x86_64-linux + - linux64-node + - linux64-minidump-stackwalk + - linux64-fix-stacks + +test-verify-gpu: + description: "Extra verification of tests modified on this push on gpu instances" + suite: + category: test-verify + name: test-verify-gpu + treeherder-symbol: TVg + loopback-video: true + virtualization: virtual-with-gpu + max-run-time: 10800 + allow-software-gl-layers: false + run-on-projects: + by-test-platform: + # do not run on ccov or asan or shippable or wayland + .*(-ccov|-asan|-shippable|-wayland).*: [] + # do not run on mozilla-central, beta or release: usually just confirms earlier results + linux.*: ['integration'] + default: [] + built-projects-only: true + optimization: + test-verify: ["test-verify-gpu"] + tier: 2 + mozharness: + script: + by-test-platform: + android-em.*: android_emulator_unittest.py + default: desktop_unittest.py + config: + by-test-platform: + android-em-7.*: + - android/android_common.py + - android/android-x86_64.py + linux.*: + - unittests/linux_unittest.py + - remove_executables.py + macosx.*: + - unittests/mac_unittest.py + windows.*: + - unittests/win_unittest.py + extra-options: + - --verify + - --gpu-required + +test-coverage: + description: "Per-test coverage" + suite: test-coverage + treeherder-symbol: TC + loopback-video: true + instance-size: default + max-run-time: 10800 + allow-software-gl-layers: false + run-on-projects: + by-test-platform: + .*-ccov.*/.*: built-projects + default: [] + tier: 2 + mozharness: + script: + by-test-platform: + android-em.*: android_emulator_unittest.py + default: desktop_unittest.py + config: + by-test-platform: + android-em-7.*: + - android/android_common.py + - android/android-x86_64.py + linux.*: + - unittests/linux_unittest.py + - remove_executables.py + macosx.*: + - unittests/mac_unittest.py + windows.*: + - unittests/win_unittest.py + extra-options: + - --per-test-coverage + fetches: + toolchain: + by-test-platform: + linux.*: + - linux64-node + - linux64-minidump-stackwalk + - linux64-fix-stacks + macosx.*: + - macosx64-node + - macosx64-minidump-stackwalk + - macosx64-fix-stacks + win.*-64.*: + - win64-node + - win32-minidump-stackwalk + - win32-fix-stacks + win.*32.*: + - win32-node + - win32-minidump-stackwalk + - win32-fix-stacks + android-em-7.*: + - android-emulator-linux + - android-system-image-x86_64-linux + - android-avd-x86_64-linux + - linux64-node + - linux64-minidump-stackwalk + - linux64-fix-stacks + +test-coverage-gpu: + description: "Per-test coverage for tests that require gpu instances" + suite: test-coverage + treeherder-symbol: TCg + loopback-video: true + virtualization: virtual-with-gpu + instance-size: default + max-run-time: 10800 + allow-software-gl-layers: false + run-on-projects: + by-test-platform: + # only run on mozilla-central and try. + .*-ccov.*/.*: ['mozilla-central'] + default: [] + tier: + by-test-platform: + windows.*asan.*: 3 + default: 2 + mozharness: + script: + by-test-platform: + android-em.*: android_emulator_unittest.py + default: desktop_unittest.py + config: + by-test-platform: + android-em-7.*: + - android/android_common.py + - android/android-x86_64.py + linux.*: + - unittests/linux_unittest.py + - remove_executables.py + macosx.*: + - unittests/mac_unittest.py + windows.*: + - unittests/win_unittest.py + extra-options: + - --per-test-coverage + - --gpu-required diff --git a/taskcluster/ci/test/mochitest.yml b/taskcluster/ci/test/mochitest.yml new file mode 100644 index 0000000000..f2399d7116 --- /dev/null +++ b/taskcluster/ci/test/mochitest.yml @@ -0,0 +1,1171 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + suite: + category: mochitest + target: + by-test-platform: + android-em-7.*: geckoview-test_runner.apk + android-hw.*: geckoview-test_runner.apk + windows11-64-2009.*: + by-variant: + msix: target.installer.msix + default: null + default: null + tier: + by-variant: + xorigin: + by-test-platform: + linux.*64.*-qr/debug: 1 + default: 2 + default: + by-test-platform: + android-em-7.0-x86_64-qr/debug-isolated-process: 3 + default: default + mozharness: + script: + by-test-platform: + android-em.*: android_emulator_unittest.py + android-hw.*: android_hardware_unittest.py + default: desktop_unittest.py + config: + by-test-platform: + android-em-7.*: + - android/android_common.py + - android/android-x86_64.py + android-hw.*: + - android/android_common.py + - android/android_hw.py + linux.*: + - unittests/linux_unittest.py + - remove_executables.py + macosx.*: + - unittests/mac_unittest.py + windows.*: + - unittests/win_unittest.py + +mochitest-plain: + description: "Mochitest plain run" + treeherder-symbol: M() + schedules-component: mochitest-plain + loopback-video: true + virtualization: virtual + variants: + - aab+no-fission + - conditioned_profile + - xorigin + - no-fission + - socketprocess_networking + - webrender-sw+no-fission + - webrender-sw + - headless + - headless+socketprocess_networking + - http3 + - http2 + - geckoview-fission-isolate-high-value + run-on-projects: + by-variant: + conditioned_profile: + by-test-platform: + .*(asan|ccov|wayland).*: [] + linux1804-64(-shippable)?-qr/opt: ['trunk'] + windows11-64.*(-shippable)?-qr/opt: ['trunk'] + default: [] + xorigin: + by-test-platform: + .*(asan|wayland).*: [] + windows.*ccov.*: [] + (linux.*64|macosx.*64|windows11.*)(-shippable)?-qr/(opt|debug): ['trunk'] + windows.*64-ccov-qr/opt: ['mozilla-central'] + linux.*64-ccov-qr/opt: ['mozilla-central'] + android-em-7.0-x86_64-qr/debug-isolated-process: [] + android-em.*: ['trunk'] + default: [] + socketprocess_networking: + by-test-platform: + .*(asan|ccov|wayland).*: [] + (linux.*64|macosx.*64|windows11-64.*)(-shippable)?-qr/(opt|debug): ['autoland', 'mozilla-central'] + default: [] + webrender-sw+no-fission: + by-test-platform: + android-em-7.0-x86_64-qr/debug: built-projects + linux.*asan.*: ['trunk'] + linux.*64(-shippable)?-qr/(opt|debug): ['trunk'] + default: [] + webrender-sw: + by-test-platform: + linux1804-64-qr/debug: built-projects + default: [] + aab+no-fission: + by-test-platform: + android-em-7.0-x86_64-qr/debug: built-projects + default: [] + headless: + by-test-platform: + .*wayland.*: [] + linux1804-64.*: ['mozilla-central'] + default: [] + headless+socketprocess_networking: + by-test-platform: + .*wayland.*: [] + linux1804-64.*: ['mozilla-central'] + default: [] + no-fission: + by-test-platform: + android-em-7.0-x86_64-qr/debug-isolated-process: [] + android.*: built-projects + linux1804-64-qr/debug: ['trunk'] + linux1804-64(-shippable|-asan)?-qr/opt: ['trunk'] + default: [] + http3: + by-test-platform: + linux1804-64-qr/debug: built-projects + default: [] + http2: + by-test-platform: + linux1804-64-qr/debug: built-projects + default: [] + geckoview-fission-isolate-high-value: + by-test-platform: + android-em-7.0-x86_64-qr/debug-isolated-process: [] + android-em.*: built-projects + default: [] + default: + by-test-platform: + android-em-7.0-x86_64-qr/debug-isolated-process: [] + android.*: built-projects + default: built-projects + chunks: + by-test-platform: + android.*/debug: 10 + linux.*/debug: 16 + linux.*64-tsan-qr/opt: 20 + .*(asan|ccov).*: 10 + linux.*/opt: 8 + windows.*/debug: 8 + default: 5 + instance-size: + by-test-platform: + linux.*64-tsan-qr/opt: xlarge # runs out of memory using 8GB + default: default + max-run-time: 3600 + allow-software-gl-layers: false + mozharness: + mochitest-flavor: plain + extra-options: + by-test-platform: + android-em.*: + - --test-suite=mochitest-plain + default: [] + chunked: + by-test-platform: + android-em.*: false + default: true + fetches: + toolchain: + by-test-platform: + linux.*: + - linux64-node + - linux64-minidump-stackwalk + - linux64-fix-stacks + macosx.*: + - macosx64-node + - macosx64-minidump-stackwalk + - macosx64-fix-stacks + win.*-64.*: + - win64-node + - win32-minidump-stackwalk + - win32-fix-stacks + win.*32.*: + - win32-node + - win32-minidump-stackwalk + - win32-fix-stacks + android-em-7.*: + - android-system-image-x86_64-linux + - android-avd-x86_64-linux + - android-emulator-linux + - linux64-node + - linux64-minidump-stackwalk + +mochitest-a11y: + description: "Mochitest a11y run" + treeherder-symbol: M(a11y) + schedules-component: mochitest-a11y + test-manifest-loader: default # ensure we don't run with manifest-scheduling + loopback-video: true + run-without-variant: false + variants: + - 1proc + - socketprocess_networking+1proc + - webrender-sw+1proc + run-on-projects: + by-variant: + socketprocess_networking+1proc: + by-test-platform: + linux.*64-qr/debug: ['autoland', 'mozilla-central'] + default: [] + webrender-sw+1proc: + by-test-platform: + android-em-7.0-x86_64-qr/debug: built-projects + linux.*64-qr/debug: built-projects + default: [] + 1proc: built-projects + mozharness: + mochitest-flavor: a11y + +mochitest-browser-chrome: + description: "Mochitest browser-chrome run" + suite: + name: mochitest-browser-chrome + treeherder-symbol: M(bc) + schedules-component: mochitest-browser-chrome + loopback-video: true + variants: + - webrender-sw + - webrender-sw+a11y-checks + - socketprocess_networking + - msix + run-on-projects: + by-variant: + webrender-sw: + by-test-platform: + linux.*64(-asan)?-qr/(opt|debug): ['all'] + linux.*64-tsan-qr/opt: built-projects + linux.*64-shippable-qr/opt: ['release'] + linux.*64(-shippable)?-qr/opt: built-projects + linux.*64-devedition-qr/opt: built-projects + windows1.*-64.*-qr/debug: built-projects + .*wayland.*: [] # will change to built-projects when greened up + default: [] + webrender-sw+a11y-checks: + by-test-platform: + linux.*64(-shippable)?-qr/opt: ['trunk'] + default: [] + socketprocess_networking: + by-test-platform: + .*asan.*: [] + .*ccov.*: [] + (linux.*64|macosx.*64|windows1.*-64.*)(-shippable)?-qr/(opt|debug): ['autoland', 'mozilla-central'] + default: [] + msix: + by-test-platform: + windows11-64-2009-qr/debug: built-projects + windows11-64-2009(-shippable)?-qr/opt: built-projects + default: [] + default: + by-test-platform: + android.*: [] + linux.*: [] # linux runs M-swr(bc), not M(bc) + default: built-projects + tier: + by-variant: + webrender-sw: + by-test-platform: + linux.*64(-asan|-shippable)?-qr/(opt|debug): 1 + default: default + default: default + chunks: + by-variant: + msix: + by-test-platform: + .*/debug: 16 + default: 7 + default: + by-test-platform: + linux.*wayland.*/opt: 8 + linux.*wayland.*/debug: 12 + linux.*-qr/debug: 16 + linux.*64-asan-qr/opt: 16 + linux.*64-tsan-qr/opt: 32 + macosx.*64-qr/debug: 12 + macosx.*64.*/opt: 10 + windows.*-ccov.*/.*: 14 + windows.*-asan-qr/opt: 14 + windows.*32-qr/debug: 12 + default: 8 + max-run-time: + by-variant: + msix: 5400 + socketprocess_networking: + by-test-platform: + linux.*-qr/debug: 7200 + default: 5400 + default: + by-test-platform: + linux.*64-ccov.*/.*: 9000 + linux.*64-tsan-qr/opt: 10800 + linux.*-qr/opt: 5400 + macosx.*64-ccov.*/.*: 10800 + windows.*-ccov.*/.*: 10800 + windows.*-asan-qr/opt: 5400 + .*/debug: 5400 + default: 3600 + mozharness: + mochitest-flavor: browser + chunked: true + # Bug 1281241: migrating to m3.large instances + instance-size: + by-test-platform: + linux.*64-tsan-qr/opt: xlarge # runs out of memory using 8GB + linux.*64-asan-qr/opt: xlarge # runs out of memory using 8GB + default: default + allow-software-gl-layers: false + +mochitest-browser-chrome-failures: + description: "Mochitest browser-chrome failures run" + suite: + name: mochitest-browser-chrome + treeherder-symbol: M-f(bc) + schedules-component: mochitest-browser-chrome + loopback-video: true + variants: + - webrender-sw + run-on-projects: + by-test-platform: + android.*: [] + .*wayland.*: [] # will change to built-projects when greened up + default: [] + tier: 3 + chunks: 2 + max-run-time: + by-test-platform: + linux.*wayland.*/opt: 1800 + linux.*wayland.*/debug: 3600 + default: 3600 + mozharness: + mochitest-flavor: browser + chunked: true + extra-options: + by-test-platform: + linux.*wayland.*: + - --run-failures="os == 'linux' && os_version == '22.04'" + - --timeout-as-pass + - --crash-as-pass + instance-size: default + allow-software-gl-layers: false + +mochitest-browser-a11y: + description: "Mochitest browser-a11y run" + suite: + name: mochitest-browser-a11y + treeherder-symbol: M(ba) + schedules-component: mochitest-browser-a11y + loopback-video: true + run-on-projects: + by-test-platform: + android.*: [] + .*wayland.*: [] + default: built-projects + tier: default + max-run-time: + by-test-platform: + .*tsan.*: 2700 + linux.*/debug: 2700 + default: 1800 + mozharness: + mochitest-flavor: browser + chunked: + by-test-platform: + .*tsan.*: true + default: false + chunks: + by-test-platform: + .*tsan.*: 2 + .*asan.*: 2 + default: 1 + instance-size: default + allow-software-gl-layers: false + virtualization: virtual + +mochitest-browser-media: + description: "Mochitest browser media" + suite: + name: mochitest-browser-media + treeherder-symbol: M(mda-bc) + schedules-component: mochitest-browser-media + loopback-video: true + test-manifest-loader: null + variants: ["wmf-media-engine"] + run-on-projects: + by-variant: + wmf-media-engine: + by-test-platform: + .*asan.*: [] + windows11-64.*/debug: [] # Bug 1805736 + windows1.*-64.*: ['autoland', 'mozilla-central'] + default: [] + default: + by-test-platform: + android.*: [] + default: built-projects + tier: default + max-run-time: + by-test-platform: + .*tsan.*: 1800 + default: 1200 + mozharness: + mochitest-flavor: browser + instance-size: default + allow-software-gl-layers: false + virtualization: virtual + +mochitest-browser-screenshots: + description: "Browser Screenshots" + suite: + name: mochitest-browser-screenshots + treeherder-symbol: M(ss) + loopback-video: true + test-manifest-loader: null # don't load tests in the taskgraph + variants: ["no-fission"] + run-on-projects: + by-test-platform: + linux1804-64.*/opt: ['trunk'] + default: [] + max-run-time: 3600 + mozharness: + mochitest-flavor: browser + allow-software-gl-layers: false + +mochitest-chrome: + description: "Mochitest chrome run" + treeherder-symbol: M(c) + schedules-component: mochitest-chrome + loopback-video: true + run-without-variant: false + variants: + - 1proc + - socketprocess_networking+1proc + - webrender-sw+1proc + run-on-projects: + by-variant: + socketprocess_networking+1proc: + by-test-platform: + .*asan.*: [] + .*ccov.*: [] + (linux.*64|macosx.*64|windows11-64.*)(-shippable)?-qr/(opt|debug): ['autoland', 'mozilla-central'] + default: [] + webrender-sw+1proc: + by-test-platform: + android-em-7.0-x86_64-qr/debug: built-projects + linux.*64-qr/debug: built-projects + default: [] + 1proc: + by-test-platform: + .*wayland.*: [] + default: built-projects + chunks: + by-test-platform: + .*tsan.*/opt: 6 + default: 3 + max-run-time: 3600 + mozharness: + mochitest-flavor: chrome + chunked: true + instance-size: + by-test-platform: + linux.*64-tsan-qr/opt: xlarge # runs out of memory otherwise using 8GB + default: default + +mochitest-devtools-chrome: + description: "Mochitest devtools-chrome run" + suite: + name: mochitest-devtools-chrome + schedules-component: mochitest-browser-chrome + treeherder-symbol: M(dt) + loopback-video: true + variants: + - a11y-checks + - socketprocess_networking + - webrender-sw + - devtools-no-eft+no-fission + - http3 + run-on-projects: + by-variant: + a11y-checks: + by-test-platform: + linux.*64(-shippable)?-qr/opt: ['trunk'] + default: [] + devtools-no-eft+no-fission: + by-test-platform: + linux.*64(-shippable)?-qr/opt: ['trunk'] + default: [] + http3: + by-test-platform: + linux1804-64-qr/debug: built-projects + default: [] + socketprocess_networking: + by-test-platform: + .*asan.*: [] + .*ccov.*: [] + (linux.*64|macosx.*64|windows.*)(-shippable)?-qr/(opt|debug): ['autoland', 'mozilla-central'] + default: [] + webrender-sw: + by-test-platform: + linux.*64-qr/debug: built-projects + .*wayland.*: [] # will change to built-projects when greened up + default: [] + default: + by-test-platform: + android.*: [] + .*wayland.*: [] + linux.*64-ccov-qr/opt: [] + default: built-projects + tier: default + max-run-time: + by-test-platform: + windows.*-ccov.*/.*: 10800 + macosx.*64-ccov.*/.*: 9000 + linux.*64-ccov.*/.*: 7200 + linux.*64-tsan-qr/opt: 7200 + default: 5400 + chunks: + by-test-platform: + .*-ccov.*/.*: 12 + linux.*wayland.*/debug: 14 + linux.*64-qr/debug: 14 + macosx.*64-qr/debug: 8 + .*-asan(-qr)?/opt: 8 + .*-tsan-qr/opt: 16 + default: 5 + mozharness: + mochitest-flavor: chrome + chunked: true + instance-size: + by-test-platform: + linux.*64-[at]san(-qr)?/opt: xlarge # runs out of memory otherwise using 8GB + default: default + # Bug 1296086: high number of intermittents observed with software GL and large instances + allow-software-gl-layers: false + fetches: + toolchain: + by-test-platform: + linux.*: + - linux64-node + - linux64-minidump-stackwalk + - linux64-fix-stacks + macosx.*: + - macosx64-node + - macosx64-minidump-stackwalk + - macosx64-fix-stacks + win.*-64.*: + - win64-node + - win32-minidump-stackwalk + - win32-fix-stacks + win.*32.*: + - win32-node + - win32-minidump-stackwalk + - win32-fix-stacks + android-em-7.*: + - android-system-image-x86_64-linux + - android-avd-x86_64-linux + - android-emulator-linux + - linux64-node + - linux64-minidump-stackwalk + + +mochitest-devtools-chrome-failures: + description: "Mochitest devtools-chrome run" + suite: + name: mochitest-devtools-chrome + schedules-component: mochitest-browser-chrome + treeherder-symbol: M-f(dt) + loopback-video: true + variants: + - webrender-sw + run-on-projects: + by-test-platform: + android.*: [] + .*wayland.*: [] # will change to built-projects when greened up + default: [] + tier: 3 + chunks: 2 + max-run-time: + by-test-platform: + linux.*wayland.*/opt: 1800 + linux.*wayland.*/debug: 3600 + default: 3600 + mozharness: + mochitest-flavor: chrome + chunked: true + extra-options: + by-test-platform: + linux.*wayland.*: + - --run-failures="os == 'linux' && os_version == '22.04'" + - --timeout-as-pass + - --crash-as-pass + instance-size: default + allow-software-gl-layers: false + + +mochitest-plain-gpu: + description: "Mochitest plain GPU run" + suite: + name: mochitest-plain-gpu + treeherder-symbol: M(gpu) + schedules-component: mochitest-plain + loopback-video: true + variants: + - no-fission + - webrender-sw+no-fission + - webrender-sw + run-on-projects: + by-variant: + webrender-sw+no-fission: + by-test-platform: + android-em-7.0-x86_64-qr/debug: built-projects + linux.*asan.*: ['trunk'] + linux.*64(-shippable)?-qr/(opt|debug): ['trunk'] + default: [] + webrender-sw: + by-test-platform: + linux.*64-qr/debug: built-projects + default: [] + no-fission: + by-test-platform: + android-em-7.0-x86_64-qr/debug-isolated-process: [] + linux.*64-ccov-qr/opt: [] + linux1804-32.*: [] + .*-tsan-qr/opt: [] + .*wayland.*: [] + linux.*: ['trunk'] # linux opt/debug/asan + android.*: built-projects + default: [] + default: + by-test-platform: + android-em-7.0-x86_64-qr/debug-isolated-process: [] + default: built-projects + virtualization: virtual-with-gpu + tier: + by-test-platform: + android-em-7.0-x86_64-qr/debug-isolated-process: 3 + default: default + mozharness: + mochitest-flavor: plain + extra-options: + by-test-platform: + android.*: + # note that Android runs fewer suites than other platforms + - --test-suite=mochitest-plain-gpu + default: + - --mochitest-suite=mochitest-plain-gpu + instance-size: + by-test-platform: + linux.*64-tsan-qr/opt: xlarge # runs out of memory otherwise using 8GB + default: default + +mochitest-chrome-gpu: + description: "Mochitest chrome GPU run" + suite: + name: mochitest-chrome-gpu + treeherder-symbol: M(gpu-c) + loopback-video: true + virtualization: virtual-with-gpu + run-without-variant: false + variants: + - 1proc + - socketprocess_networking+1proc + - webrender-sw+1proc + run-on-projects: + by-variant: + socketprocess_networking+1proc: [] + webrender-sw+1proc: + by-test-platform: + android-em-7.0-x86_64-qr/debug: built-projects + linux.*64-qr/debug: built-projects + default: [] + 1proc: + by-test-platform: + android.*/.*: [] + default: built-projects + tier: default + mozharness: + mochitest-flavor: chrome + extra-options: + by-test-platform: + android.*: + # note that Android runs fewer suites than other platforms + - --test-suite=mochitest-chrome-gpu + default: + - --mochitest-suite=mochitest-chrome-gpu + instance-size: + by-test-platform: + linux.*64-tsan-qr/opt: xlarge # runs out of memory using 8GB of memory + default: default + +mochitest-media: + description: "Mochitest media run" + treeherder-symbol: M(mda) + schedules-component: mochitest-plain + max-run-time: + by-test-platform: + windows.*-ccov.*/.*: 7200 + macosx.*64-ccov.*/.*: 7200 + linux.*64-tsan-qr/opt: 7200 + default: 5400 + variants: + - media-gpu + - no-fission + - socketprocess+no-fission + - socketprocess + - webgl-ipc + - webrender-sw+no-fission + - webrender-sw + - wmf-media-engine + - msix + run-on-projects: + by-variant: + webgl-ipc: + by-test-platform: + android.*: [] + windows.*ccov.*: [] + .*hw-ref.*: [] + linux.*64(-shippable|-asan|-tsan)?-qr/opt: ['autoland', 'mozilla-central'] + macosx.*-64(-shippable)?-qr/(opt|debug): ['autoland', 'mozilla-central'] + windows1.*(-shippable)?-qr/(opt|debug): ['autoland', 'mozilla-central'] + windows.*-asan-qr/opt: ['autoland', 'mozilla-central'] + default: [] + socketprocess+no-fission: + by-test-platform: + .*hw-ref.*: [] + android-em-7.0-x86_64-qr/debug: ['autoland', 'mozilla-central'] + android-hw-.*-aarch64-qr/debug: built-projects + linux1804-64-qr/debug: ['trunk'] + linux1804-64(-shippable|-asan)?-qr/opt: ['trunk'] + default: [] + socketprocess: + by-test-platform: + android.*: [] + windows.*ccov.*: [] + .*hw-ref.*: [] + linux.*64(-asan|-devedition|-shippable)?-qr/(opt|debug): built-projects + linux.*64-tsan-qr/opt: ['autoland', 'mozilla-central'] + macosx.*-64(-devedition|-shippable)?-qr/(opt|debug): built-projects + windows1.*(-devedition|-shippable)?-qr/(opt|debug): built-projects + windows.*-asan-qr/opt: ['autoland', 'mozilla-central'] + default: [] + webrender-sw+no-fission: + by-test-platform: + .*hw-ref.*: [] + android-em-7.0-x86_64-qr/debug: ['autoland', 'mozilla-central'] + linux1804-64-qr/debug: ['trunk'] + linux1804-64(-shippable|-asan)?-qr/opt: ['trunk'] + default: [] + webrender-sw: + by-test-platform: + android.*: [] + .*hw-ref.*: [] + linux1804-64-qr/debug: ['autoland', 'mozilla-central'] + default: [] + no-fission: + by-test-platform: + android-hw-.*/opt: [] + .*hw-ref.*: [] + android-hw-.*-arm7.*/(?:debug)?: ['trunk', 'mozilla-beta', 'mozilla-release'] + android-em-7.0-x86_64-qr/debug-isolated-process: [] + android.*: built-projects + linux1804-64-qr/debug: ['trunk'] + linux1804-64(-shippable|-asan)?-qr/opt: ['trunk'] + default: [] + wmf-media-engine: + by-test-platform: + .*hw-ref.*: [] + windows1.*ccov.*: [] + windows1.*-64.*: ['autoland', 'mozilla-central'] + default: [] + msix: + by-test-platform: + .*hw-ref.*: [] + windows11-64-2009-shippable-qr/opt: built-projects + windows11-64-2009-qr/opt: ['autoland'] + windows11-64-2009-qr/debug: ['autoland'] + default: [] + media-gpu: + by-test-platform: + .*hw-ref.*: [] + (macosx.*64|windows11.*)(-shippable)?-qr/(opt|debug): ['autoland', 'mozilla-central', 'mozilla-beta'] + default: [] + # TODO : add Android, it hasn't supported 'tags' + # TODO : add Linux, it would crash on gfxFeature.cpp:180 + default: + by-test-platform: + .*hw-ref.*: [] + android-hw.*/opt: [] + android-em-7.0-x86_64-qr/debug-isolated-process: [] + android.*: built-projects + linux.*(asan|ccov)/opt: [] + .*(ccov/|asan/|-32).*: built-projects + (android|linux|windows10-64-2009|windows11-64-2009|macos)(?!.*-qr).*: [] + default: built-projects + loopback-video: true + chunks: + by-variant: + wmf-media-engine: 1 + media-gpu: 1 + default: + by-test-platform: + (android|macos).*/opt: 1 + ^(?!.*asan).*windows1.*/opt: 1 + linux.*/debug: 3 + linux.*64-tsan-qr/opt: 5 + default: 2 + mozharness: + mochitest-flavor: plain + chunked: + by-test-platform: + android.*: false + macosx.*64.*: false + windows1.*: false + default: true + extra-options: + by-test-platform: + android-em-7.*: + - --setpref=webgl.out-of-process=false + - --setpref=security.sandbox.content.headless=false + - --setpref=gfx.canvas.accelerated=false + default: + - --setpref=webgl.out-of-process=false + - --setpref=security.sandbox.content.headless=false + tier: + by-test-platform: + .*ccov.*: 2 + android-em.*: 1 + android-em-7.0-x86_64-qr/debug-isolated-process: 3 + android-hw.*: 1 + default: default + +mochitest-valgrind: + description: "Mochitest plain Valgrind run" + suite: + name: mochitest-valgrind-plain + treeherder-symbol: M-V() + run-on-projects: [] + test-manifest-loader: null # don't load tests in the taskgraph + tier: 3 + loopback-video: true + chunks: 40 + max-run-time: 14400 + run-without-variant: false + variants: ["1proc"] + allow-software-gl-layers: false + mozharness: + mochitest-flavor: plain + chunked: true + +mochitest-webgl1-core: + description: "Mochitest webgl1-core run" + treeherder-symbol: M(gl1c) + schedules-component: mochitest-plain + virtualization: virtual-with-gpu + test-manifest-loader: null # don't load tests in the taskgraph + loopback-video: true + max-run-time: + by-test-platform: + macosx.*64-ccov.*/.*: 7200 + default: 1800 + variants: + - no-fission + - webgl-ipc + - webrender-sw+no-fission + - webrender-sw + run-on-projects: + by-variant: + webgl-ipc: + by-test-platform: + .*-(ccov|tsan|wayland).*: [] + linux.*-64.*: ["trunk"] + mac.*: ["trunk"] + win.*: ["trunk"] + default: [] + webrender-sw+no-fission: + by-test-platform: + linux.*64-qr/debug: ['trunk'] + default: [] + webrender-sw: + by-test-platform: + linux.*64-qr/debug: built-projects + default: [] + no-fission: + by-test-platform: + android-hw-.*(?<!-shippable)(-qr)?/opt: ['mozilla-central', 'mozilla-beta', 'mozilla-release'] + android-hw.*aarch.*-shippable-qr/opt: ['mozilla-central'] + android-hw.*aarch.*-qr/debug: ['mozilla-central'] + linux1804-64-qr/debug: ['trunk'] + linux1804-64(-shippable|-asan)?-qr/opt: ['trunk'] + default: [] + default: + by-test-platform: + android.*: [] + .*-tsan.*: [] + default: built-projects + # Bug 1296733: llvmpipe with mesa 9.2.1 lacks thread safety + allow-software-gl-layers: false + mozharness: + mochitest-flavor: plain + extra-options: + - --setpref=webgl.out-of-process=false + - --setpref=security.sandbox.content.headless=false + +mochitest-webgl1-ext: + description: "Mochitest webgl1-ext run" + treeherder-symbol: M(gl1e) + schedules-component: mochitest-plain + virtualization: virtual-with-gpu + chunks: + by-test-platform: + android.*: 2 + default: 1 + test-manifest-loader: null # don't load tests in the taskgraph + loopback-video: true + max-run-time: 2700 + variants: + - no-fission + - webgl-ipc + - webrender-sw+no-fission + - webrender-sw + run-on-projects: + by-variant: + webgl-ipc: + by-test-platform: + .*-(ccov|tsan|wayland).*/.*: [] + linux.*-64.*: ["trunk"] + mac.*: ["trunk"] + win.*: ["trunk"] + default: [] + webrender-sw+no-fission: + by-test-platform: + linux.*64-qr/debug: ['trunk'] + default: [] + webrender-sw: + by-test-platform: + linux.*64-qr/debug: built-projects + default: [] + no-fission: + by-test-platform: + android-hw-.*(?<!-shippable)(-qr)?/opt: ['mozilla-central', 'mozilla-beta', 'mozilla-release'] + android-hw.*aarch.*-shippable-qr/opt: ['mozilla-central'] + android-hw.*aarch.*-qr/debug: ['mozilla-central'] + linux1804-64-qr/debug: ['trunk'] + linux1804-64(-shippable|-asan)?-qr/opt: ['trunk'] + default: [] + default: + by-test-platform: + android.*: [] + .*-tsan.*: [] + default: built-projects + # Bug 1296733: llvmpipe with mesa 9.2.1 lacks thread safety + allow-software-gl-layers: false + mozharness: + mochitest-flavor: plain + chunked: true + extra-options: + - --setpref=webgl.out-of-process=false + - --setpref=security.sandbox.content.headless=false + +mochitest-webgl2-core: + description: "Mochitest webgl2-core run" + treeherder-symbol: M(gl2c) + schedules-component: mochitest-plain + virtualization: virtual-with-gpu + chunks: + by-test-platform: + android.*: 2 + default: 1 + test-manifest-loader: null # don't load tests in the taskgraph + loopback-video: true + max-run-time: 1800 + variants: + - no-fission + - webgl-ipc + - webrender-sw+no-fission + - webrender-sw + run-on-projects: + by-variant: + webgl-ipc: + by-test-platform: + .*-(ccov|tsan|wayland).*/.*: [] + android.*: [] + linux.*-64.*: ["trunk"] + mac.*: ["trunk"] + win.*: ["trunk"] + default: [] + webrender-sw+no-fission: + by-test-platform: + linux.*64-qr/debug: ['trunk'] + default: [] + webrender-sw: + by-test-platform: + linux.*64-qr/debug: built-projects + default: [] + no-fission: + by-test-platform: + android-hw-.*(?<!-shippable)(-qr)?/opt: ['mozilla-central', 'mozilla-beta', 'mozilla-release'] + android-hw.*aarch.*-shippable-qr/opt: ['mozilla-central'] + android-hw.*aarch.*-qr/debug: ['mozilla-central'] + linux1804-64-qr/debug: ['trunk'] + linux1804-64(-shippable|-asan)?-qr/opt: ['trunk'] + default: [] + default: + by-test-platform: + android.*: [] + .*-(tsan|wayland).*: [] + default: built-projects + # Bug 1296733: llvmpipe with mesa 9.2.1 lacks thread safety + allow-software-gl-layers: false + mozharness: + mochitest-flavor: plain + chunked: true + +mochitest-webgl2-ext: + description: "Mochitest webgl2-ext run" + treeherder-symbol: M(gl2e) + schedules-component: mochitest-plain + virtualization: virtual-with-gpu + variants: + - no-fission + - webgl-ipc + - webrender-sw+no-fission + - webrender-sw + run-on-projects: + by-variant: + webgl-ipc: + by-test-platform: + .*(ccov|tsan|wayland).*/.*: [] + linux.*-64.*: ["trunk"] + mac.*: ["trunk"] + win.*: ["trunk"] + default: [] + webrender-sw+no-fission: + by-test-platform: + linux.*64-qr/debug: ["trunk"] + default: [] + webrender-sw: + by-test-platform: + linux.*64-qr/debug: built-projects + default: [] + no-fission: + by-test-platform: + linux1804-64-qr/debug: ['trunk'] + linux1804-64(-shippable|-asan)?-qr/opt: ['trunk'] + android.*: built-projects + default: [] + default: + by-test-platform: + android.*: [] + .*-tsan.*: [] + default: built-projects + chunks: 4 + test-manifest-loader: null # don't load tests in the taskgraph + loopback-video: true + max-run-time: 2700 + # Bug 1296733: llvmpipe with mesa 9.2.1 lacks thread safety + allow-software-gl-layers: false + mozharness: + mochitest-flavor: plain + chunked: true + extra-options: + - --setpref=webgl.out-of-process=false + - --setpref=security.sandbox.content.headless=false + +mochitest-webgl2-deqp: + description: "Mochitest webgl2-deqp run" + treeherder-symbol: M(gl2d) + schedules-component: mochitest-plain + virtualization: virtual-with-gpu + variants: + - webgl-ipc + - webrender-sw + run-on-projects: [] # Don't run this for now. + chunks: 4 + loopback-video: true + max-run-time: 1800 + # Bug 1296733: llvmpipe with mesa 9.2.1 lacks thread safety + allow-software-gl-layers: false + mozharness: + mochitest-flavor: plain + chunked: true + extra-options: + - --setpref=webgl.out-of-process=false + - --setpref=security.sandbox.content.headless=false + +mochitest-webgpu: + description: "Mochitest webgpu run" + treeherder-symbol: M(webgpu) + schedules-component: mochitest-plain + virtualization: virtual-with-gpu + loopback-video: true + variants: + - no-fission + - webrender-sw+no-fission + run-on-projects: + by-variant: + webrender-sw+no-fission: + by-test-platform: + android-em-7.0-x86_64-qr/debug: ["trunk"] + default: [] + no-fission: + by-test-platform: + linux2204-64-qr/debug: ['trunk'] + linux2204-64(-shippable|-asan)?-qr/opt: ['trunk'] + default: [] + default: + by-test-platform: + android.*: [] + macosx.*: [] + # Things like asan/tsan/32bit are restricted to --full + # via UNCOMMON_TRY_TASK_LABELS + # in taskcluster/gecko_taskgraph/target_tasks.py. + default: ['trunk'] + max-run-time: + by-test-platform: + macosx.*64-ccov.*/.*: 7200 + default: 1800 + # Bug 1296733: llvmpipe with mesa 9.2.1 lacks thread safety + allow-software-gl-layers: false + mozharness: + mochitest-flavor: plain + +mochitest-remote: + description: "Mochitest for the remote agent (/remote folder)" + suite: + name: mochitest-remote + treeherder-symbol: M(remote) + loopback-video: true + variants: + - no-fission + - socketprocess_networking + - webrender-sw+no-fission + - webrender-sw + run-on-projects: + by-variant: + socketprocess_networking: + by-test-platform: + .*asan.*: [] + .*ccov.*: [] + (linux.*64|macosx.*64|windows1.*-64.*)(-shippable)?-qr/(opt|debug): ['autoland', 'mozilla-central'] + default: [] + webrender-sw+no-fission: + by-test-platform: + linux.*64-qr/debug: ['trunk'] + default: [] + webrender-sw: + by-test-platform: + linux.*64-qr/debug: ['all'] + default: [] + no-fission: + by-test-platform: + linux1804-64-qr/debug: ['trunk'] + linux1804-64(-shippable|-asan)?-qr/opt: ['trunk'] + default: [] + default: + by-test-platform: + android.*: [] + default: built-projects + tier: default + max-run-time: 5400 + mozharness: + mochitest-flavor: browser + extra-options: + - --setpref=remote.log.level=Trace + virtualization: virtual diff --git a/taskcluster/ci/test/reftest.yml b/taskcluster/ci/test/reftest.yml new file mode 100644 index 0000000000..5e19ec3fd5 --- /dev/null +++ b/taskcluster/ci/test/reftest.yml @@ -0,0 +1,248 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + suite: + category: reftest + target: + by-test-platform: + android-em-7.*: geckoview-test_runner.apk + android-hw-.*: geckoview-test_runner.apk + default: null + tier: default + test-manifest-loader: null # don't load tests in the taskgraph + mozharness: + script: + by-test-platform: + android-em.*: android_emulator_unittest.py + android-hw.*: android_hardware_unittest.py + default: desktop_unittest.py + config: + by-test-platform: + android-em-7.*: + - android/android_common.py + - android/android-x86_64.py + android-hw.*: + - android/android_common.py + - android/android_hw.py + linux.*: + - unittests/linux_unittest.py + - remove_executables.py + macosx.*: + - unittests/mac_unittest.py + windows.*: + - unittests/win_unittest.py + +crashtest: + description: "Crashtest run" + schedules-component: crashtest + treeherder-symbol: R(C) + chunks: + by-test-platform: + android-em-7.*: 1 + linux.*64-tsan-qr/opt: 32 + default: 1 + variants: + - no-fission + - webrender-sw+no-fission + - webrender-sw + run-on-projects: + by-variant: + webrender-sw+no-fission: + by-test-platform: + android-em-7.0-x86_64-qr/debug: built-projects + linux1804-64-qr/debug: ['trunk'] + linux1804-64(-shippable|-asan)?-qr/opt: ['trunk'] + default: [] + webrender-sw: + by-test-platform: + macosx101.*64-qr/debug: built-projects + linux.*-64-qr/debug: built-projects + linux.*-64(-tsan|-asan)-qr/opt: built-projects + windows.*-asan-qr/opt: built-projects + windows1.*-64.*-qr/debug: built-projects + default: [] + no-fission: + by-test-platform: + android-em-7.0-x86_64-qr/debug-isolated-process: [] + linux1804-64-qr/debug: ['trunk'] + linux1804-64(-shippable|-asan)?-qr/opt: ['trunk'] + android.*: built-projects + default: [] + default: + by-test-platform: + android.*: [] + .*wayland/debug.*: [] + default: built-projects + max-run-time: 3600 + tier: + by-test-platform: + android-hw-.*-qr/.*: 2 + android-em-7.0-x86_64-qr/debug-isolated-process: 3 + default: default + +crashtest-qr: + description: "Crashtest Webrender run" + schedules-component: crashtest + treeherder-symbol: R(C) + chunks: 1 + variants: + - no-fission + run-on-projects: + by-variant: + no-fission: built-projects + default: [] + max-run-time: 1200 + tier: 2 + virtualization: virtual + +jsreftest: + description: "JS Reftest run" + schedules-component: jsreftest + treeherder-symbol: R(J) + instance-size: default + chunks: + by-test-platform: + android-hw.*\/debug: 12 + android-hw.*/(opt|pgo)?: 6 + windows.*-asan-qr/opt: 3 + windows.*-ccov-qr/opt: 5 + windows.*\/opt: 2 + linux.*64-ccov.*/.*: 5 + linux1804-64-qr/opt: 4 + linux.*/debug: 5 + .*-tsan-qr/opt: 8 + macosx.*-64-ccov.*/.*: 5 + macosx.*-64(-shippable)?/opt: 2 + default: 3 + max-run-time: + by-test-platform: + .*ccov.*: 7200 + .*-wayland/debug.*: 5400 + default: 3600 + variants: + - no-fission + run-on-projects: + by-variant: + no-fission: + by-test-platform: + linux1804-64-qr/debug: ['trunk'] + linux1804-64(-shippable|-asan)?-qr/opt: ['trunk'] + android-hw-.*-aarch64(?:-shippable)?-qr/.*: ['mozilla-central', 'release'] + android-hw-.*-arm7(?:-shippable)?-qr/.*: ['mozilla-central', 'release'] + android.*: built-projects + default: [] + default: + by-test-platform: + android.*/.*: [] + default: built-projects + virtualization: virtual + +reftest: + description: "Reftest run" + treeherder-symbol: R(R) + virtualization: virtual-with-gpu + chunks: + by-test-platform: + android-em-7.*: 6 + linux1804-64(-shippable|-devedition|-qr)?/opt: 5 + linux.*64-tsan-qr/opt: 32 + macosx101.*-64-shippable(-qr)?/opt: 3 + macosx101.*-64/debug: 4 + macosx101.*-64(-ccov.*|-qr)/debug: 6 + windows.*64.*/debug: 4 + windows.*32.*/debug: 6 + windows.*-ccov-qr/opt: 9 + windows10.*asan.*: 3 + windows10.*/opt: 2 + windows11.*/opt: 3 + default: 8 + variants: + - no-fission + - webrender-dcomp-disabled + - webrender-dcomp-present + - webrender-dcomp-overlays + - webrender-dcomp-compositing # Should match default + - webrender-sw+no-fission + - webrender-sw + run-on-projects: + by-variant: + webrender-sw+no-fission: + by-test-platform: + android-em-7.0-x86_64-qr/debug: built-projects + linux1804-64-qr/debug: ['trunk'] + linux1804-64(-shippable|-asan)?-qr/opt: ['trunk'] + default: [] + webrender-sw: + by-test-platform: + linux1804-64-qr/debug: built-projects + linux1804-64(-asan|-tsan)-qr/opt: built-projects + macosx101.*64-qr/debug: built-projects + windows.*-asan-qr/opt: built-projects + default: [] + no-fission: + by-test-platform: + android-em-7.0-x86_64-qr/debug-isolated-process: [] + linux1804-64-qr/debug: ['trunk'] + linux1804-64(-shippable|-asan)?-qr/opt: ['trunk'] + android.*: built-projects + default: [] + default: + by-test-platform: + android.*/.*: [] + .*wayland.*: [] + linux.*asan/opt: [] + default: built-projects + max-run-time: + by-test-platform: + windows.*-32-mingwclang-qr/debug: 5400 + windows.*-ccov.*/.*: 5400 + windows.*-asan-qr/opt: 5400 + macosx.*64-ccov.*/.*: 5400 + default: 3600 + mozharness: + chunked: + by-test-platform: + android-em.*: false + macosx.*64/opt: false + windows.*/opt: false + default: true + tier: + by-test-platform: + android-em-7.0-x86_64-qr/debug-isolated-process: 3 + default: default + +reftest-qr: + description: "Reftest webrender run" + treeherder-symbol: R(R) + chunks: 2 + variants: + - no-fission + - webrender-sw+no-fission + run-without-variant: false + run-on-projects: + by-variant: + webrender-sw+no-fission: + by-test-platform: + android-hw-p5-13-0-android-aarch64-qr/debug: built-projects + default: [] + no-fission: built-projects + max-run-time: 2400 + mozharness: + chunked: true + tier: 2 + virtualization: virtual + +reftest-snapshot: + description: "Reftest snapshot" + treeherder-symbol: R(Rs) + virtualization: virtual + run-on-projects: + by-test-platform: + linux1804-64-qr/debug: ['trunk'] + default: [] + tier: default + chunks: 8 + mozharness: + chunked: true diff --git a/taskcluster/ci/test/talos.yml b/taskcluster/ci/test/talos.yml new file mode 100644 index 0000000000..f622eef18e --- /dev/null +++ b/taskcluster/ci/test/talos.yml @@ -0,0 +1,777 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + max-run-time: 3600 + suite: talos + tier: + by-test-platform: + macosx1100.*: 2 + default: default + virtualization: hardware + mozharness: + script: talos_script.py + config: + by-test-platform: + macosx.*: + - talos/mac_config.py + windows.*: + - talos/windows_config.py + default: + - talos/linux_config.py + test-manifest-loader: null # don't load tests in the taskgraph + +talos-bcv: + description: Talos basic compositor video + try-name: bcv + treeherder-symbol: T(bcv) + variants: + - webrender-sw + run-on-projects: + by-variant: + webrender-sw: + by-test-platform: + (linux1804|macosx1015|windows10)-64-shippable-qr/opt: [trunk] + (windows10-64|macosx1015-64).*-qr.*: [trunk] + default: [] + default: + by-test-platform: + windows.*-32.*: [] + default: [trunk] + max-run-time: 1800 + mozharness: + extra-options: + - --suite=bcv + +talos-bcv-profiling: + description: Talos basic compositor video with gecko profiling + try-name: bcv-prof + treeherder-symbol: T-Prof(bcv) + tier: 2 + run-on-projects: [] + max-run-time: 1800 + mozharness: + extra-options: + - --suite=bcv + - --gecko-profile + +talos-chrome: + description: Talos chrome + try-name: chromez + treeherder-symbol: T(c) + variants: + - webrender-sw + run-on-projects: + by-test-platform: + windows.*-32.*: [] + (linux|windows10-64|macos)(?!.*shippable).*: [] + (linux|windows10-64|macosx1015)(?!.*-qr).*: [] + default: [trunk] + max-run-time: 1800 + mozharness: + extra-options: + - --suite=chromez + +talos-chrome-profiling: + description: Talos chrome with gecko profiling + try-name: chromez-prof + treeherder-symbol: T-Prof(c) + tier: 2 + max-run-time: 1200 + run-on-projects: [] + mozharness: + extra-options: + - --suite=chromez + - --gecko-profile + +talos-damp-inspector: + description: Talos devtools inspector (damp-inspector) + try-name: damp-inspector + treeherder-symbol: T(damp-inspector) + max-run-time: 5400 + variants: + - webrender-sw + run-on-projects: + by-variant: + webrender-sw: + by-test-platform: + (linux1804|windows10|macosx1015)-64-shippable-qr.*: [trunk] + default: [] + default: + by-test-platform: + windows.*-32-shippable.*/.*: [] + (linux|windows|macos)(?!.*shippable).*: [] + (linux|windows10-64|macos)(?!.*-qr).*: [] + default: [trunk] + mozharness: + extra-options: + - --suite=damp-inspector + +talos-damp-webconsole: + description: Talos devtools webconsole (damp-webconsole) + try-name: damp-webconsole + treeherder-symbol: T(damp-webconsole) + max-run-time: 5400 + variants: + - webrender-sw + run-on-projects: + by-variant: + webrender-sw: + by-test-platform: + (linux1804|windows10|macosx1015)-64-shippable-qr.*: [trunk] + default: [] + default: + by-test-platform: + windows.*-32-shippable.*/.*: [] + (linux|windows|macos)(?!.*shippable).*: [] + (linux|windows10-64|macos)(?!.*-qr).*: [] + default: [trunk] + mozharness: + extra-options: + - --suite=damp-webconsole + +talos-damp-other: + description: Talos devtools other (damp-other) + try-name: damp-other + treeherder-symbol: T(damp-other) + max-run-time: 5400 + variants: + - webrender-sw + run-on-projects: + by-variant: + webrender-sw: + by-test-platform: + (linux1804|windows10|macosx1015)-64-shippable-qr.*: [trunk] + default: [] + default: + by-test-platform: + windows.*-32-shippable.*/.*: [] + (linux|windows|macos)(?!.*shippable).*: [] + (linux|windows10-64|macos)(?!.*-qr).*: [] + default: [trunk] + mozharness: + extra-options: + - --suite=damp-other + +talos-damp-inspector-profiling: + description: Talos devtools inspector (damp-inspector) with gecko profiling + try-name: damp-inspector-prof + treeherder-symbol: T-Prof(damp-inspector) + tier: 2 + max-run-time: 5400 + run-on-projects: [] + mozharness: + extra-options: + - --suite=damp-inspector + - --gecko-profile + +talos-damp-webconsole-profiling: + description: Talos devtools webconsole (damp-webconsole) with gecko profiling + try-name: damp-webconsole-prof + treeherder-symbol: T-Prof(damp-webconsole) + tier: 2 + max-run-time: 5400 + run-on-projects: [] + mozharness: + extra-options: + - --suite=damp-webconsole + - --gecko-profile + +talos-damp-other-profiling: + description: Talos devtools other (damp-other) with gecko profiling + try-name: damp-other-prof + treeherder-symbol: T-Prof(damp-other) + tier: 2 + max-run-time: 5400 + run-on-projects: [] + mozharness: + extra-options: + - --suite=damp-other + - --gecko-profile + +talos-dromaeojs: + description: Talos dromaeojs + try-name: dromaeojs + treeherder-symbol: T(d) + max-run-time: 2100 + run-on-projects: + by-test-platform: + windows.*-32.*: [] + (linux|windows10-64|macos)(?!.*shippable).*: [] + (linux|windows10-64|macosx1015)(?!.*-qr).*: [] + default: [trunk] + mozharness: + extra-options: + - --suite=dromaeojs + +talos-dromaeojs-profiling: + description: Talos dromaeojs with gecko profiling + try-name: dromaeojs-prof + treeherder-symbol: T-Prof(d) + tier: 2 + max-run-time: 2100 + run-on-projects: [] + mozharness: + extra-options: + - --suite=dromaeojs + - --gecko-profile + +talos-g1: + description: Talos g1 + try-name: g1 + treeherder-symbol: T(g1) + variants: + - webrender-sw + run-on-projects: + by-variant: + webrender-sw: + by-test-platform: + (linux1804|windows10|macosx.*)-64-shippable-qr.*: [trunk] + default: [] + default: + by-test-platform: + windows.*-32.*: [] + (linux|windows10-64|macos)(?!.*shippable).*: [] + (linux|windows10-64|macosx1015)(?!.*-qr).*: [] + default: [trunk] + max-run-time: + by-test-platform: + linux1804-64.*: 3600 + default: 7200 + mozharness: + extra-options: + - --suite=g1 + +talos-g1-profiling: + description: Talos g1 with gecko profiling + try-name: g1-prof + treeherder-symbol: T-Prof(g1) + tier: 2 + run-on-projects: [] + max-run-time: + by-test-platform: + linux1804-64.*: 3600 + default: 7200 + mozharness: + extra-options: + - --suite=g1 + - --gecko-profile + +talos-g3: + description: Talos g3 + try-name: g3 + treeherder-symbol: T(g3) + variants: + - webrender-sw + run-on-projects: + by-variant: + webrender-sw: + by-test-platform: + (linux1804|windows10|macosx.*)-64-shippable-qr.*: [trunk] + default: [] + default: + by-test-platform: + windows.*-32.*: [] + (linux|windows10-64|macos)(?!.*shippable).*: [] + (linux|windows10-64|macosx1015)(?!.*-qr).*: [] + default: [trunk] + max-run-time: 900 + mozharness: + extra-options: + - --suite=g3 + +talos-g3-profiling: + description: Talos g3 with gecko profiling + try-name: g3-prof + treeherder-symbol: T-Prof(g3) + tier: 2 + max-run-time: 900 + run-on-projects: [] + mozharness: + extra-options: + - --suite=g3 + - --gecko-profile + +talos-g4: + description: Talos g4 + try-name: g4 + treeherder-symbol: T(g4) + variants: + - webrender-sw + run-on-projects: + by-variant: + webrender-sw: + by-test-platform: + (linux1804|windows10|macosx1015)-64-shippable-qr/opt: [trunk] + default: [] + default: + by-test-platform: + windows.*-32.*: [] + (linux|windows10-64|macos)(?!.*shippable).*: [] + (linux|windows10-64|macos)(?!.*-qr).*: [] + default: [trunk] + max-run-time: + by-test-platform: + linux1804-64.*: 1500 + default: 1800 + mozharness: + extra-options: + - --suite=g4 + +talos-g4-profiling: + description: Talos g4 with gecko profiling + try-name: g4-prof + treeherder-symbol: T-Prof(g4) + tier: 2 + max-run-time: + by-test-platform: + linux1804-64.*: 1500 + default: 1800 + run-on-projects: [] + mozharness: + extra-options: + - --suite=g4 + - --gecko-profile + +talos-g5: + description: Talos g5 + try-name: g5 + treeherder-symbol: T(g5) + mozharness: + extra-options: + - --suite=g5 + variants: + - webrender-sw + run-on-projects: + by-variant: + webrender-sw: + by-test-platform: + (linux1804|windows10|macosx.*)-64-shippable-qr.*: [trunk] + default: [] + default: + by-test-platform: + windows.*-32.*: [] + (linux|windows10-64|macos)(?!.*shippable).*: [] + (linux|windows10-64|macosx1015)(?!.*-qr).*: [] + default: [trunk] + max-run-time: + by-test-platform: + linux1804-64.*: 1200 + macosx.*: 2400 + default: 1800 + +talos-g5-profiling: + description: Talos g5 with gecko profiling + try-name: g5-prof + treeherder-symbol: T-Prof(g5) + tier: 2 + run-on-projects: [] + mozharness: + extra-options: + - --suite=g5 + - --gecko-profile + max-run-time: + by-test-platform: + linux1804-64.*: 1200 + default: 1800 + +talos-h1: + description: Talos h1 + try-name: h1 + treeherder-symbol: T(h1) + run-on-projects: + by-test-platform: + windows.*-32.*: [] + (linux|windows10-64|macos)(?!.*shippable).*: [] + (linux|windows10-64|macosx1015)(?!.*-qr).*: [] + default: [trunk] + mozharness: + extra-options: + - --suite=h1 + max-run-time: + by-test-platform: + linux1804-64.*: 900 + default: 1800 + +talos-h2: + description: Talos h2 + try-name: h2 + treeherder-symbol: T(h2) + run-on-projects: + by-test-platform: + windows.*-32.*: [] + (linux|windows10-64|macos)(?!.*shippable).*: [] + (linux|windows10-64|macosx1015)(?!.*-qr).*: [] + default: [trunk] + max-run-time: + by-test-platform: + linux1804-64.*: 900 + default: 7200 + mozharness: + extra-options: + - --suite=h2 + +talos-motionmark: + description: Talos motionmark + try-name: motionmark + treeherder-symbol: T(mm) + run-on-projects: + by-test-platform: + (linux|windows10-64|macos)(?!.*shippable).*: [] + (linux|windows10-64|macos)(?!.*-qr).*: [] + default: [mozilla-central] + max-run-time: 3600 + tier: 2 + mozharness: + extra-options: + - --suite=motionmark + +talos-motionmark-profiling: + description: Talos motionmark with gecko profiling + try-name: motionmark-prof + treeherder-symbol: T-Prof(mm) + run-on-projects: [] + max-run-time: 3600 + tier: 2 + mozharness: + extra-options: + - --suite=motionmark + - --gecko-profile + +talos-other: + description: Talos other + try-name: other + treeherder-symbol: T(o) + variants: + - webrender-sw + run-on-projects: + by-variant: + webrender-sw: + by-test-platform: + (linux1804|windows10|macosx.*)-64-shippable-qr.*: [trunk] + default: [] + default: + by-test-platform: + windows.*-32.*: [] + (linux|windows10-64|macos)(?!.*shippable).*: [] + (linux|windows10-64|macosx1015)(?!.*-qr).*: [] + default: [trunk] + max-run-time: 1500 + mozharness: + extra-options: + - --suite=other + +talos-other-profiling: + description: Talos other with gecko profiling + try-name: other-prof + treeherder-symbol: T-Prof(o) + run-on-projects: [] + tier: 2 + max-run-time: 1500 + mozharness: + extra-options: + - --suite=other + - --gecko-profile + +talos-sessionrestore-many-windows: + description: Talos sessionrestore-many-windows + try-name: sessionrestore-many-windows + treeherder-symbol: T(smw) + variants: + - webrender-sw + run-on-projects: + by-variant: + webrender-sw: + by-test-platform: + (linux1804|windows10|macosx.*)-64-shippable-qr.*: [mozilla-central, autoland] + default: [] + default: + by-test-platform: + windows.*-32.*: [] + (linux|windows10-64|macos)(?!.*shippable).*: [] + (linux|windows10-64|macosx1015)(?!.*-qr).*: [] + default: [mozilla-central, autoland] + max-run-time: 1500 + mozharness: + extra-options: + - --suite=sessionrestore-many-windows + +talos-sessionrestore-many-windows-profiling: + description: Talos sessionrestore-many-windows with gecko profiling + try-name: sessionrestore-many-windows-prof + treeherder-symbol: T-Prof(smw) + tier: 2 + run-on-projects: [] + max-run-time: 1500 + mozharness: + extra-options: + - --suite=sessionrestore-many-windows + - --gecko-profile + +talos-perf-reftest: + description: Talos perf-reftest + try-name: perf-reftest + treeherder-symbol: T(p) + variants: + - webrender-sw + run-on-projects: + by-variant: + webrender-sw: + by-test-platform: + (linux1804|windows10|macosx.*)-64-shippable-qr.*: [trunk] + default: [] + default: + by-test-platform: + windows.*-32.*: [] + (linux|windows10-64|macos)(?!.*shippable).*: [] + (linux|windows10-64|macosx1015)(?!.*-qr).*: [] + default: [trunk] + max-run-time: 1200 + mozharness: + extra-options: + - --suite=perf-reftest + +talos-perf-reftest-profiling: + description: Talos perf-reftest with gecko profiling + try-name: perf-reftest-prof + treeherder-symbol: T-Prof(p) + tier: 2 + run-on-projects: [] + max-run-time: 1200 + mozharness: + extra-options: + - --suite=perf-reftest + - --gecko-profile + +talos-perf-reftest-singletons: + description: Talos perf-reftest singletons + try-name: perf-reftest-singletons + treeherder-symbol: T(ps) + run-on-projects: + by-test-platform: + windows.*-32.*: [] + (linux|windows10-64|macos)(?!.*shippable).*: [] + (linux|windows10-64|macosx1015)(?!.*-qr).*: [] + default: [trunk] + max-run-time: 1500 + mozharness: + extra-options: + - --suite=perf-reftest-singletons + +talos-perf-reftest-singletons-profiling: + description: Talos perf-reftest singletons with gecko profiling + try-name: perf-reftest-singletons-prof + treeherder-symbol: T-Prof(ps) + tier: 2 + run-on-projects: [] + max-run-time: 1500 + mozharness: + extra-options: + - --suite=perf-reftest-singletons + - --gecko-profile + +talos-svgr: + description: Talos svgr + try-name: svgr + treeherder-symbol: T(s) + variants: + - webrender-sw + run-on-projects: + by-variant: + webrender-sw: + by-test-platform: + (linux1804|windows10|macosx.*)-64-shippable-qr.*: [trunk] + default: [] + default: + by-test-platform: + windows.*-32.*: [] + (linux|windows10-64|macos)(?!.*shippable).*: [] + (linux|windows10-64|macosx1015)(?!.*-qr).*: [] + default: [trunk] + max-run-time: 1800 + mozharness: + extra-options: + - --suite=svgr + +talos-svgr-profiling: + description: Talos svgr with gecko profiling + try-name: svgr-prof + treeherder-symbol: T-Prof(s) + tier: 2 + run-on-projects: [] + max-run-time: 1800 + mozharness: + extra-options: + - --suite=svgr + - --gecko-profile + +talos-tp5o: + description: Talos tp5o + try-name: tp5o + treeherder-symbol: T(tp) + variants: + - webrender-sw + run-on-projects: + by-variant: + webrender-sw: + by-test-platform: + (linux1804|windows10|macosx.*)-64-shippable-qr.*: [trunk] + default: [] + default: + by-test-platform: + windows.*-32.*: [] + (linux|windows10-64|macos)(?!.*shippable).*: [] + (linux|windows10-64|macosx1015)(?!.*-qr).*: [] + default: [trunk] + max-run-time: 1800 + mozharness: + extra-options: + - --suite=tp5o + +talos-tp5o-profiling: + description: Talos tp5o with gecko profiling + try-name: tp5o-prof + treeherder-symbol: T-Prof(tp) + tier: 2 + run-on-projects: [] + max-run-time: 1800 + mozharness: + extra-options: + - --suite=tp5o + - --gecko-profile + +talos-tabswitch: + description: Talos page scroll (tabswitch) + try-name: tabswitch + treeherder-symbol: T(tabswitch) + variants: + - webrender-sw + run-on-projects: [] + max-run-time: 1800 + mozharness: + extra-options: + - --suite=tabswitch + +talos-tabswitch-profiling: + description: Talos page scroll (tabswitch) with gecko profiling + try-name: tabswitch-prof + treeherder-symbol: T-Prof(tabswitch) + tier: 2 + run-on-projects: [] + max-run-time: 1200 + mozharness: + extra-options: + - --suite=tabswitch + - --gecko-profile + +talos-webgl: + description: Talos WebGL + try-name: webgl + treeherder-symbol: T(webgl) + variants: + - webrender-sw + - webgl-ipc + run-on-projects: + by-variant: + webgl-ipc: + by-test-platform: + (linux1804|windows10|macosx1015)-64.*: [trunk] + default: [] + webrender-sw: + by-test-platform: + (linux1804|windows10|macosx1015)-64-shippable-qr.*: [trunk] + default: [] + default: + by-test-platform: + windows.*-32.*: [] + (linux|windows10-64|macos)(?!.*shippable).*: [] + (linux|windows10-64|macos)(?!.*-qr).*: [] + default: [trunk] + max-run-time: 2100 + mozharness: + extra-options: + by-test-platform: + windows10-64-ref-hw.*: + - --suite=webgl + - --skip-preflight + default: + - --suite=webgl + +talos-webgl-profiling: + description: Talos WebGL with gecko profiling + try-name: webgl + treeherder-symbol: T-Prof(webgl) + tier: 2 + variants: + - webgl-ipc + run-on-projects: [] + max-run-time: 1800 + mozharness: + extra-options: + - --suite=webgl + - --gecko-profile + - --setpref=dom.media.webcodecs.enabled=true + +talos-xperf: + description: Talos xperf + try-name: xperf + treeherder-symbol: T(x) + virtualization: virtual + os-groups: [Administrators] + run-as-administrator: + by-test-platform: + windows.*32.*: false + windows10.*64.*: true + windows11.*64.*: true + variants: + - webrender-sw + run-on-projects: + by-test-platform: + windows.*-32-shippable(?:-qr)?/.*: [] + windows10.*-shippable-qr/.*: [trunk] + windows11.*-shippable-qr/.*: [trunk] + default: [] + mozharness: + extra-options: + by-test-platform: + windows.*: + - --suite=xperf + # Disable the GPU process due to bug 1868737. There are + # sandbox related issues with using the GPU process when + # running xperf as an administrator which cause us to fail + # due to generating minidumps. + - --setpref=layers.gpu-process.enabled=false + default: + - --suite=xperf + config: + by-test-platform: + windows.*: + - talos/windows_vm_config.py + +talos-realworld-webextensions: + description: Talos tests with realworld WebExtensions + try-name: realworld-webextensions + treeherder-symbol: T(realwebext) + run-on-projects: + by-test-platform: + windows.*-32.*: [] + (linux|windows10-64|macos)(?!.*shippable).*: [] + (linux|windows10-64|macosx1015)(?!.*-qr).*: [] + default: [trunk] + max-run-time: 1500 + mozharness: + extra-options: + - --suite=realworld-webextensions + +talos-realworld-webextensions-profiling: + description: Talos tests with realworld WebExtensions with gecko profiling + try-name: realworld-webextensions-prof + treeherder-symbol: T-Prof(realwebext) + tier: 2 + run-on-projects: [] + max-run-time: 1500 + mozharness: + extra-options: + - --suite=realworld-webextensions + - --gecko-profile diff --git a/taskcluster/ci/test/test-platforms.yml b/taskcluster/ci/test/test-platforms.yml new file mode 100644 index 0000000000..777652f191 --- /dev/null +++ b/taskcluster/ci/test/test-platforms.yml @@ -0,0 +1,505 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +# This file maps build platforms to test platforms. In some cases, a +# single build may be tested on multiple test platforms, but a single test +# platform can only link to one build platform. Both build and test platforms +# are represented as <platform>/<type>, where <type> is what Treeherder calls a +# collection. +# +# Each test platform further specifies the set of tests that will be scheduled +# for the platform, referring to tests defined in test-sets.yml. +# +# Note that set does not depend on the tree; tree-dependent job selection +# should be performed in the target task selection phase of task-graph +# generation. + + +## +# Linux platforms (matching /linux.*/) +# Linux1804-64 uses Ubuntu 18.04 and is run on docker + +linux1804-32-qr/debug: + build-platform: linux/debug + test-sets: + - linux32-gtest + +linux1804-32-qr/opt: + build-platform: linux/opt + test-sets: + - linux32-tests + - linux32-gtest + +linux1804-32-shippable-qr/opt: + build-platform: linux-shippable/opt + test-sets: + - linux32-tests + - linux32-gtest + +linux1804-64-qr/opt: + build-platform: linux64/opt + test-sets: + - awsy + - desktop-screenshot-capture + - linux1804-tests + - mochitest-webgpu + - web-platform-tests + - web-platform-tests-backlog + - talos + - browsertime + +linux1804-64-shippable-qr/opt: + build-platform: linux64-shippable/opt + test-sets: + - awsy + - desktop-screenshot-capture + - linux1804-tests + - mochitest-webgpu + - web-platform-tests + - web-platform-tests-backlog + - talos + - talos-profiling + - browsertime + - browsertime-profiling + +linux1804-64-nightlyasrelease-qr/opt: + build-platform: linux64-nightlyasrelease/opt + test-sets: + - browsertime + +linux1804-64-qr/debug: + build-platform: linux64/debug + test-sets: + - linux1804-tests + - mochitest-webgpu + - web-platform-tests + +linux1804-64-asan-qr/opt: + build-platform: linux64-asan/opt + test-sets: + - linux1804-tests + - mochitest-webgpu + - web-platform-tests + +linux1804-64-tsan-qr/opt: + build-platform: linux64-tsan/opt + test-sets: + - linux1804-tests + - mochitest-webgpu + - web-platform-tests + +linux1804-64-ccov-qr/opt: + build-platform: linux64-ccov/opt + test-sets: + - ccov-code-coverage-tests + - linux1804-tests + - linux1804-ccov-tests + - mochitest-webgpu + - web-platform-tests + +linux1804-64-devedition-qr/opt: + build-platform: linux64-devedition/opt + test-sets: + - desktop-screenshot-capture + - linux1804-tests + - web-platform-tests + +linux1804-64-clang-trunk-qr/opt: + build-platform: linux64-plain-clang-trunk/opt + test-sets: + - awsy + - browsertime-clang + +linux2204-64-wayland/debug: + build-platform: linux64/debug + test-sets: + - linux2204-wayland-tests + - web-platform-tests + +linux2204-64-wayland/opt: + build-platform: linux64/opt + test-sets: + - linux2204-wayland-tests + - web-platform-tests + +linux2204-64-wayland-shippable/opt: + build-platform: linux64-shippable/opt + test-sets: + - linux2204-wayland-tests + - web-platform-tests + +## +# Windows platforms (matching /windows.*/) + +# win32 +windows10-32-shippable-qr/opt: + build-platform: win32-shippable/opt + build-signing-label: build-signing-win32-shippable/opt + test-sets: + - browsertime + - talos-profiling + - windows-talos + +windows10-32-qr/opt: + build-platform: win32/opt + test-sets: + - browsertime + - windows-talos + + +# win11-32 +windows11-32-2009-shippable-qr/opt: + build-platform: win32-shippable/opt + build-signing-label: build-signing-win32-shippable/opt + test-sets: + - awsy + - desktop-screenshot-capture + - web-platform-tests + - windows32-2009-tests + +windows11-32-2009-qr/opt: + build-platform: win32/opt + build-signing-label: build-signing-win32/opt + test-sets: + - awsy + - desktop-screenshot-capture + - web-platform-tests + - windows32-2009-tests + +windows11-32-2009-qr/debug: + build-platform: win32/debug + build-signing-label: build-signing-win32/debug + test-sets: + - web-platform-tests + - windows32-2009-tests + +windows11-32-2009-mingwclang-qr/debug: + build-platform: win32-mingwclang/debug + test-sets: + - mingwclang-win32-tests-debug + +windows11-32-2009-mingwclang-qr/opt: + build-platform: win32-mingwclang/opt + test-sets: + - mingwclang-tests-opt + +# win64 +windows10-64-qr/opt: + build-platform: win64/opt + test-sets: + - windows-talos + - browsertime + +windows10-64-ref-hw-2017-qr/opt: + build-platform: win64-shippable/opt + test-sets: + - talos-ref-hw + +windows11-64-2009-hw-ref-shippable/opt: + build-platform: win64-shippable/opt + build-signing-label: + by-variant: + msix: repackage-signing-msix-win64/opt + default: build-signing-win64/opt + test-sets: + - windows-ref-hw-tests + +windows11-64-2009-hw-ref/opt: + build-platform: win64/opt + build-signing-label: + by-variant: + msix: repackage-signing-msix-win64/opt + default: build-signing-win64/opt + test-sets: + - windows-ref-hw-tests + +windows10-64-shippable-qr/opt: + build-platform: win64-shippable/opt + test-sets: + - talos-profiling + - windows-talos + - browsertime + +windows10-64-nightlyasrelease-qr/opt: + build-platform: win64-nightlyasrelease/opt + test-sets: + - browsertime + +# win10-64 2004 +windows10-64-2009-qr/debug: + build-platform: win64/debug + build-signing-label: + by-variant: + msix: repackage-signing-msix-win64/debug + default: build-signing-win64/debug + test-sets: + - windows10-2009-tests + +windows10-64-2009-qr/opt: + build-platform: win64/opt + build-signing-label: + by-variant: + msix: repackage-signing-msix-win64/opt + default: build-signing-win64/opt + test-sets: + - windows10-2009-tests + +windows10-64-2009-shippable-qr/opt: + build-platform: win64-shippable/opt + build-signing-label: + by-variant: + msix: repackage-signing-shippable-l10n-msix-win64-shippable/opt + default: build-signing-win64-shippable/opt + test-sets: + - windows10-2009-tests + +# win11-64 2009 +windows11-64-2009-ccov-qr/opt: + build-platform: win64-ccov/opt + build-signing-label: build-signing-win64-ccov/opt + test-sets: + - desktop-screenshot-capture + - ccov-code-coverage-tests + - windows11-64-2009-ccov-tests + - windows11-2009-tests + +windows11-64-2009-qr/debug: + build-platform: win64/debug + build-signing-label: + by-variant: + msix: repackage-signing-msix-win64/debug + default: build-signing-win64/debug + test-sets: + - web-platform-tests + - windows11-2009-tests + +windows11-64-2009-qr/opt: + build-platform: win64/opt + build-signing-label: + by-variant: + msix: repackage-signing-msix-win64/opt + default: build-signing-win64/opt + test-sets: + - awsy + - desktop-screenshot-capture + - web-platform-tests + - web-platform-tests-backlog + - windows11-2009-tests + - talos-xperf + +windows11-64-2009-shippable-qr/opt: + build-platform: win64-shippable/opt + build-signing-label: + by-variant: + msix: repackage-signing-shippable-l10n-msix-win64-shippable/opt + default: build-signing-win64-shippable/opt + test-sets: + - awsy + - desktop-screenshot-capture + - web-platform-tests + - web-platform-tests-backlog + - windows11-2009-tests + - talos-xperf + +windows11-64-2009-devedition-qr/opt: + build-platform: win64-devedition/opt + build-signing-label: build-signing-win64-devedition/opt + test-sets: + - desktop-screenshot-capture + - web-platform-tests + - windows11-2009-tests + +windows11-64-2009-asan-qr/opt: + build-platform: win64-asan/opt + test-sets: + - windows11-2009-tests + +windows11-64-2009-mingwclang-qr/debug: + build-platform: win64-mingwclang/debug + test-sets: + - mingwclang-tests-debug + +windows11-64-2009-mingwclang-qr/opt: + build-platform: win64-mingwclang/opt + test-sets: + - mingwclang-tests-opt + + +## +# MacOS X platforms (matching /macosx.*/) + +macosx1100-64-qr/debug: + build-platform: macosx64/debug + build-signing-label: repackage-macosx64/debug + test-sets: + - macosx1100-64-jittests + +macosx1100-64-aarch64-qr/debug: + build-platform: macosx64-aarch64/debug + build-signing-label: repackage-macosx64-aarch64/debug + test-sets: + - macosx1100-aarch64-qr-tests + +macosx1100-64-shippable-qr/opt: + build-platform: macosx64-shippable/opt + build-signing-label: repackage-macosx64-shippable/opt + test-sets: + - macosx1100-64-jittests + - macosx1100-64-qr-tests + # - macosx64-talos + # - browsertime-high-priority + +macosx1015-64-shippable-qr/opt: + build-platform: macosx64-shippable/opt + test-sets: + - awsy + - browsertime + - browsertime-profiling + - desktop-screenshot-capture + - macosx1015-64-qr-tests + - macosx64-talos + - talos-profiling + - web-platform-tests + - web-platform-tests-backlog + +macosx1015-64-nightlyasrelease-qr/opt: + build-platform: macosx64-nightlyasrelease/opt + test-sets: + - browsertime + +macosx1015-64-devedition-qr/opt: + build-platform: macosx64-devedition/opt + test-sets: + - macosx1015-64-qr-tests + - web-platform-tests + +macosx1015-64-qr/opt: + build-platform: macosx64/opt + test-sets: + - desktop-screenshot-capture + - macosx1015-64-qr-tests + - web-platform-tests + - web-platform-tests-backlog + - browsertime + +macosx1015-64-qr/debug: + build-platform: macosx64/debug + test-sets: + - macosx1015-64-qr-tests + - web-platform-tests + +macosx1015-64-ccov-qr/opt: + build-platform: macosx64-ccov/opt + test-sets: + - macosx1015-64-qr-tests + +macosx1400-64-shippable-qr/opt: + build-platform: macosx64-shippable/opt + test-sets: + - macosx1400-64-qr-tests + +## +# Android platforms (matching /android-em.*/) +# +# android-em test platforms execute on android emulators. + +android-em-7.0-x86_64-qr/opt: + build-platform: android-x86_64/opt + test-sets: + - android-x86_64-tests + - web-platform-tests-backlog + +android-em-7.0-x86_64-lite-qr/opt: + build-platform: android-x86_64-lite/opt + test-sets: + - android-x86_64-tests + - web-platform-tests-backlog + +android-em-7.0-x86_64-shippable-qr/opt: + build-platform: android-x86_64-shippable/opt + test-sets: + - android-x86_64-tests + - web-platform-tests-backlog + +android-em-7.0-x86_64-shippable-lite-qr/opt: + build-platform: android-x86_64-shippable-lite/opt + test-sets: + - android-x86_64-tests + - web-platform-tests-backlog + +android-em-7.0-x86_64-qr/debug: + build-platform: android-x86_64/debug + test-sets: + - android-x86_64-tests + +android-em-7.0-x86_64-qr/debug-isolated-process: + build-platform: android-x86_64/debug-isolated-process + test-sets: + - android-x86_64-tests + +android-em-7.0-x86-qr/opt: + build-platform: android-x86/opt + test-sets: + - android-x86-tests + +# android-hw test platforms execute on real devices attached to Autophone hosts. + +# android-hw-a51-11-0 Samsung Galaxy A51 Android 11.0 + +android-hw-a51-11-0-aarch64-qr/opt: + build-platform: android-aarch64/opt + test-sets: + - android-hw-browsertime +# - android-hw-browsertime-power + +android-hw-a51-11-0-aarch64-shippable-qr/opt: + build-platform: android-aarch64-shippable/opt + test-sets: + - android-hw-browsertime +# - android-hw-browsertime-power + +# android-hw-p5-13-0 Google Pixel 5 Android 13.0 + +android-hw-p5-13-0-arm7-qr/opt: + build-platform: android-arm/opt + test-sets: + - android-hw-arm7-pgo-unittests + +android-hw-p5-13-0-arm7-shippable-qr/opt: + build-platform: android-arm-shippable/opt + test-sets: + - android-hw-arm7-pgo-unittests + +android-hw-p5-13-0-arm7-qr/debug: + build-platform: android-arm/debug + test-sets: + - android-hw-arm7-debug-unittests + +android-hw-p5-13-0-android-aarch64-qr/debug: + build-platform: android-aarch64/debug + test-sets: + - android-hw-aarch64 + - android-hw-aarch64-debug-unittests + +android-hw-p5-13-0-android-aarch64-qr/opt: + build-platform: android-aarch64/opt + test-sets: + - android-hw-aarch64 + - android-hw-aarch64-opt-unittests + +android-hw-p5-13-0-android-aarch64-shippable-qr/opt: + build-platform: android-aarch64-shippable/opt + test-sets: + - android-hw-aarch64 + - android-hw-aarch64-pgo-unittests + +android-hw-p6-13-0-android-aarch64-shippable-qr/opt: + build-platform: android-aarch64-shippable/opt + test-sets: + - android-hw-speedometer-tests + +android-hw-s21-13-0-android-aarch64-shippable-qr/opt: + build-platform: android-aarch64-shippable/opt + test-sets: + - android-hw-speedometer-tests diff --git a/taskcluster/ci/test/test-sets.yml b/taskcluster/ci/test/test-sets.yml new file mode 100644 index 0000000000..90ef2145fe --- /dev/null +++ b/taskcluster/ci/test/test-sets.yml @@ -0,0 +1,499 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +# Each key in this file specifies a set of tests to run. Different test sets +# may, for example, be bound to different test platforms. +# +# Note that set does not depend on the tree; tree-dependent job selection +# should be performed in the target task selection phase of task-graph +# generation. +# +# A test set has a name, and a list of tests that it contains. +# +# Test names given here reference tests.yml. + +### Feature-specific test groups + +web-platform-tests: + - web-platform-tests + - web-platform-tests-crashtest + - web-platform-tests-privatebrowsing + - web-platform-tests-print-reftest + - web-platform-tests-reftest + - web-platform-tests-wdspec + - web-platform-tests-webgpu + - web-platform-tests-canvas + +web-platform-tests-backlog: + - web-platform-tests-backlog + - web-platform-tests-reftest-backlog + +mochitest-devtools-chrome: + - mochitest-devtools-chrome + +mochitest-webgpu: + - mochitest-webgpu + +talos: + - talos-bcv + - talos-chrome + - talos-damp-inspector + - talos-damp-webconsole + - talos-damp-other + - talos-dromaeojs + - talos-g1 + - talos-g3 + - talos-g4 + - talos-g5 + - talos-other + - talos-sessionrestore-many-windows + - talos-svgr + - talos-tp5o + - talos-perf-reftest + - talos-perf-reftest-singletons + - talos-tabswitch + - talos-realworld-webextensions + - talos-webgl + # - talos-h1 Bug 1487031 - Disabled for not finding actionable regressions + # - talos-h2 Bug 1487031 - Disabled for not finding actionable regressions + +talos-profiling: + - talos-bcv-profiling + - talos-chrome-profiling + # - talos-damp-profiling - Disabled b/c of Bug 1597734 + - talos-dromaeojs-profiling + - talos-g1-profiling + - talos-g3-profiling + - talos-g4-profiling + - talos-g5-profiling + - talos-motionmark-profiling + - talos-other-profiling + - talos-sessionrestore-many-windows-profiling + - talos-perf-reftest-profiling + - talos-perf-reftest-singletons-profiling + - talos-svgr-profiling + - talos-tp5o-profiling + - talos-tabswitch-profiling + - talos-realworld-webextensions-profiling + - talos-webgl-profiling + +talos-ref-hw: + - talos-webgl + +browsertime: + - browsertime-tp6 + - browsertime-tp6-essential + - browsertime-tp6-bytecode + - browsertime-tp6-live + - browsertime-tp6-live-sheriffed + - browsertime-tp6-webextensions + - browsertime-benchmark + - browsertime-benchmark-wasm + - browsertime-youtube-playback + - browsertime-youtube-playback-power + - browsertime-custom + - browsertime-first-install + - browsertime-responsiveness + - browsertime-regression-tests + - browsertime-upload + - browsertime-speculative + - browsertime-throttled + - browsertime-pageload-benchmark + - browsertime-indexeddb + +browsertime-clang: + - browsertime-tp6 + - browsertime-tp6-essential + - browsertime-tp6-bytecode + - browsertime-tp6-live + - browsertime-tp6-live-sheriffed + - browsertime-tp6-webextensions + - browsertime-benchmark + - browsertime-benchmark-wasm + - browsertime-youtube-playback + - browsertime-responsiveness + +browsertime-profiling: + - browsertime-tp6-profiling + +browsertime-high-priority: + - browsertime-benchmark + - browsertime-tp6 + +awsy: + - awsy + - awsy-base + - awsy-dmd + - awsy-base-dmd + - awsy-tp6 + +ccov-code-coverage-tests: + - test-coverage + - test-coverage-wpt + +mochitest-valgrind: + - mochitest-valgrind + +desktop-screenshot-capture: + - mochitest-browser-screenshots + +### Specific platform test sets + +# Linux +linux32-gtest: + - gtest + +linux32-tests: + - web-platform-tests + +linux1804-tests: + - cppunittest + - crashtest + - firefox-ui-functional + - gtest + # - jittest # See comment in linux1804-ccov-tests set. + - jsreftest + - marionette + - mochitest-a11y + - mochitest-browser-a11y + - mochitest-browser-chrome + - mochitest-browser-media + - mochitest-chrome + - mochitest-chrome-gpu + - mochitest-devtools-chrome + - mochitest-media + - mochitest-plain + - mochitest-plain-gpu + - mochitest-remote + - mochitest-webgl1-core + - mochitest-webgl1-ext + - mochitest-webgl2-core + - mochitest-webgl2-ext + - reftest + - reftest-snapshot + - telemetry-tests-client + - test-verify + - test-verify-gpu + - test-verify-wpt + - xpcshell + +linux1804-ccov-tests: + # jittest run on regular linux builds is redundant with SM(p), so we omit it + # from the linux1804-tests and linux1804-qr-tests sets. But, we still want + # to run it on ccov builds, so we have this set that has it and which runs + # on ccov builds. + - jittest + +linux2204-wayland-tests: + - mochitest-plain + - cppunittest + - crashtest + - firefox-ui-functional + - gtest + - jsreftest + - marionette + - mochitest-a11y + - mochitest-browser-a11y + - mochitest-browser-chrome + - mochitest-browser-chrome-failures + - mochitest-browser-media + - mochitest-chrome + - mochitest-chrome-gpu + - mochitest-devtools-chrome + - mochitest-media + - mochitest-plain + - mochitest-plain-gpu + - mochitest-remote + - mochitest-webgl1-core + - mochitest-webgl1-ext + - mochitest-webgl2-core + - mochitest-webgl2-ext + - reftest + - reftest-snapshot + - telemetry-tests-client + - test-verify + - test-verify-gpu + - test-verify-wpt + - xpcshell + +# Windows +windows32-2009-tests: + - cppunittest + - crashtest + - gtest + - firefox-ui-functional + - jsreftest + - marionette + - mochitest-a11y + - mochitest-browser-a11y + - mochitest-browser-chrome + - mochitest-browser-media + - mochitest-chrome + - mochitest-chrome-gpu + - mochitest-media + - mochitest-plain + - mochitest-plain-gpu + - mochitest-remote + - mochitest-webgpu + - reftest + - telemetry-tests-client + - test-verify + - test-verify-gpu + - test-verify-wpt + - xpcshell + +windows10-2009-tests: + - cppunittest + - gtest + - mochitest-chrome + - mochitest-chrome-gpu + - mochitest-plain + - mochitest-plain-gpu + - xpcshell + +windows11-64-2009-ccov-tests: + - jittest + - test-coverage + - web-platform-tests + - web-platform-tests-crashtest + - web-platform-tests-print-reftest + - web-platform-tests-reftest + - web-platform-tests-wdspec + +windows11-2009-tests: + - cppunittest + - crashtest + - firefox-ui-functional + - gtest + - jsreftest + - marionette + - mochitest-a11y + - mochitest-browser-a11y + - mochitest-browser-chrome + - mochitest-browser-media + - mochitest-chrome + - mochitest-chrome-gpu + - mochitest-devtools-chrome + - mochitest-media + - mochitest-plain + - mochitest-plain-gpu + - mochitest-remote + - mochitest-webgpu + - mochitest-webgl1-core + - mochitest-webgl1-ext + - mochitest-webgl2-core + - mochitest-webgl2-ext + - reftest + - telemetry-tests-client + - test-verify + - test-verify-gpu + - test-verify-wpt + - xpcshell + +mingwclang-tests-debug: + - cppunittest + - firefox-ui-functional + - mochitest-a11y + - mochitest-chrome-gpu + - mochitest-plain-gpu + - mochitest-webgl1-core + - mochitest-webgl1-ext + - mochitest-webgl2-core + - mochitest-webgl2-ext + - mochitest-webgpu + - reftest + - telemetry-tests-client + +# The following is the same as the above block, minus reftests. +# Reftests were disabled due to frequent hangs; see bug 1642719 +# for re-enabling. +mingwclang-win32-tests-debug: + - cppunittest + - firefox-ui-functional + - mochitest-a11y + - mochitest-chrome-gpu + - mochitest-plain-gpu + - mochitest-webgl1-core + - mochitest-webgl1-ext + - mochitest-webgl2-core + - mochitest-webgl2-ext + - mochitest-webgpu + # - reftest - disabled, see bug 1642719 + - telemetry-tests-client + +mingwclang-tests-opt: + - cppunittest + - mochitest-chrome-gpu + - mochitest-plain-gpu + +windows-talos: + - talos-bcv + - talos-chrome + - talos-damp-inspector + - talos-damp-webconsole + - talos-damp-other + - talos-dromaeojs + - talos-g1 + - talos-g4 + - talos-g5 + - talos-other + - talos-sessionrestore-many-windows + - talos-perf-reftest + - talos-perf-reftest-singletons + - talos-svgr + - talos-tp5o + - talos-tabswitch + - talos-realworld-webextensions + - talos-webgl + # - talos-h1 Bug 1487031 - Disabled for not finding actionable regressions + +windows-ref-hw-tests: + - mochitest-media + +talos-xperf: + - talos-xperf + +# macOS +macosx1100-64-jittests: + - jittest + +macosx1100-64-qr-tests: + - crashtest + - jsreftest + - mochitest-browser-a11y + - mochitest-browser-chrome + - mochitest-browser-media + - mochitest-chrome-gpu + - mochitest-media + - mochitest-webgpu + - mochitest-webgl1-core + - mochitest-webgl1-ext + - mochitest-webgl2-core + - mochitest-webgl2-ext + - reftest + - xpcshell + +macosx1100-aarch64-qr-tests: + - mochitest-media + +macosx1015-64-qr-tests: + - cppunittest + - crashtest + - firefox-ui-functional + - gtest + - jittest + - jsreftest + - marionette + - mochitest-a11y + - mochitest-browser-a11y + - mochitest-browser-chrome + - mochitest-browser-media + - mochitest-chrome + - mochitest-chrome-gpu + - mochitest-devtools-chrome + - mochitest-media + - mochitest-plain + - mochitest-plain-gpu + - mochitest-remote + - mochitest-webgl1-core + - mochitest-webgl1-ext + - mochitest-webgl2-core + - mochitest-webgl2-ext + - mochitest-webgpu + - reftest + - telemetry-tests-client + - test-verify + - test-verify-gpu + - test-verify-wpt + - xpcshell + +macosx64-talos: + - talos-bcv + - talos-chrome + - talos-damp-inspector + - talos-damp-webconsole + - talos-damp-other + - talos-dromaeojs + - talos-g1 + - talos-g4 + - talos-g5 + - talos-other + - talos-sessionrestore-many-windows + - talos-svgr + - talos-tp5o + - talos-perf-reftest + - talos-perf-reftest-singletons + - talos-realworld-webextensions + - talos-webgl + - talos-tabswitch + # - talos-h1 # too long to unpack profile- Bug 1442893 + +macosx1400-64-qr-tests: + - browsertime-benchmark + +# Android + +android-x86_64-tests: + - cppunittest + - crashtest + - geckoview-junit + - gtest + - mochitest-media + - mochitest-plain + - mochitest-plain-gpu + # - mochitest-webgl1-core # Harness issues? + # - mochitest-webgl1-ext + # - mochitest-webgl2-core # Emulator not creating ES3? + # - mochitest-webgl2-ext + - reftest + - test-verify + - web-platform-tests + - web-platform-tests-crashtest + - web-platform-tests-reftest + - web-platform-tests-wdspec + - xpcshell + +android-x86-tests: + - cppunittest + +android-hw-aarch64-opt-unittests: + - jittest + +android-hw-arm7-pgo-unittests: + - jittest-all + +android-hw-aarch64-pgo-unittests: + - jittest + +android-hw-arm7-debug-unittests: + - jittest + +android-hw-aarch64-debug-unittests: + - jittest + +android-hw-aarch64: + - crashtest-qr + - reftest-qr + - mochitest-media + - mochitest-webgl1-core + - mochitest-webgl1-ext + - mochitest-webgl2-core + +android-hw-browsertime: + - browsertime-tp6m + - browsertime-tp6m-essential + - browsertime-tp6m-webextensions + - browsertime-tp6m-live + - browsertime-benchmark-speedometer-mobile + - browsertime-benchmark-speedometer3-mobile + - browsertime-youtube-playback-mobile + - browsertime-benchmark-unity-webgl-mobile + - browsertime-benchmark-motionmark + +android-hw-browsertime-profiling: + - browsertime-tp6m-profiling + +android-hw-speedometer-tests: + - browsertime-benchmark-speedometer-mobile + - browsertime-benchmark-speedometer3-mobile diff --git a/taskcluster/ci/test/variants.yml b/taskcluster/ci/test/variants.yml new file mode 100644 index 0000000000..1bfe00d001 --- /dev/null +++ b/taskcluster/ci/test/variants.yml @@ -0,0 +1,324 @@ +--- +1proc: + description: "{description} with e10s disabled" + component: "Testing::General" + expiration: "never" + suffix: "1proc" + mozinfo: "e10s" + merge: + mozharness: + extra-options: + - "--disable-e10s" + - "--disable-fission" + +headless: + description: "{description} without a window" + component: "Firefox::Headless" + expiration: "never" + suffix: "headless" + mozinfo: "headless" + replace: + tier: 2 + merge: + mozharness: + extra-options: + - "--headless" + +a11y-checks: + description: "{description} with accessibility checks enabled" + component: "Core::Disability Access APIs" + expiration: "2024-03-01" + suffix: "a11y-checks" + mozinfo: "a11y_checks" + replace: + tier: 2 + merge: + mozharness: + extra-options: + - "--enable-a11y-checks" + +aab: + description: "{description} with aab test_runner" + component: "GeckoView::General" + expiration: "2024-03-01" + when: &gv_e10s_filter + $eval: '"android" in task["test-platform"]' + suffix: "aab" + # Need to add jdk but there isn't a good way to do that + # so we just replace the toolchain list + merge: + fetches: + toolchain: + - android-system-image-x86_64-linux + - android-avd-x86_64-linux + - android-emulator-linux + - linux64-minidump-stackwalk + - linux64-fix-stacks + - linux64-jdk + replace: + target: "geckoview-test_runner.aab" + +geckoview-no-fission: + description: "{description} without fission enabled" + component: "GeckoView::Sandboxing" + expiration: "2024-03-01" + when: + <<: *gv_e10s_filter + suffix: "nofis" + mozinfo: "fission" + merge: + mozharness: + extra-options: + - "--disable-fission" + +geckoview-fission: + description: "{description} with fission enabled and default isolation strategy" + component: "GeckoView::Sandboxing" + expiration: "2024-03-01" + when: + <<: *gv_e10s_filter + suffix: "fis" + mozinfo: "fission" + +geckoview-fission-isolate-high-value: + description: "{description} with fission enabled and isolation strategy isolateHighValue" + component: "GeckoView::Sandboxing" + expiration: "2024-03-01" + when: + <<: *gv_e10s_filter + suffix: "fis-hv" + mozinfo: "fission-high-value" + merge: + mozharness: + extra-options: + - "--setpref=fission.webContentIsolationStrategy=2" + +no-fission: + description: "{description} without fission enabled" + component: "Core::DOM: Content Processes" + expiration: "2024-03-01" + suffix: "nofis" + mozinfo: "fission" + merge: + mozharness: + extra-options: + - "--disable-fission" + +xorigin: + description: "{description} with cross-origin" + component: "Core::DOM: Content Processes" + expiration: "never" + suffix: "xorig" + mozinfo: "xorigin" + replace: + e10s: true + merge: + mozharness: + extra-options: + - "--enable-xorigin-tests" + - "--setpref=privacy.partition.always_partition_third_party_non_cookie_storage=false" + +conditioned_profile: + description: "{description} with conditioned profile" + component: "Testing::General" + expiration: "2024-03-01" + suffix: "condprof" + mozinfo: "condprof" + merge: + mozharness: + extra-options: + - "--conditioned-profile" + replace: + chunks: 8 + +socketprocess: + description: "{description} with socket process enabled" + component: "Core::Networking" + expiration: "2024-09-01" + suffix: "spi" + mozinfo: "socketprocess_e10s" + merge: + mozharness: + extra-options: + - "--setpref=media.peerconnection.mtransport_process=true" + - "--setpref=network.process.enabled=true" + +socketprocess_networking: + description: "{description} with networking on socket process enabled" + component: "Core::Networking" + expiration: "2024-09-01" + suffix: "spi-nw" + mozinfo: "socketprocess_networking" + merge: + mozharness: + extra-options: + - "--setpref=network.process.enabled=true" + - "--setpref=network.http.network_access_on_socket_process.enabled=true" + +# - +# Webrender DComp variants for Win10 + +webrender-dcomp-disabled: + description: "{description} with dcomp disabled" + component: "Core::Graphics: WebRender" + expiration: "2024-03-01" + suffix: "wr-dc0" + when: + $eval: '"windows1" in task["test-platform"]' + merge: + mozharness: + extra-options: + - "--setpref=gfx.webrender.dcomp-win.enabled=false" + - "--setpref=gfx.webrender.dcomp-video-overlay-win=false" + - "--setpref=gfx.webrender.dcomp-video-overlay-win.force-enabled=false" + - "--setpref=gfx.webrender.compositor=false" + - "--setpref=gfx.webrender.compositor.force-enabled=false" + +webrender-dcomp-present: # Default variant ends up like this. + description: "{description} with dcomp present but not overlays" + component: "Core::Graphics: WebRender" + expiration: "2024-03-01" + suffix: "wr-dc1-p" + when: + $eval: '"windows1" in task["test-platform"]' + merge: + mozharness: + extra-options: + - "--setpref=gfx.webrender.dcomp-win.enabled=true" + - "--setpref=gfx.webrender.dcomp-video-overlay-win=false" + - "--setpref=gfx.webrender.dcomp-video-overlay-win.force-enabled=false" + - "--setpref=gfx.webrender.compositor=false" + - "--setpref=gfx.webrender.compositor.force-enabled=false" + +webrender-dcomp-overlays: + description: "{description} with dcomp overlays but not compositing" + component: "Core::Graphics: WebRender" + expiration: "2024-03-01" + suffix: "wr-dc2-o" + when: + $eval: '"windows1" in task["test-platform"]' + merge: + mozharness: + extra-options: + - "--setpref=gfx.webrender.dcomp-win.enabled=true" + - "--setpref=gfx.webrender.dcomp-video-overlay-win=true" + - "--setpref=gfx.webrender.dcomp-video-overlay-win.force-enabled=true" + - "--setpref=gfx.webrender.compositor=false" + - "--setpref=gfx.webrender.compositor.force-enabled=false" + +webrender-dcomp-compositing: + description: "{description} with dcomp compositing" + component: "Core::Graphics: WebRender" + expiration: "2024-03-01" + suffix: "wr-dc3-c" + when: + $eval: '"windows1" in task["test-platform"]' + merge: + mozharness: + extra-options: + - "--setpref=gfx.webrender.dcomp-win.enabled=true" + - "--setpref=gfx.webrender.dcomp-video-overlay-win=true" + - "--setpref=gfx.webrender.dcomp-video-overlay-win.force-enabled=true" + - "--setpref=gfx.webrender.compositor=true" + - "--setpref=gfx.webrender.compositor.force-enabled=true" + +# - + +webrender-sw: + description: "{description} with software webrender enabled" + component: "Core::Graphics: WebRender" + expiration: "2024-03-01" + suffix: "swr" + mozinfo: "swgl" + merge: + webrender: true + mozharness: + extra-options: + - "--setpref=gfx.webrender.software=true" + +webgl-ipc: + description: "{description} with WebGL IPC process enabled" + component: "Core::Graphics: CanvasWebGL" + expiration: "2024-03-01" + suffix: "gli" + merge: + mozharness: + extra-options: + - "--setpref=webgl.out-of-process=true" + - "--setpref=security.sandbox.content.headless=true" + +devtools-no-eft: + description: "{description} with DevTools EFT disabled" + component: "DevTools::Framework" + expiration: "2024-03-01" + suffix: "dt-no-eft" + merge: + mozharness: + extra-options: + - "--setpref=devtools.every-frame-target.enabled=false" + +wmf-media-engine: + description: "{description} with Windows Media Foundation media engine enabled" + component: "Core::Audio/Video: Playback" + expiration: "2024-04-10" + when: + $eval: '"windows1" in task["test-platform"]' + suffix: "wmfme" + mozinfo: "wmfme" + replace: + tier: 2 + merge: + mozharness: + extra-options: + - "--tag=media-engine-compatible" + - "--setpref=media.wmf.media-engine.enabled=1" + - "--setpref=media.wmf.media-engine.channel-decoder.enabled=true" + - "--setpref=media.eme.wmf.clearkey.enabled=true" + +media-gpu: + description: "{description} for running media tests on the GPU worker" + component: "Core::Audio/Video: Playback" + expiration: "2024-04-21" + suffix: "mda-gpu" + mozinfo: "mda_gpu" + merge: + virtualization: virtual-with-gpu + mozharness: + extra-options: + - "--tag=media-gpu" + - "--setpref=media.hardware-video-decoding.force-enabled=true" + +msix: + description: "{description} from msix packages" + component: "Firefox:Installer" + expiration: "never" + suffix: "msix" + mozinfo: "msix" + when: + $eval: '"windows1" in task["test-platform"] && "-64" in task["test-platform"] && ("opt" in task["test-platform"] || "debug" in task["test-platform"]) && !("asan" in task["test-platform"]) && !("ccov" in task["test-platform"])' + merge: + mozharness: + extra-options: + - "--installer-path installer.msix" + +http3: + description: "{description} with http3 server" + component: "Core::Networking" + expiration: "2024-09-01" + suffix: "http3" + mozinfo: "http3" + merge: + mozharness: + extra-options: + - "--use-http3-server" + +http2: + description: "{description} with http2 server" + component: "Core::Networking" + expiration: "2024-09-01" + suffix: "http2" + mozinfo: "http2" + merge: + mozharness: + extra-options: + - "--use-http2-server" diff --git a/taskcluster/ci/test/web-platform.yml b/taskcluster/ci/test/web-platform.yml new file mode 100644 index 0000000000..5f850d16c1 --- /dev/null +++ b/taskcluster/ci/test/web-platform.yml @@ -0,0 +1,598 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + suite: + category: web-platform-tests + instance-size: xlarge + max-run-time: + by-test-platform: + android-em-7.0-x86_64/debug: 7200 + default: 5400 + mozharness: + script: web_platform_tests.py + config: + by-test-platform: + windows.*: + - web_platform_tests/prod_config_windows_taskcluster.py + macosx.*: + - web_platform_tests/prod_config_mac.py + android-em.*: + - android/android-x86_64.py + - web_platform_tests/prod_config_android.py + default: + - web_platform_tests/prod_config.py + - remove_executables.py + target: + by-test-platform: + android-em-7.0-x86_64-shippable(-lite)?-qr/opt: geckoview-test_runner.apk + android-em-7.0-x86_64(-lite)?-qr/opt: geckoview-test_runner.apk + android-em-7.0-x86_64(-lite)?-qr/debug(-isolated-process)?: geckoview-test_runner.apk + default: null + +web-platform-tests: + description: "Web platform test run" + suite: web-platform-tests + treeherder-symbol: W(wpt) + virtualization: virtual + tier: + by-test-platform: + android-em-7.0-x86_64-qr/debug-isolated-process: 3 + default: default + chunks: + by-test-platform: + android.*/debug: 32 + android.*: 24 + linux.*64-tsan-qr/opt: 32 + linux.*64-asan(-qr)?/opt: 22 + linux.*64-ccov.*/opt: 20 + linux.*/debug: 16 + macosx.*/debug: 18 + windows.*32.*/opt: 12 + windows.*/debug: 16 + windows.*-ccov.*/opt: 14 + default: 10 + max-run-time: + by-test-platform: + .*-ccov.*/.*: 10800 + linux.*64(-tsan|-asan)-qr/opt: 14400 + linux.*64(-qr)?/debug: 10800 + macosx.*/debug: 10800 + android-em.*/.*: 10800 + default: 7200 + variants: + - no-fission + - webrender-sw+no-fission + - webrender-sw + run-on-projects: + by-variant: + webrender-sw: + by-test-platform: + .*-32.*/.*: [] + linux.*64-qr/debug: built-projects + windows.*-qr/debug: built-projects + android-em-7.0-x86_64-qr/debug: [] + default: [] + webrender-sw+no-fission: + by-test-platform: + .*-32.*/.*: [] + android-em-7.0-x86_64-qr/debug: built-projects + linux.*64-qr/debug: built-projects + default: [] + no-fission: + by-test-platform: + android-em-7.0-x86_64-qr/debug-isolated-process: [] + android.*: built-projects + linux1804-64-qr/debug: ['trunk'] + linux1804-64(-shippable|-asan)?-qr/opt: ['trunk'] + default: [] + default: + by-test-platform: + android.*: [] + .*wayland.*: [] + default: built-projects + mozharness: + chunked: true + extra-options: + - --test-type=testharness + - --skip-implementation-status=backlog + - --skip-implementation-status=not-implementing + - --skip-timeout + - --skip-crash + # Because we have a separate job for them, don't run the (core) + # webgpu/* tests in the main WPT runs. (but still run tests in dirs + # other than webgpu/* that are tagged webgpu, e.g. canvas tests) + - --exclude-tag=webgpu + - --exclude-tag=canvas + +web-platform-tests-backlog: + description: "Web platform test (backlog) run" + treeherder-symbol: W-b(wpt) + variants: + - no-fission + chunks: + by-test-platform: + android.*: 3 + default: 2 + max-run-time: + by-test-platform: + android.*/opt: 7200 + default: 3600 + run-on-projects: + by-variant: + no-fission: + by-test-platform: + android.*: ['mozilla-central'] + default: [] + default: + by-test-platform: + android.*: [] + .*wayland.*: [] + default: ['mozilla-central'] + test-manifest-loader: null # don't load tests in the taskgraph + tier: 2 + mozharness: + chunked: true + extra-options: + - --test-type=testharness + - --skip-implementation-status=implementing + - --skip-implementation-status=not-implementing + - --backlog + - --exclude-tag=webgpu + +web-platform-tests-privatebrowsing: + description: "Web platform privatebrowsing test run" + suite: web-platform-tests + treeherder-symbol: W(pb) + virtualization: virtual + tier: default + chunks: 1 + max-run-time: 1800 + variants: [] # We don't need sw or nofis testing. + run-on-projects: + by-test-platform: + android.*: [] + macos.*: [] + .*-(wayland).*/.*: [] + default: built-projects + mozharness: + chunked: true + extra-options: + - --test-type=testharness + - --default-exclude + - --setpref=browser.privatebrowsing.autostart=true + - --setpref=dom.cache.privateBrowsing.enabled=true + - --tag=privatebrowsing + +web-platform-tests-reftest: + description: "Web platform reftest run" + schedules-component: web-platform-tests-reftest + treeherder-symbol: W(Wr) + virtualization: + by-test-platform: + windows.*-64.*-qr/.*: virtual-with-gpu + default: virtual + chunks: + by-test-platform: + .*-ccov.*/.*: 8 + linux.*64-tsan-qr/opt: 16 + linux1804-64(-asan)?-qr/.*: 6 + macosx10.*-64/debug: 6 + macosx10.*-64/opt: 3 + windows.*-(32|64)(-qr)?/debug: 5 + android.*: 6 + default: 4 + variants: + - no-fission + - webrender-sw+no-fission + - webrender-sw + run-on-projects: + by-variant: + webrender-sw: + by-test-platform: + .*-32.*/.*: [] + linux.*64-qr/debug: built-projects + windows.*-qr/debug: built-projects + default: [] + webrender-sw+no-fission: + by-test-platform: + android-em-7.0-x86_64-qr/debug: built-projects + linux1804-64-qr/debug: ['trunk'] + linux1804-64(-shippable|-asan)?-qr/opt: ['trunk'] + default: [] + no-fission: + by-test-platform: + android-em-7.0-x86_64-qr/debug-isolated-process: [] + linux1804-64-qr/debug: ['trunk'] + linux1804-64(-shippable|-asan)?-qr/opt: ['trunk'] + android.*: built-projects + default: [] + default: + by-test-platform: + android.*: [] + .*wayland.*: [] + default: built-projects + tier: + by-test-platform: + android-em-7.0-x86_64-qr/debug-isolated-process: 3 + default: default + mozharness: + extra-options: + - --test-type=reftest + - --skip-implementation-status=backlog + - --skip-implementation-status=not-implementing + - --skip-timeout + - --skip-crash + +web-platform-tests-webgpu: + description: "Web platform WebGPU test run" + suite: web-platform-tests + treeherder-symbol: W(webgpu) + virtualization: virtual-with-gpu + tier: + by-test-platform: + .*-32.*/.*: 3 + android.*: 3 # https://bugzilla.mozilla.org/show_bug.cgi?id=1849914 + macos.*: 3 # https://bugzilla.mozilla.org/show_bug.cgi?id=1849913 + linux2204.*-64.*: 3 # https://bugzilla.mozilla.org/show_bug.cgi?id=1849912 + windows.*-64.*: 3 # https://bugzilla.mozilla.org/show_bug.cgi?id=1849911 + default: 3 + # Choice of `chunks`: + # Time-to-TEST-START on Windows is ~7m (~9m for debug). + # (though we're working on reducing this!) + # Devs would love ~10-15m runs, but we don't want to be more than + # 50% overhead, so let's aim for 15m (20m debug) + chunks: + by-test-platform: + linux2204.*-64.*: 15 + macos.*: 20 + windows.*-64.*/opt.*: 15 + windows.*-64.*/debug.*: 20 + default: 10 + max-run-time: + by-test-platform: + .*/debug: 5400 # 90m + default: 3200 # 60m + variants: [] # We don't need sw or nofis testing. + run-on-projects: + by-test-platform: + android.*: [] # Out of scope + linux1804.*: [] # We don't support anything less than Mesa Lavapipe 22.1.2, so this is _out_. + .*-wayland/debug.*: [] # https://bugzilla.mozilla.org/show_bug.cgi?id=1864700 + default: ['mozilla-central'] + mozharness: + chunked: true + extra-options: + by-test-platform: + macos.*: + - --test-type=testharness + - --default-exclude + - --tag=webgpu + - --exclude-tag=canvas + - --setpref=gfx.webgpu.ignore-blocklist=true + default: + - --test-type=testharness + - --default-exclude + - --tag=webgpu + - --exclude-tag=canvas + +web-platform-tests-canvas: + description: "Web platform Canvas test run" + suite: web-platform-tests + treeherder-symbol: W(canvas) + virtualization: virtual-with-gpu + tier: + by-test-platform: + android-em-7.0-x86_64-qr/debug-isolated-process: 3 + default: default + chunks: + by-test-platform: + windows.*: 2 + .*tsan.*: 2 + linux.*/debug: 2 + linux.*asan.*: 2 + default: 1 + max-run-time: + by-test-platform: + .*tsan.*: 3600 + default: 1800 + variants: + - no-fission + - webrender-sw+no-fission + - webrender-sw + run-on-projects: + by-variant: + webrender-sw: + by-test-platform: + .*-32.*/.*: [] + linux.*64-qr/debug: built-projects + windows.*-qr/debug: built-projects + android-em-7.0-x86_64-qr/debug: [] + default: [] + webrender-sw+no-fission: + by-test-platform: + .*-32.*/.*: [] + android-em-7.0-x86_64-qr/debug: built-projects + linux.*64-qr/debug: built-projects + default: [] + no-fission: + by-test-platform: + android-em-7.0-x86_64-qr/debug-isolated-process: [] + android.*: built-projects + linux1804-64-qr/debug: ['trunk'] + linux1804-64(-shippable|-asan)?-qr/opt: ['trunk'] + default: [] + default: + by-test-platform: + android.*: [] + .*wayland.*: [] + default: built-projects + mozharness: + chunked: true + extra-options: + - --test-type=testharness + - --skip-implementation-status=backlog + - --skip-implementation-status=not-implementing + - --skip-timeout + - --skip-crash + # Because we have a separate job for them, don't run the (core) + # webgpu/* tests in the main WPT runs. (but still run tests in dirs + # other than webgpu/* that are tagged webgpu, e.g. canvas tests) + - --default-exclude + - --tag=canvas + - --exclude-tag=webgpu + +web-platform-tests-reftest-backlog: + description: "Web platform reftest (backlog) run" + schedules-component: web-platform-tests-reftest + treeherder-symbol: W-b(Wr) + virtualization: virtual + chunks: 1 + variants: + - no-fission + run-on-projects: + by-variant: + no-fission: + by-test-platform: + android.*: ['mozilla-central'] + default: [] + default: + by-test-platform: + android.*: [] + .*wayland.*: [] + default: ['mozilla-central'] + test-manifest-loader: null # don't load tests in the taskgraph + tier: 2 + mozharness: + extra-options: + - --test-type=reftest + - --skip-implementation-status=implementing + - --skip-implementation-status=not-implementing + - --backlog + - --exclude-tag=webgpu + +web-platform-tests-wdspec: + description: "Web platform webdriver-spec run" + schedules-component: web-platform-tests-wdspec + treeherder-symbol: W(Wd) + chunks: + by-test-platform: + .*-ccov.*/.*: 4 + .*-tsan.*/.*: 8 + default: 3 + mozharness: + extra-options: + by-test-platform: + android-em-7.*: + - --test-type=wdspec + - --setpref=gfx.canvas.accelerated=false + default: + - --test-type=wdspec + variants: + - no-fission + - webrender-sw+no-fission + - webrender-sw + - headless + run-on-projects: + by-variant: + webrender-sw+no-fission: + by-test-platform: + android-em-7.0-x86_64-qr/debug: built-projects + linux1804-64-qr/debug: ['trunk'] + linux1804-64(-shippable|-asan)?-qr/opt: ['trunk'] + default: [] + webrender-sw: + by-test-platform: + android-em-7.0-x86_64-qr/debug: [] + .*-32.*/.*: [] + linux.*64-qr/debug: built-projects + windows.*-qr/debug: built-projects + default: [] + headless: + by-test-platform: + android.*: [] + .*wayland.*: [] + default: built-projects + no-fission: + by-test-platform: + linux1804-64-qr/debug: ['trunk'] + linux1804-64(-shippable|-asan)?-qr/opt: ['trunk'] + android.*: built-projects + default: [] + default: + by-test-platform: + android.*: [] + .*wayland.*: [] + default: built-projects + tier: default + fetches: + toolchain: + by-test-platform: + android-em-7.*: + - android-system-image-x86_64-linux + - android-avd-x86_64-linux + - android-emulator-linux + - linux64-geckodriver + - linux64-minidump-stackwalk + - linux64-fix-stacks + linux.*64.*: + - linux64-geckodriver + - linux64-minidump-stackwalk + - linux64-fix-stacks + linux.*32.*: + - linux32-geckodriver + - linux64-minidump-stackwalk + - linux64-fix-stacks + macosx.*: + - macosx64-geckodriver + - macosx64-minidump-stackwalk + - macosx64-fix-stacks + win.*-32.*: + - win32-geckodriver + - win32-minidump-stackwalk + - win32-fix-stacks + win.*-64.*: + - win64-geckodriver + - win32-minidump-stackwalk + - win32-fix-stacks + default: + - linux64-minidump-stackwalk + - linux64-fix-stacks + - linux64-geckodriver + +web-platform-tests-crashtest: + description: "Web platform crashtests run" + schedules-component: web-platform-tests-crashtest + treeherder-symbol: W(Wc) + chunks: 1 + mozharness: + extra-options: + - --test-type=crashtest + variants: + - no-fission + - webrender-sw + - webrender-sw+no-fission + run-on-projects: + by-variant: + webrender-sw: + by-test-platform: + android-em-7.0-x86_64-qr/debug: built-projects + .*-32.*/.*: [] + linux.*64-qr/debug: built-projects + macosx101.*64-qr/debug: built-projects + windows.*-qr/debug: built-projects + default: [] + webrender-sw+no-fission: + by-test-platform: + android-em-7.0-x86_64-qr/debug: built-projects + linux1804-64-qr/debug: ['trunk'] + linux1804-64(-shippable|-asan)?-qr/opt: ['trunk'] + default: [] + no-fission: + by-test-platform: + android-em-7.0-x86_64-qr/debug-isolated-process: [] + linux1804-64-qr/debug: ['trunk'] + linux1804-64(-shippable|-asan)?-qr/opt: ['trunk'] + android.*: built-projects + default: [] + default: + by-test-platform: + android.*: [] + android-em-7.0-x86_64-qr/debug: built-projects + default: built-projects + tier: default + +web-platform-tests-print-reftest: + description: "Web platform print-reftest run" + schedules-component: web-platform-tests-print-reftest + treeherder-symbol: W(Wp) + chunks: 1 + test-manifest-loader: null # don't load tests in the taskgraph + tier: default + variants: + - no-fission + - webrender-sw + - webrender-sw+no-fission + run-on-projects: + by-variant: + webrender-sw: + by-test-platform: + android.*: [] + .*-32.*/.*: [] + linux.*64-qr/debug: built-projects + windows.*-qr/debug: built-projects + default: [] + webrender-sw+no-fission: + by-test-platform: + android-em-7.0-x86_64-qr/debug: built-projects + linux1804-64-qr/debug: ['trunk'] + linux1804-64(-shippable|-asan)?-qr/opt: ['trunk'] + default: [] + no-fission: + by-test-platform: + linux1804-64-qr/debug: ['trunk'] + linux1804-64(-shippable|-asan)?-qr/opt: ['trunk'] + android.*: built-projects + default: [] + default: + by-test-platform: + android.*: [] + .*wayland.*: [] + default: built-projects + mozharness: + extra-options: + - --test-type=print-reftest + +test-verify-wpt: + description: "Extra verification of web-platform tests modified on this push" + suite: + category: test-verify + name: test-verify-wpt + treeherder-symbol: TVw + max-run-time: 10800 + run-on-projects: + by-test-platform: + # do not run on asan, ccov, shippable or wayland + .*-(asan|ccov|shippable|wayland).*/.*: [] + # do not run on beta or release: usually just confirms earlier results + default: ['integration'] + built-projects-only: true + test-manifest-loader: null # don't load tests in the taskgraph + optimization: + test-verify: ["test-verify-wpt"] + tier: 2 + mozharness: + extra-options: + - --verify + +test-coverage-wpt: + description: "Per web-platform test coverage" + suite: + category: test-coverage + name: test-coverage-wpt + schedules-component: test-coverage-wpt + treeherder-symbol: TCw + max-run-time: 10800 + variants: + - no-fission + - webrender-sw+no-fission + run-on-projects: + by-variant: + webrender-sw+no-fission: + by-test-platform: + android-em-7.0-x86_64-qr/debug: built-projects + default: [] + no-fission: + by-test-platform: + android-em-7.0-x86_64-qr/debug: built-projects + default: [] + default: + by-test-platform: + .*-ccov.*/.*: built-projects + default: [] + test-manifest-loader: null # don't load tests in the taskgraph + tier: 2 + mozharness: + extra-options: + - --per-test-coverage diff --git a/taskcluster/ci/test/xpcshell.yml b/taskcluster/ci/test/xpcshell.yml new file mode 100644 index 0000000000..46ecd690e5 --- /dev/null +++ b/taskcluster/ci/test/xpcshell.yml @@ -0,0 +1,177 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + suite: + category: xpcshell + name: + by-variant: + msix: xpcshell-msix + default: xpcshell + target: + by-test-platform: + android-em-7.*: geckoview-test_runner.apk + windows11-64-2009.*: + by-variant: + msix: target.installer.msix + default: null + default: null + mozharness: + script: + by-test-platform: + android-em.*: android_emulator_unittest.py + default: desktop_unittest.py + config: + by-test-platform: + android-em-7.*: + - android/android_common.py + - android/android-x86_64.py + linux.*: + - unittests/linux_unittest.py + - remove_executables.py + macosx.*: + - unittests/mac_unittest.py + windows.*: + - unittests/win_unittest.py + requires-signed-builds: + by-test-platform: + macosx1100.*: true + windows.*-asan-qr/opt: false # No XPCShell on ASAN yet + windows.*-mingwclang-qr/.*: false + windows.*: true + default: false + +xpcshell: + description: "xpcshell test run" + treeherder-symbol: X(X) + variants: + - conditioned_profile + - socketprocess_networking+no-fission + - socketprocess_networking + - no-fission + - msix + run-on-projects: + by-variant: + conditioned_profile: + by-test-platform: + .*asan.*: [] + .*ccov.*: [] + (linux1804-64|windows11-64.*)(-shippable)?-qr/opt: ['trunk'] + default: [] + socketprocess_networking+no-fission: + by-test-platform: + linux1804-64.*: ['trunk'] + default: [] + socketprocess_networking: + by-test-platform: + (linux1804-64|macosx).*: ['trunk'] # All Linux & Mac variants + ^(?!.*asan).*windows11.*: ['trunk'] # All Windows11 except ASAN + default: [] + no-fission: + by-test-platform: + android-em-7.0-x86_64-qr/debug-isolated-process: [] + android.*: built-projects + linux1804-64.*: ['trunk'] + default: [] + msix: + by-test-platform: + windows11-64-2009(-shippable)?-qr/opt: built-projects + windows11-64-2009-qr/debug: built-projects + default: [] + default: + by-test-platform: + android.*: [] + .*wayland.*: [] + windows.*-asan-qr/opt: [] # No XPCShell on ASAN yet + default: built-projects + chunks: + by-test-platform: + .*-asan-qr/opt: 4 + .*-ccov.*/.*: 8 + .*-tsan-qr/opt: 8 + (android-em-7.*|macosx.*|linux1804-64.*/opt): 2 + default: 4 + max-run-time: + by-variant: + msix: 7200 + conditioned_profile: 7200 + default: + by-test-platform: + .*-ccov(-qr)?/.*: 7200 + .*-tsan-qr/opt: 7200 + default: 5400 + allow-software-gl-layers: false + tier: + by-test-platform: + windows.*-asan.*: 3 + android-em-7.0-x86_64-qr/debug-isolated-process: 3 + default: default + mozharness: + extra-options: + by-test-platform: + windows1.*: + - --threads=2 + default: [] + fetches: + toolchain: + by-test-platform: + linux.*: + - linux64-node + - linux64-minidump-stackwalk + - linux64-fix-stacks + macosx.*: + - macosx64-node + - macosx64-minidump-stackwalk + - macosx64-fix-stacks + win.*-64.*: + - win64-node + - win32-minidump-stackwalk + - win32-fix-stacks + win.*32.*: + - win32-node + - win32-minidump-stackwalk + - win32-fix-stacks + android-em-7.*: + - android-system-image-x86_64-linux + - android-avd-x86_64-linux + - android-emulator-linux + - linux64-node + - linux64-minidump-stackwalk + +xpcshell-failures: + description: "xpcshell specific failures test run" + treeherder-symbol: X-f(X) + run-on-projects: ["mozilla-central"] + chunks: 2 + max-run-time: 2700 + allow-software-gl-layers: false + tier: 3 + mozharness: + script: + by-test-platform: + macos.*: mac_unittest.py + windows1.*: desktop_unittest.py + config: + by-test-platform: + macos.*: + - unittests/mac_unittest.py + windows1.*: + - unittests/win_unittest.py + extra-options: + by-test-platform: + macosx1100.*: + - --run-failures=apple_silicon + - --timeout-as-pass + - --crash-as-pass + fetches: + toolchain: + by-test-platform: + macosx.*: + - macosx64-node + - macosx64-minidump-stackwalk + - macosx64-fix-stacks + win.*32.*: + - win32-node + - win32-minidump-stackwalk + - win32-fix-stacks diff --git a/taskcluster/ci/toolchain/android.yml b/taskcluster/ci/toolchain/android.yml new file mode 100644 index 0000000000..ed8cef3dc1 --- /dev/null +++ b/taskcluster/ci/toolchain/android.yml @@ -0,0 +1,244 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + worker-type: b-linux-gcp + worker: + docker-image: {in-tree: android-build} + max-run-time: 1800 + +# In automation, we generate the AVD using the linux64-android-avd jobs. On +# developers' machines, bootstrap will download the artifact from the avd job +# instead of generating it. +# +# The Android AVD needs the corresponding system image generated in the +# linux64-android-system-image TL job. System images are not redistributable, +# so locally bootstrap will use sdkmanager to download the corresponding system +# images. +linux64-android-avd-x86_64-repack: + attributes: + local-toolchain: true + description: "Android AVD (Linux) repack toolchain build" + treeherder: + symbol: TL(avd-x86_64-linux) + run: + script: repack-android-avd-linux.sh + arguments: + - 'python/mozboot/mozboot/android-avds/x86_64.json' + resources: + - 'python/mozboot/**/*android*' + toolchain-artifact: public/build/android-avd-linux.tar.zst + toolchain-alias: android-avd-x86_64-linux + fetches: + toolchain: + # Aliases aren't allowed for toolchains depending on toolchains. + - linux64-jdk-repack + +linux64-android31-avd-x86_64-repack: + description: "Android AVD (Linux) repack toolchain build" + treeherder: + symbol: TL(avd31-x86_64-linux) + worker-type: b-linux-kvm-gcp + worker: + kvm: true + run: + script: repack-android-avd-linux.sh + arguments: + - 'python/mozboot/mozboot/android-avds/android31-x86_64.json' + resources: + - 'python/mozboot/**/*android*' + toolchain-artifact: public/build/android-avd-linux.tar.zst + toolchain-alias: android31-avd-x86_64-linux + fetches: + toolchain: + # Aliases aren't allowed for toolchains depending on toolchains. + - linux64-jdk-repack + + +linux64-android-avd-arm-repack: + attributes: + local-toolchain: true + description: "Android AVD (Linux) repack toolchain build" + treeherder: + symbol: TL(avd-arm-linux) + run: + script: repack-android-avd-linux.sh + arguments: + - 'python/mozboot/mozboot/android-avds/arm.json' + resources: + - 'python/mozboot/**/*android*' + toolchain-artifact: public/build/android-avd-linux.tar.zst + toolchain-alias: android-avd-arm-linux + fetches: + toolchain: + # Aliases aren't allowed for toolchains depending on toolchains. + - linux64-jdk-repack + +linux64-android-avd-arm64-repack: + attributes: + local-toolchain: true + description: "Android AVD (Linux) repack toolchain build" + treeherder: + symbol: TL(avd-arm64-linux) + run: + script: repack-android-avd-linux.sh + arguments: + - 'python/mozboot/mozboot/android-avds/arm64.json' + resources: + - 'python/mozboot/**/*android*' + toolchain-artifact: public/build/android-avd-linux.tar.zst + toolchain-alias: android-avd-arm64-linux + fetches: + toolchain: + # Aliases aren't allowed for toolchains depending on toolchains. + - linux64-jdk-repack + +linux64-android-system-image-x86_64-repack: + description: "Android System Images (Linux) repack toolchain build" + treeherder: + symbol: TL(x86_64-avd-img-linux) + run: + script: repack-android-system-images-linux.sh + arguments: + - 'python/mozboot/mozboot/android-avds/x86_64.json' + resources: + - 'python/mozboot/**/*android*' + toolchain-artifact: project/gecko/android-system-images/android-system-images-linux.tar.zst + toolchain-alias: android-system-image-x86_64-linux + fetches: + toolchain: + # Aliases aren't allowed for toolchains depending on toolchains. + - linux64-jdk-repack + +linux64-android31-system-image-x86_64-repack: + description: "Android System Images (Linux) repack toolchain build" + treeherder: + symbol: TL(x86_64-avd31-img-linux) + run: + script: repack-android-system-images-linux.sh + arguments: + - 'python/mozboot/mozboot/android-avds/android31-x86_64.json' + resources: + - 'python/mozboot/**/*android*' + toolchain-artifact: project/gecko/android-system-images/android-system-images-linux.tar.zst + toolchain-alias: android31-system-image-x86_64-linux + fetches: + toolchain: + # Aliases aren't allowed for toolchains depending on toolchains. + - linux64-jdk-repack + + +linux64-jdk-repack: + description: "Java JDK (Linux) repack toolchain build" + treeherder: + symbol: TL(jdk) + run: + script: repack-jdk-linux.sh + resources: + - 'python/mozboot/**/*android*' + toolchain-artifact: project/gecko/jdk/jdk-linux.tar.zst + toolchain-alias: linux64-jdk + toolchain-env: + JAVA_HOME: "/builds/worker/fetches/jdk/jdk-17.0.9+9" + +linux64-android-sdk-linux-repack: + description: "Android SDK (Linux) repack toolchain build" + treeherder: + symbol: TL(android-sdk-linux) + run: + script: repack-android-sdk-linux.sh + resources: + - 'python/mozboot/**/*android*' + toolchain-artifact: project/gecko/android-sdk/android-sdk-linux.tar.zst + toolchain-alias: android-sdk-linux + fetches: + toolchain: + # Aliases aren't allowed for toolchains depending on toolchains. + - linux64-jdk-repack + +linux64-android-emulator-linux-repack: + description: "Android Emulator (Linux) repack toolchain build" + treeherder: + symbol: TL(android-emulator-linux) + run: + script: repack-android-emulator-linux.sh + resources: + - 'python/mozboot/**/*android*' + toolchain-artifact: project/gecko/android-emulator/android-emulator-linux.tar.zst + toolchain-alias: android-emulator-linux + fetches: + toolchain: + # Aliases aren't allowed for toolchains depending on toolchains. + - linux64-jdk-repack + +linux64-android-ndk-linux-repack: + description: "Android NDK (Linux) repack toolchain build" + treeherder: + symbol: TL(android-ndk-linux) + run: + script: repack-android-ndk-linux.sh + resources: + - 'python/mozboot/**/*android*' + toolchain-artifact: project/gecko/android-ndk/android-ndk.tar.zst + toolchain-alias: android-ndk-linux + +linux64-android-gradle-dependencies: + description: "Android Gradle dependencies toolchain task" + treeherder: + symbol: TL(gradle-dependencies) + worker: + env: + GRADLE_USER_HOME: "/builds/worker/workspace/build/src/mobile/android/gradle/dotgradle-online" + run: + script: android-gradle-dependencies.sh + sparse-profile: null + resources: + - 'taskcluster/scripts/misc/android-gradle-dependencies/**' + - '*.gradle' + - 'mobile/android/**/*.gradle' + - 'mobile/android/config/mozconfigs/android-arm-gradle-dependencies/**' + - 'mobile/android/config/mozconfigs/common*' + - 'mobile/android/gradle.configure' + toolchain-artifact: public/build/android-gradle-dependencies.tar.zst + toolchain-alias: android-gradle-dependencies + fetches: + fetch: + - sonatype-nexus + # Nexus needs Java 8 + - jdk-8-linux64 + toolchain: + # Aliases aren't allowed for toolchains depending on toolchains. + - linux64-android-sdk-linux-repack + - linux64-jdk-repack + - linux64-node + +linux64-android-gradle-dependencies-lite: + description: "Android Lite Gradle dependencies toolchain task" + treeherder: + symbol: TL(gradle-dependencies-lite) + worker: + env: + GRADLE_USER_HOME: "/builds/worker/workspace/build/src/mobile/android/gradle/dotgradle-online" + run: + script: android-gradle-dependencies-lite.sh + sparse-profile: null + resources: + - 'taskcluster/scripts/misc/android-gradle-dependencies/**' + - '*.gradle' + - 'mobile/android/**/*.gradle' + - 'mobile/android/config/mozconfigs/android-arm-gradle-dependencies/**' + - 'mobile/android/config/mozconfigs/common*' + - 'mobile/android/gradle.configure' + toolchain-artifact: public/build/android-gradle-dependencies.tar.zst + toolchain-alias: android-gradle-dependencies-lite + fetches: + fetch: + - sonatype-nexus + # Nexus needs Java 8 + - jdk-8-linux64 + toolchain: + # Aliases aren't allowed for toolchains depending on toolchains. + - linux64-android-sdk-linux-repack + - linux64-jdk-repack + - linux64-node diff --git a/taskcluster/ci/toolchain/cargo-vet.yml b/taskcluster/ci/toolchain/cargo-vet.yml new file mode 100644 index 0000000000..3f1cb9756a --- /dev/null +++ b/taskcluster/ci/toolchain/cargo-vet.yml @@ -0,0 +1,61 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + description: "cargo-vet toolchain build" + attributes: + local-toolchain: true + worker-type: b-linux-gcp + worker: + max-run-time: 1800 + run: + script: build-rust-based-toolchain.sh + toolchain-artifact: public/build/cargo-vet.tar.zst + fetches: + fetch: + - cargo-vet + +linux64-cargo-vet: + treeherder: + symbol: TL(cargo-vet) + run: + arguments: ['x86_64-unknown-linux-gnu', 'reqwest/native-tls-vendored'] + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-rust-toolchain + - sysroot-x86_64-linux-gnu + +macosx64-cargo-vet: + treeherder: + symbol: TM(cargo-vet) + run: + arguments: ['x86_64-apple-darwin'] + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-rust-macos-toolchain + - macosx64-sdk-toolchain + +macosx64-aarch64-cargo-vet: + treeherder: + symbol: TM(cargo-vet-arm64) + run: + arguments: ['aarch64-apple-darwin'] + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-rust-macos-toolchain + - macosx64-sdk-toolchain + +win64-cargo-vet: + treeherder: + symbol: TW64(cargo-vet) + run: + arguments: ['x86_64-pc-windows-msvc'] + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-rust-windows-toolchain + - vs-toolchain diff --git a/taskcluster/ci/toolchain/cbindgen.yml b/taskcluster/ci/toolchain/cbindgen.yml new file mode 100644 index 0000000000..69d34b6f3b --- /dev/null +++ b/taskcluster/ci/toolchain/cbindgen.yml @@ -0,0 +1,65 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + description: "cbindgen toolchain build" + attributes: + local-toolchain: true + worker-type: b-linux-gcp + worker: + max-run-time: 3600 + run: + script: build-rust-based-toolchain.sh + toolchain-artifact: public/build/cbindgen.tar.zst + fetches: + fetch: + # If you update this, make sure to update the minimum version in + # build/moz.configure/bindgen.configure as well. + - cbindgen-0.26.0 + +linux64-cbindgen: + treeherder: + symbol: TL(cbindgen) + worker: + max-run-time: 1800 + run: + arguments: ['x86_64-unknown-linux-gnu'] + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-rust-toolchain + - sysroot-x86_64-linux-gnu + +macosx64-cbindgen: + treeherder: + symbol: TM(cbindgen) + run: + arguments: ['x86_64-apple-darwin'] + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-rust-macos-toolchain + - macosx64-sdk-toolchain + +macosx64-aarch64-cbindgen: + treeherder: + symbol: TM(cbindgen-arm64) + run: + arguments: ['aarch64-apple-darwin'] + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-rust-macos-toolchain + - macosx64-sdk-toolchain + +win64-cbindgen: + treeherder: + symbol: TW64(cbindgen) + run: + arguments: ['x86_64-pc-windows-msvc'] + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-rust-windows-toolchain + - vs-toolchain diff --git a/taskcluster/ci/toolchain/clang-tidy.yml b/taskcluster/ci/toolchain/clang-tidy.yml new file mode 100644 index 0000000000..8d357e8c82 --- /dev/null +++ b/taskcluster/ci/toolchain/clang-tidy.yml @@ -0,0 +1,127 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + description: "Clang-tidy build" + attributes: + local-toolchain: true + index: + product: static-analysis + worker-type: b-linux-large-gcp + worker: + max-run-time: 3600 + run: + toolchain-artifact: public/build/clang-tidy.tar.zst + resources: + - 'build/clang-plugin/**/*.cpp' + - 'build/clang-plugin/**/*.h' + - 'build/clang-plugin/*.inc' + - 'build/clang-plugin/*.py' + - 'build/clang-plugin/*.txt' + - 'build/clang-plugin/moz.build' + - 'build/clang-plugin/Makefile.in' + - 'build/build-clang/build-clang.py' + fetches: + fetch: + - clang-17 + +linux64-clang-tidy: + index: + job-name: linux64-clang-tidy + treeherder: + symbol: TL(clang-tidy) + run: + script: build-clang.sh + arguments: + - 'build/build-clang/clang-tidy-linux64.json' + resources: + - 'build/build-clang/clang-tidy-linux64.json' + fetches: + toolchain: + - linux64-clang-17 + - linux64-toolchain-sysroot + +macosx64-clang-tidy: + index: + job-name: macosx64-clang-tidy + treeherder: + symbol: TM(clang-tidy) + worker-type: b-linux-large-gcp + run: + script: build-clang.sh + arguments: + - 'build/build-clang/clang-tidy-macosx64.json' + - 'build/build-clang/macosx64.json' + resources: + - 'build/build-clang/clang-tidy-macosx64.json' + - 'build/build-clang/macosx64.json' + fetches: + toolchain: + - linux64-clang-17 + - macosx64-sdk-toolchain + +macosx64-aarch64-clang-tidy: + index: + job-name: macosx64-aarch64-clang-tidy + treeherder: + symbol: TM(clang-tidy-aarch64) + worker-type: b-linux-large-gcp + run: + script: build-clang.sh + arguments: + - 'build/build-clang/clang-tidy-macosx64.json' + - 'build/build-clang/macosx64.json' + - 'build/build-clang/macosx64-aarch64.json' + resources: + - 'build/build-clang/clang-tidy-macosx64.json' + - 'build/build-clang/macosx64.json' + - 'build/build-clang/macosx64-aarch64.json' + fetches: + toolchain: + - linux64-clang-17 + - macosx64-sdk-toolchain + +win64-clang-tidy: + description: "Clang-tidy toolchain build" + index: + job-name: win64-clang-tidy + treeherder: + symbol: TW64(clang-tidy) + tier: 2 + worker: + max-run-time: 7200 + run: + script: build-clang.sh + arguments: + - 'build/build-clang/clang-tidy-win64.json' + - 'build/build-clang/win64.json' + resources: + - 'build/build-clang/clang-tidy-win64.json' + - 'build/build-clang/win64.json' + fetches: + toolchain: + - linux64-clang-17 + - vs-toolchain + +linux64-clang-tidy-external: + attributes: + local-toolchain: false + index: + job-name: linux64-clang-tidy-external + treeherder: + symbol: TL(clang-tidy-e) + run: + toolchain-artifact: project/civet/clang-tidy.tar.zst + script: build-clang-tidy-external.sh + arguments: + - 'build/build-clang/clang-tidy-external-linux64.json' + resources: + - 'build/build-clang/clang-tidy-external-linux64.json' + run-on-projects: [] + fetches: + fetch: + - civet-source + toolchain: + - linux64-clang-17 + - linux64-toolchain-sysroot diff --git a/taskcluster/ci/toolchain/clang.yml b/taskcluster/ci/toolchain/clang.yml new file mode 100644 index 0000000000..1223afd4e5 --- /dev/null +++ b/taskcluster/ci/toolchain/clang.yml @@ -0,0 +1,1278 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + worker-type: b-linux-xlarge-gcp + worker: + max-run-time: 7200 + run: + resources: + - 'build/build-clang/build-clang.py' + +linux64-clang-8.0-raw: + description: "Clang 8.0 toolchain build" + treeherder: + symbol: TL(clang-8.0-raw) + worker-type: b-linux-large-gcp + run: + script: build-clang.sh + arguments: + - 'build/build-clang/linux64.json' + - 'build/build-clang/clang-8.0.json' + - 'build/build-clang/2stages.json' + resources: + - 'build/build-clang/linux64.json' + - 'build/build-clang/clang-8.0.json' + - 'build/build-clang/2stages.json' + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-8.0 + toolchain: + - linux64-toolchain-sysroot + +linux64-clang-8.0: + description: "Clang 8.0 toolchain build" + treeherder: + symbol: TL(clang-8.0) + worker-type: b-linux-gcp + worker: + max-run-time: 600 + run: + script: repack-clang.sh + toolchain-alias: linux64-clang-base + toolchain-artifact: public/build/clang.tar.zst + fetches: + toolchain: + - linux64-clang-8.0-raw + - wasm32-wasi-compiler-rt-8.0 + +linux64-clang-14-stage1: + description: "Clang 14 toolchain build" + treeherder: + symbol: TL(clang-14-stage1) + run: + using: toolchain-script + script: build-clang.sh + arguments: + - 'build/build-clang/linux64.json' + - 'build/build-clang/clang-14.json' + - 'build/build-clang/1stage.json' + resources: + - 'build/build-clang/linux64.json' + - 'build/build-clang/clang-14.json' + - 'build/build-clang/1stage.json' + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-14 + toolchain: + - linux64-toolchain-sysroot + +linux64-clang-14: + description: "Clang 14 toolchain build" + attributes: + local-toolchain: true + treeherder: + symbol: TL(clang-14) + worker-type: b-linux-gcp + worker: + max-run-time: 600 + run: + script: repack-clang.sh + toolchain-artifact: public/build/clang.tar.zst + fetches: + toolchain: + - linux64-clang-14-stage1 + +macosx64-clang-14-raw: + description: "Clang 14 toolchain build" + treeherder: + symbol: TM(clang-14-raw) + worker-type: b-linux-large-gcp + worker: + max-run-time: 3600 + run: + script: build-clang.sh + arguments: + - 'build/build-clang/macosx64.json' + - 'build/build-clang/clang-14.json' + - 'build/build-clang/1stage.json' + resources: + - 'build/build-clang/macosx64.json' + - 'build/build-clang/clang-14.json' + - 'build/build-clang/1stage.json' + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-14 + toolchain: + - linux64-clang-14-stage1 + - macosx64-sdk-toolchain + +linux64-clang-17-mingw-x86: + description: "MinGW-Clang 17 x86 toolchain build" + treeherder: + symbol: TMW(clang-17-x86) + worker-type: b-linux-gcp + run: + script: build-clang-mingw.sh + arguments: + - 'x86' + resources: + - 'taskcluster/scripts/misc/mingw-*.patch' + toolchain-alias: + by-project: + toolchains: null + default: linux64-clang-mingw-x86 + toolchain-artifact: public/build/clangmingw.tar.zst + fetches: + fetch: + - clang-17 + - mingw-w64 + - llvm-mingw + - gcc-9.5.0 + toolchain: + - linux64-clang-17 + +linux64-clang-17-mingw-x64: + description: "MinGW-Clang 17 x64 toolchain build" + treeherder: + symbol: TMW(clang-17-x64) + tier: 1 + worker-type: b-linux-gcp + run: + script: build-clang-mingw.sh + arguments: + - 'x64' + resources: + - 'taskcluster/scripts/misc/mingw-*.patch' + toolchain-alias: + by-project: + toolchains: null + default: linux64-clang-mingw-x64 + toolchain-artifact: public/build/clangmingw.tar.zst + fetches: + fetch: + - clang-17 + - mingw-w64 + - llvm-mingw + - gcc-9.5.0 + toolchain: + - linux64-clang-17 + +linux64-clang-17-stage1: + description: "Clang 17 toolchain build" + treeherder: + symbol: TL(clang-17-stage1) + run: + using: toolchain-script + script: build-clang.sh + arguments: + - 'build/build-clang/linux64.json' + - 'build/build-clang/clang-17.json' + - 'build/build-clang/1stage.json' + resources: + - 'build/build-clang/linux64.json' + - 'build/build-clang/clang-17.json' + - 'build/build-clang/1stage.json' + toolchain-alias: + by-project: + toolchains: null + default: linux64-clang-toolchain + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-17 + toolchain: + - linux64-toolchain-sysroot + +linux64-clang-17-profile: + description: "Clang 17 toolchain build" + treeherder: + symbol: TL(clang-17-profile) + run: + using: toolchain-script + script: build-clang.sh + arguments: + - 'build/build-clang/linux64.json' + - 'build/build-clang/clang-17.json' + - 'build/build-clang/skip-stage-1.json' + - 'build/build-clang/profile.json' + resources: + - 'build/build-clang/linux64.json' + - 'build/build-clang/clang-17.json' + - 'build/build-clang/skip-stage-1.json' + - 'build/build-clang/profile.json' + toolchain-artifact: public/build/merged.profdata + fetches: + fetch: + - clang-17 + toolchain: + - linux64-clang-17-stage1 + - linux64-x64-compiler-rt-17 + - linux64-toolchain-sysroot + +linux64-clang-17-raw: + description: "Clang 17 toolchain build" + treeherder: + symbol: TL(clang-17-raw) + run: + script: build-clang.sh + arguments: + - 'build/build-clang/linux64.json' + - 'build/build-clang/clang-17.json' + - 'build/build-clang/skip-3-stages.json' + - 'build/build-clang/4stages-pgo.json' + resources: + - 'build/build-clang/linux64.json' + - 'build/build-clang/clang-17.json' + - 'build/build-clang/skip-3-stages.json' + - 'build/build-clang/4stages-pgo.json' + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-17 + toolchain: + - linux64-clang-17-stage1 + - linux64-clang-17-profile + - linux64-toolchain-sysroot + +linux64-clang-17: + description: "Clang 17 toolchain build" + attributes: + local-toolchain: true + treeherder: + symbol: TL(clang-17) + worker-type: b-linux-gcp + worker: + max-run-time: 600 + run: + script: repack-clang.sh + toolchain-alias: + by-project: + toolchains: null + default: linux64-clang + toolchain-artifact: public/build/clang.tar.zst + fetches: + toolchain: + - linux64-cctools-port + - linux64-clang-17-raw + - android-aarch64-compiler-rt-17 + - android-aarch64-libunwind-17 + - android-arm-compiler-rt-17 + - android-arm-libunwind-17 + - android-x64-compiler-rt-17 + - android-x64-libunwind-17 + - android-x86-compiler-rt-17 + - android-x86-libunwind-17 + - linux64-aarch64-compiler-rt-17 + - linux64-x64-compiler-rt-17 + - linux64-x86-compiler-rt-17 + - macosx64-aarch64-compiler-rt-17 + - macosx64-x64-compiler-rt-17 + - wasm32-wasi-compiler-rt-17 + - win32-compiler-rt-17 + - win64-compiler-rt-17 + +macosx64-clang-17-raw: + description: "Clang 17 toolchain build" + treeherder: + symbol: TM(clang-17-raw) + worker-type: b-linux-large-gcp + worker: + max-run-time: 3600 + run: + script: build-clang.sh + arguments: + - 'build/build-clang/macosx64.json' + - 'build/build-clang/clang-17.json' + - 'build/build-clang/skip-3-stages.json' + - 'build/build-clang/4stages-pgo.json' + resources: + - 'build/build-clang/macosx64.json' + - 'build/build-clang/clang-17.json' + - 'build/build-clang/skip-3-stages.json' + - 'build/build-clang/4stages-pgo.json' + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-17 + toolchain: + - linux64-clang-17-stage1 + - linux64-clang-17-profile + - macosx64-sdk-toolchain + - macosx64-x64-compiler-rt-17 + +macosx64-clang-17: + description: "Clang 17 toolchain repack with MacOS Compiler RT libs" + attributes: + local-toolchain: true + treeherder: + symbol: TM(clang-17) + worker-type: b-linux-gcp + worker: + max-run-time: 600 + run: + script: repack-clang.sh + toolchain-alias: + by-project: + toolchains: null + default: + - macosx64-clang + - macosx64-clang-toolchain + toolchain-artifact: public/build/clang.tar.zst + fetches: + toolchain: + - linux64-cctools-port + - macosx64-clang-17-raw + - android-aarch64-compiler-rt-17 + - android-aarch64-libunwind-17 + - android-arm-compiler-rt-17 + - android-arm-libunwind-17 + - android-x64-compiler-rt-17 + - android-x64-libunwind-17 + - android-x86-compiler-rt-17 + - android-x86-libunwind-17 + - linux64-aarch64-compiler-rt-17 + - linux64-x64-compiler-rt-17 + - linux64-x86-compiler-rt-17 + - macosx64-aarch64-compiler-rt-17 + - macosx64-x64-compiler-rt-17 + - wasm32-wasi-compiler-rt-17 + - win32-compiler-rt-17 + - win64-compiler-rt-17 + +macosx64-aarch64-clang-17-raw: + description: "Clang 17 toolchain build" + treeherder: + symbol: TM(clang-17-aarch64-raw) + worker-type: b-linux-large-gcp + worker: + max-run-time: 3600 + run: + script: build-clang.sh + arguments: + - 'build/build-clang/macosx64.json' + - 'build/build-clang/macosx64-aarch64.json' + - 'build/build-clang/clang-17.json' + - 'build/build-clang/skip-3-stages.json' + - 'build/build-clang/4stages-pgo.json' + resources: + - 'build/build-clang/macosx64.json' + - 'build/build-clang/macosx64-aarch64.json' + - 'build/build-clang/clang-17.json' + - 'build/build-clang/skip-3-stages.json' + - 'build/build-clang/4stages-pgo.json' + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-17 + toolchain: + - linux64-clang-17-stage1 + - linux64-clang-17-profile + - macosx64-sdk-toolchain + - macosx64-aarch64-compiler-rt-17 + +macosx64-aarch64-clang-17: + description: "Clang 17 toolchain repack with MacOS Compiler RT libs" + attributes: + local-toolchain: true + treeherder: + symbol: TM(clang-17-aarch64) + worker-type: b-linux-gcp + worker: + max-run-time: 600 + run: + script: repack-clang.sh + toolchain-alias: + by-project: + toolchains: null + default: macosx64-aarch64-clang + toolchain-artifact: public/build/clang.tar.zst + fetches: + toolchain: + - linux64-cctools-port + - macosx64-aarch64-clang-17-raw + - android-aarch64-compiler-rt-17 + - android-aarch64-libunwind-17 + - android-arm-compiler-rt-17 + - android-arm-libunwind-17 + - android-x64-compiler-rt-17 + - android-x64-libunwind-17 + - android-x86-compiler-rt-17 + - android-x86-libunwind-17 + - linux64-aarch64-compiler-rt-17 + - linux64-x64-compiler-rt-17 + - linux64-x86-compiler-rt-17 + - macosx64-aarch64-compiler-rt-17 + - macosx64-x64-compiler-rt-17 + - wasm32-wasi-compiler-rt-17 + - win32-compiler-rt-17 + - win64-compiler-rt-17 + +win64-clang-17-stage1: + description: "Clang-cl 17 toolchain build stage 1" + treeherder: + symbol: TW64(clang-17-stage1) + run: + script: build-clang.sh + arguments: + - 'build/build-clang/win64.json' + - 'build/build-clang/clang-17.json' + - 'build/build-clang/1stage.json' + resources: + - 'build/build-clang/win64.json' + - 'build/build-clang/clang-17.json' + - 'build/build-clang/1stage.json' + toolchain-alias: + by-project: + toolchains: null + default: win64-clang-toolchain + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-17 + toolchain: + - linux64-clang-17-stage1 + - vs-toolchain + +win64-clang-17-raw: + description: "Clang-cl 17 toolchain build" + treeherder: + symbol: TW64(clang-17-raw) + worker-type: b-win2022 + worker: + max-run-time: 9000 + run: + script: build-clang.sh + arguments: + - 'build/build-clang/win64.json' + - 'build/build-clang/clang-17.json' + - 'build/build-clang/skip-stage-1-win64.json' + - 'build/build-clang/4stages-pgo.json' + resources: + - 'build/build-clang/win64.json' + - 'build/build-clang/clang-17.json' + - 'build/build-clang/skip-stage-1-win64.json' + - 'build/build-clang/4stages-pgo.json' + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-17 + - cmake + - ninja + toolchain: + - win64-clang-17-stage1 + - win64-compiler-rt-17 + - vs-toolchain + +win64-clang-17: + description: "Clang-cl 17 toolchain build" + attributes: + local-toolchain: true + treeherder: + symbol: TW64(clang-17) + worker-type: b-linux-gcp + worker: + max-run-time: 600 + run: + script: repack-clang.sh + toolchain-alias: + by-project: + toolchains: null + default: win64-clang + toolchain-artifact: public/build/clang.tar.zst + fetches: + toolchain: + - linux64-cctools-port + - win64-clang-17-raw + - android-aarch64-compiler-rt-17 + - android-aarch64-libunwind-17 + - android-arm-compiler-rt-17 + - android-arm-libunwind-17 + - android-x64-compiler-rt-17 + - android-x64-libunwind-17 + - android-x86-compiler-rt-17 + - android-x86-libunwind-17 + - linux64-aarch64-compiler-rt-17 + - linux64-x64-compiler-rt-17 + - linux64-x86-compiler-rt-17 + - macosx64-aarch64-compiler-rt-17 + - macosx64-x64-compiler-rt-17 + - wasm32-wasi-compiler-rt-17 + - win32-compiler-rt-17 + - win64-compiler-rt-17 + +linux64-clang-18-mingw-x86: + description: "MinGW-Clang 18 x86 toolchain build" + treeherder: + symbol: TMW(clang-18-x86) + worker-type: b-linux-gcp + run: + script: build-clang-mingw.sh + arguments: + - 'x86' + resources: + - 'taskcluster/scripts/misc/mingw-*.patch' + toolchain-artifact: public/build/clangmingw.tar.zst + fetches: + fetch: + - clang-18 + - mingw-w64 + - llvm-mingw + - gcc-9.5.0 + toolchain: + - linux64-clang-18 + +linux64-clang-18-mingw-x64: + description: "MinGW-Clang 18 x64 toolchain build" + treeherder: + symbol: TMW(clang-18-x64) + tier: 1 + worker-type: b-linux-gcp + run: + script: build-clang-mingw.sh + arguments: + - 'x64' + resources: + - 'taskcluster/scripts/misc/mingw-*.patch' + toolchain-artifact: public/build/clangmingw.tar.zst + fetches: + fetch: + - clang-18 + - mingw-w64 + - llvm-mingw + - gcc-9.5.0 + toolchain: + - linux64-clang-18 + +linux64-clang-18-stage1: + description: "Clang 18 toolchain build" + treeherder: + symbol: TL(clang-18-stage1) + run: + using: toolchain-script + script: build-clang.sh + arguments: + - 'build/build-clang/linux64.json' + - 'build/build-clang/clang-18.json' + - 'build/build-clang/1stage.json' + resources: + - 'build/build-clang/linux64.json' + - 'build/build-clang/clang-18.json' + - 'build/build-clang/1stage.json' + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-18 + toolchain: + - linux64-toolchain-sysroot + +linux64-clang-18-profile: + description: "Clang 18 toolchain build" + treeherder: + symbol: TL(clang-18-profile) + run: + using: toolchain-script + script: build-clang.sh + arguments: + - 'build/build-clang/linux64.json' + - 'build/build-clang/clang-18.json' + - 'build/build-clang/skip-stage-1.json' + - 'build/build-clang/profile.json' + resources: + - 'build/build-clang/linux64.json' + - 'build/build-clang/clang-18.json' + - 'build/build-clang/skip-stage-1.json' + - 'build/build-clang/profile.json' + toolchain-artifact: public/build/merged.profdata + fetches: + fetch: + - clang-18 + toolchain: + - linux64-clang-18-stage1 + - linux64-x64-compiler-rt-18 + - linux64-toolchain-sysroot + +linux64-clang-18-raw: + description: "Clang 18 toolchain build" + treeherder: + symbol: TL(clang-18-raw) + run: + script: build-clang.sh + arguments: + - 'build/build-clang/linux64.json' + - 'build/build-clang/clang-18.json' + - 'build/build-clang/skip-3-stages.json' + - 'build/build-clang/4stages-pgo.json' + resources: + - 'build/build-clang/linux64.json' + - 'build/build-clang/clang-18.json' + - 'build/build-clang/skip-3-stages.json' + - 'build/build-clang/4stages-pgo.json' + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-18 + toolchain: + - linux64-clang-18-stage1 + - linux64-clang-18-profile + - linux64-toolchain-sysroot + +linux64-clang-18: + description: "Clang 18 toolchain build" + attributes: + local-toolchain: true + treeherder: + symbol: TL(clang-18) + worker-type: b-linux-gcp + worker: + max-run-time: 600 + run: + script: repack-clang.sh + toolchain-artifact: public/build/clang.tar.zst + fetches: + toolchain: + - linux64-cctools-port + - linux64-clang-18-raw + - android-aarch64-compiler-rt-18 + - android-aarch64-libunwind-18 + - android-arm-compiler-rt-18 + - android-arm-libunwind-18 + - android-x64-compiler-rt-18 + - android-x64-libunwind-18 + - android-x86-compiler-rt-18 + - android-x86-libunwind-18 + - linux64-aarch64-compiler-rt-18 + - linux64-x64-compiler-rt-18 + - linux64-x86-compiler-rt-18 + - macosx64-aarch64-compiler-rt-18 + - macosx64-x64-compiler-rt-18 + - wasm32-wasi-compiler-rt-18 + - win32-compiler-rt-18 + - win64-compiler-rt-18 + +macosx64-clang-18-raw: + description: "Clang 18 toolchain build" + treeherder: + symbol: TM(clang-18-raw) + worker-type: b-linux-large-gcp + worker: + max-run-time: 3600 + run: + script: build-clang.sh + arguments: + - 'build/build-clang/macosx64.json' + - 'build/build-clang/clang-18.json' + - 'build/build-clang/skip-3-stages.json' + - 'build/build-clang/4stages-pgo.json' + resources: + - 'build/build-clang/macosx64.json' + - 'build/build-clang/clang-18.json' + - 'build/build-clang/skip-3-stages.json' + - 'build/build-clang/4stages-pgo.json' + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-18 + toolchain: + - linux64-clang-18-stage1 + - linux64-clang-18-profile + - macosx64-sdk-toolchain + - macosx64-x64-compiler-rt-18 + +macosx64-clang-18: + description: "Clang 18 toolchain repack with MacOS Compiler RT libs" + attributes: + local-toolchain: true + treeherder: + symbol: TM(clang-18) + worker-type: b-linux-gcp + worker: + max-run-time: 600 + run: + script: repack-clang.sh + toolchain-artifact: public/build/clang.tar.zst + fetches: + toolchain: + - linux64-cctools-port + - macosx64-clang-18-raw + - android-aarch64-compiler-rt-18 + - android-aarch64-libunwind-18 + - android-arm-compiler-rt-18 + - android-arm-libunwind-18 + - android-x64-compiler-rt-18 + - android-x64-libunwind-18 + - android-x86-compiler-rt-18 + - android-x86-libunwind-18 + - linux64-aarch64-compiler-rt-18 + - linux64-x64-compiler-rt-18 + - linux64-x86-compiler-rt-18 + - macosx64-aarch64-compiler-rt-18 + - macosx64-x64-compiler-rt-18 + - wasm32-wasi-compiler-rt-18 + - win32-compiler-rt-18 + - win64-compiler-rt-18 + +macosx64-aarch64-clang-18-raw: + description: "Clang 18 toolchain build" + treeherder: + symbol: TM(clang-18-aarch64-raw) + worker-type: b-linux-large-gcp + worker: + max-run-time: 3600 + run: + script: build-clang.sh + arguments: + - 'build/build-clang/macosx64.json' + - 'build/build-clang/macosx64-aarch64.json' + - 'build/build-clang/clang-18.json' + - 'build/build-clang/skip-3-stages.json' + - 'build/build-clang/4stages-pgo.json' + resources: + - 'build/build-clang/macosx64.json' + - 'build/build-clang/macosx64-aarch64.json' + - 'build/build-clang/clang-18.json' + - 'build/build-clang/skip-3-stages.json' + - 'build/build-clang/4stages-pgo.json' + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-18 + toolchain: + - linux64-clang-18-stage1 + - linux64-clang-18-profile + - macosx64-sdk-toolchain + - macosx64-aarch64-compiler-rt-18 + +macosx64-aarch64-clang-18: + description: "Clang 18 toolchain repack with MacOS Compiler RT libs" + attributes: + local-toolchain: true + treeherder: + symbol: TM(clang-18-aarch64) + worker-type: b-linux-gcp + worker: + max-run-time: 600 + run: + script: repack-clang.sh + toolchain-artifact: public/build/clang.tar.zst + fetches: + toolchain: + - linux64-cctools-port + - macosx64-aarch64-clang-18-raw + - android-aarch64-compiler-rt-18 + - android-aarch64-libunwind-18 + - android-arm-compiler-rt-18 + - android-arm-libunwind-18 + - android-x64-compiler-rt-18 + - android-x64-libunwind-18 + - android-x86-compiler-rt-18 + - android-x86-libunwind-18 + - linux64-aarch64-compiler-rt-18 + - linux64-x64-compiler-rt-18 + - linux64-x86-compiler-rt-18 + - macosx64-aarch64-compiler-rt-18 + - macosx64-x64-compiler-rt-18 + - wasm32-wasi-compiler-rt-18 + - win32-compiler-rt-18 + - win64-compiler-rt-18 + +win64-clang-18-stage1: + description: "Clang-cl 18 toolchain build stage 1" + treeherder: + symbol: TW64(clang-18-stage1) + run: + script: build-clang.sh + arguments: + - 'build/build-clang/win64.json' + - 'build/build-clang/clang-18.json' + - 'build/build-clang/1stage.json' + resources: + - 'build/build-clang/win64.json' + - 'build/build-clang/clang-18.json' + - 'build/build-clang/1stage.json' + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-18 + toolchain: + - linux64-clang-18-stage1 + - vs-toolchain + +win64-clang-18-raw: + description: "Clang-cl 18 toolchain build" + treeherder: + symbol: TW64(clang-18-raw) + worker-type: b-win2022 + worker: + max-run-time: 9000 + run: + script: build-clang.sh + arguments: + - 'build/build-clang/win64.json' + - 'build/build-clang/clang-18.json' + - 'build/build-clang/skip-stage-1-win64.json' + - 'build/build-clang/4stages-pgo.json' + resources: + - 'build/build-clang/win64.json' + - 'build/build-clang/clang-18.json' + - 'build/build-clang/skip-stage-1-win64.json' + - 'build/build-clang/4stages-pgo.json' + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-18 + - cmake + - ninja + toolchain: + - win64-clang-18-stage1 + - win64-compiler-rt-18 + - vs-toolchain + +win64-clang-18: + description: "Clang-cl 18 toolchain build" + attributes: + local-toolchain: true + treeherder: + symbol: TW64(clang-18) + worker-type: b-linux-gcp + worker: + max-run-time: 600 + run: + script: repack-clang.sh + toolchain-artifact: public/build/clang.tar.zst + fetches: + toolchain: + - linux64-cctools-port + - win64-clang-18-raw + - android-aarch64-compiler-rt-18 + - android-aarch64-libunwind-18 + - android-arm-compiler-rt-18 + - android-arm-libunwind-18 + - android-x64-compiler-rt-18 + - android-x64-libunwind-18 + - android-x86-compiler-rt-18 + - android-x86-libunwind-18 + - linux64-aarch64-compiler-rt-18 + - linux64-x64-compiler-rt-18 + - linux64-x86-compiler-rt-18 + - macosx64-aarch64-compiler-rt-18 + - macosx64-x64-compiler-rt-18 + - wasm32-wasi-compiler-rt-18 + - win32-compiler-rt-18 + - win64-compiler-rt-18 + +linux64-clang-trunk-mingw-x86: + description: "MinGW-Clang trunk x86 toolchain build" + attributes: + cached_task: false + treeherder: + symbol: TMW(clang-trunk-x86) + worker-type: b-linux-gcp + run: + script: build-clang-mingw.sh + arguments: + - 'x86' + resources: + - 'taskcluster/scripts/misc/mingw-*.patch' + toolchain-alias: + by-project: + toolchains: linux64-clang-mingw-x86 + default: null + toolchain-artifact: public/build/clangmingw.tar.zst + fetches: + fetch: + - clang-trunk + - mingw-w64-trunk + - llvm-mingw + - gcc-9.5.0 + toolchain: + - linux64-clang-trunk + +linux64-clang-trunk-mingw-x64: + description: "MinGW-Clang trunk x64 toolchain build" + attributes: + cached_task: false + treeherder: + symbol: TMW(clang-trunk-x64) + tier: 1 + worker-type: b-linux-gcp + run: + script: build-clang-mingw.sh + arguments: + - 'x64' + resources: + - 'taskcluster/scripts/misc/mingw-*.patch' + toolchain-alias: + by-project: + toolchains: linux64-clang-mingw-x64 + default: null + toolchain-artifact: public/build/clangmingw.tar.zst + fetches: + fetch: + - clang-trunk + - mingw-w64-trunk + - llvm-mingw + - gcc-9.5.0 + toolchain: + - linux64-clang-trunk + +linux64-clang-trunk-stage1: + description: "Clang trunk toolchain build" + attributes: + cached_task: false + treeherder: + symbol: TL(clang-trunk-stage1) + run: + using: toolchain-script + script: build-clang.sh + arguments: + - 'build/build-clang/linux64.json' + - 'build/build-clang/clang-trunk.json' + - 'build/build-clang/1stage.json' + resources: + - 'build/build-clang/linux64.json' + - 'build/build-clang/clang-trunk.json' + - 'build/build-clang/1stage.json' + toolchain-alias: + by-project: + toolchains: linux64-clang-toolchain + default: null + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-trunk + toolchain: + - linux64-toolchain-sysroot + +linux64-clang-trunk-profile: + description: "Clang trunk toolchain build" + attributes: + cached_task: false + treeherder: + symbol: TL(clang-trunk-profile) + run: + using: toolchain-script + script: build-clang.sh + arguments: + - 'build/build-clang/linux64.json' + - 'build/build-clang/clang-trunk.json' + - 'build/build-clang/skip-stage-1.json' + - 'build/build-clang/profile.json' + resources: + - 'build/build-clang/linux64.json' + - 'build/build-clang/clang-trunk.json' + - 'build/build-clang/skip-stage-1.json' + - 'build/build-clang/profile.json' + toolchain-artifact: public/build/merged.profdata + fetches: + fetch: + - clang-trunk + toolchain: + - linux64-clang-trunk-stage1 + - linux64-x64-compiler-rt-trunk + - linux64-toolchain-sysroot + +linux64-clang-trunk-raw: + description: "Clang trunk toolchain build" + attributes: + cached_task: false + treeherder: + symbol: TL(clang-trunk-raw) + run: + script: build-clang.sh + arguments: + - 'build/build-clang/linux64.json' + - 'build/build-clang/clang-trunk.json' + - 'build/build-clang/skip-3-stages.json' + - 'build/build-clang/4stages-pgo.json' + resources: + - 'build/build-clang/linux64.json' + - 'build/build-clang/clang-trunk.json' + - 'build/build-clang/skip-3-stages.json' + - 'build/build-clang/4stages-pgo.json' + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-trunk + toolchain: + - linux64-clang-trunk-stage1 + - linux64-clang-trunk-profile + - linux64-toolchain-sysroot + +linux64-clang-trunk: + description: "Clang trunk toolchain build" + attributes: + cached_task: false + treeherder: + symbol: TL(clang-trunk) + worker-type: b-linux-gcp + worker: + max-run-time: 600 + run: + script: repack-clang.sh + toolchain-alias: + by-project: + toolchains: linux64-clang + default: null + toolchain-artifact: public/build/clang.tar.zst + fetches: + toolchain: + - linux64-cctools-port + - linux64-clang-trunk-raw + - android-aarch64-compiler-rt-trunk + - android-aarch64-libunwind-trunk + - android-arm-compiler-rt-trunk + - android-arm-libunwind-trunk + - android-x64-compiler-rt-trunk + - android-x64-libunwind-trunk + - android-x86-compiler-rt-trunk + - android-x86-libunwind-trunk + - linux64-aarch64-compiler-rt-trunk + - linux64-x64-compiler-rt-trunk + - linux64-x86-compiler-rt-trunk + - macosx64-aarch64-compiler-rt-trunk + - macosx64-x64-compiler-rt-trunk + - wasm32-wasi-compiler-rt-trunk + - win32-compiler-rt-trunk + - win64-compiler-rt-trunk + +macosx64-clang-trunk-raw: + description: "Clang trunk toolchain build" + attributes: + cached_task: false + treeherder: + symbol: TM(clang-trunk-raw) + worker-type: b-linux-large-gcp + worker: + max-run-time: 3600 + run: + script: build-clang.sh + arguments: + - 'build/build-clang/macosx64.json' + - 'build/build-clang/clang-trunk.json' + - 'build/build-clang/skip-3-stages.json' + - 'build/build-clang/4stages-pgo.json' + resources: + - 'build/build-clang/macosx64.json' + - 'build/build-clang/clang-trunk.json' + - 'build/build-clang/skip-3-stages.json' + - 'build/build-clang/4stages-pgo.json' + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-trunk + toolchain: + - linux64-clang-trunk-stage1 + - linux64-clang-trunk-profile + - macosx64-sdk-toolchain + - macosx64-x64-compiler-rt-trunk + +macosx64-clang-trunk: + description: "Clang trunk toolchain repack with MacOS Compiler RT libs" + attributes: + cached_task: false + treeherder: + symbol: TM(clang-trunk) + worker-type: b-linux-gcp + worker: + max-run-time: 600 + run: + script: repack-clang.sh + toolchain-alias: + by-project: + toolchains: + - macosx64-clang + - macosx64-clang-toolchain + default: null + toolchain-artifact: public/build/clang.tar.zst + fetches: + toolchain: + - linux64-cctools-port + - macosx64-clang-trunk-raw + - android-aarch64-compiler-rt-trunk + - android-aarch64-libunwind-trunk + - android-arm-compiler-rt-trunk + - android-arm-libunwind-trunk + - android-x64-compiler-rt-trunk + - android-x64-libunwind-trunk + - android-x86-compiler-rt-trunk + - android-x86-libunwind-trunk + - linux64-aarch64-compiler-rt-trunk + - linux64-x64-compiler-rt-trunk + - linux64-x86-compiler-rt-trunk + - macosx64-aarch64-compiler-rt-trunk + - macosx64-x64-compiler-rt-trunk + - wasm32-wasi-compiler-rt-trunk + - win32-compiler-rt-trunk + - win64-compiler-rt-trunk + +macosx64-aarch64-clang-trunk-raw: + description: "Clang trunk toolchain build" + attributes: + cached_task: false + treeherder: + symbol: TM(clang-trunk-aarch64-raw) + worker-type: b-linux-large-gcp + worker: + max-run-time: 3600 + run: + script: build-clang.sh + arguments: + - 'build/build-clang/macosx64.json' + - 'build/build-clang/macosx64-aarch64.json' + - 'build/build-clang/clang-trunk.json' + - 'build/build-clang/skip-3-stages.json' + - 'build/build-clang/4stages-pgo.json' + resources: + - 'build/build-clang/macosx64.json' + - 'build/build-clang/macosx64-aarch64.json' + - 'build/build-clang/clang-trunk.json' + - 'build/build-clang/skip-3-stages.json' + - 'build/build-clang/4stages-pgo.json' + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-trunk + toolchain: + - linux64-clang-trunk-stage1 + - linux64-clang-trunk-profile + - macosx64-sdk-toolchain + - macosx64-aarch64-compiler-rt-trunk + +macosx64-aarch64-clang-trunk: + description: "Clang trunk toolchain repack with MacOS Compiler RT libs" + attributes: + cached_task: false + treeherder: + symbol: TM(clang-trunk-aarch64) + worker-type: b-linux-gcp + worker: + max-run-time: 600 + run: + script: repack-clang.sh + toolchain-alias: + by-project: + toolchains: macosx64-aarch64-clang + default: null + toolchain-artifact: public/build/clang.tar.zst + fetches: + toolchain: + - linux64-cctools-port + - macosx64-aarch64-clang-trunk-raw + - android-aarch64-compiler-rt-trunk + - android-aarch64-libunwind-trunk + - android-arm-compiler-rt-trunk + - android-arm-libunwind-trunk + - android-x64-compiler-rt-trunk + - android-x64-libunwind-trunk + - android-x86-compiler-rt-trunk + - android-x86-libunwind-trunk + - linux64-aarch64-compiler-rt-trunk + - linux64-x64-compiler-rt-trunk + - linux64-x86-compiler-rt-trunk + - macosx64-aarch64-compiler-rt-trunk + - macosx64-x64-compiler-rt-trunk + - wasm32-wasi-compiler-rt-trunk + - win32-compiler-rt-trunk + - win64-compiler-rt-trunk + +win64-clang-trunk-stage1: + description: "Clang-cl trunk toolchain build stage 1" + attributes: + cached_task: false + treeherder: + symbol: TW64(clang-trunk-stage1) + run: + script: build-clang.sh + arguments: + - 'build/build-clang/win64.json' + - 'build/build-clang/clang-trunk.json' + - 'build/build-clang/1stage.json' + resources: + - 'build/build-clang/win64.json' + - 'build/build-clang/clang-trunk.json' + - 'build/build-clang/1stage.json' + toolchain-alias: + by-project: + toolchains: win64-clang-toolchain + default: null + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-trunk + toolchain: + - linux64-clang-trunk-stage1 + - vs-toolchain + +win64-clang-trunk-raw: + description: "Clang-cl trunk toolchain build" + attributes: + cached_task: false + treeherder: + symbol: TW64(clang-trunk-raw) + worker-type: b-win2022 + worker: + max-run-time: 9000 + run: + script: build-clang.sh + arguments: + - 'build/build-clang/win64.json' + - 'build/build-clang/clang-trunk.json' + - 'build/build-clang/skip-stage-1-win64.json' + - 'build/build-clang/4stages-pgo.json' + resources: + - 'build/build-clang/win64.json' + - 'build/build-clang/clang-trunk.json' + - 'build/build-clang/skip-stage-1-win64.json' + - 'build/build-clang/4stages-pgo.json' + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-trunk + - cmake + - ninja + toolchain: + - win64-clang-trunk-stage1 + - win64-compiler-rt-trunk + - vs-toolchain + +win64-clang-trunk: + description: "Clang-cl trunk toolchain build" + attributes: + cached_task: false + treeherder: + symbol: TW64(clang-trunk) + worker-type: b-linux-gcp + worker: + max-run-time: 600 + run: + script: repack-clang.sh + toolchain-alias: + by-project: + toolchains: win64-clang + default: null + toolchain-artifact: public/build/clang.tar.zst + fetches: + toolchain: + - linux64-cctools-port + - win64-clang-trunk-raw + - android-aarch64-compiler-rt-trunk + - android-aarch64-libunwind-trunk + - android-arm-compiler-rt-trunk + - android-arm-libunwind-trunk + - android-x64-compiler-rt-trunk + - android-x64-libunwind-trunk + - android-x86-compiler-rt-trunk + - android-x86-libunwind-trunk + - linux64-aarch64-compiler-rt-trunk + - linux64-x64-compiler-rt-trunk + - linux64-x86-compiler-rt-trunk + - macosx64-aarch64-compiler-rt-trunk + - macosx64-x64-compiler-rt-trunk + - wasm32-wasi-compiler-rt-trunk + - win32-compiler-rt-trunk + - win64-compiler-rt-trunk diff --git a/taskcluster/ci/toolchain/compiler-rt.yml b/taskcluster/ci/toolchain/compiler-rt.yml new file mode 100644 index 0000000000..631024fbf9 --- /dev/null +++ b/taskcluster/ci/toolchain/compiler-rt.yml @@ -0,0 +1,705 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + worker-type: b-linux-gcp + worker: + max-run-time: 1800 + run: + using: toolchain-script + script: build-compiler-rt.sh + +wasm32-wasi-compiler-rt-8.0: + description: "wasm32-wasi Compiler-rt for Clang 8 toolchain build" + treeherder: + symbol: TL(wasi-crt-8) + worker-type: b-linux-xlarge-gcp + run: + script: build-compiler-rt-wasi.sh + arguments: + - wasi-sdk-11.patch + resources: + - taskcluster/scripts/misc/wasi-sdk-11.patch + toolchain-artifact: public/build/compiler-rt-wasm32-wasi.tar.zst + fetches: + fetch: + - clang-8.0 + - wasi-sdk-11 + toolchain: + - linux64-clang-8.0-raw + +android-aarch64-compiler-rt-17: + description: "android aarch64 Compiler-rt for Clang 17 toolchain build" + treeherder: + symbol: TA(aarch64-crt-17) + run: + arguments: + - build/build-clang/clang-17.json + resources: + - build/build-clang/clang-17.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-aarch64-linux-android.tar.zst + fetches: + fetch: + - clang-17 + toolchain: + - linux64-clang-17-stage1 + - linux64-android-ndk-linux-repack + +android-arm-compiler-rt-17: + description: "android arm Compiler-rt for Clang 17 toolchain build" + treeherder: + symbol: TA(arm-crt-17) + run: + arguments: + - build/build-clang/clang-17.json + resources: + - build/build-clang/clang-17.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-armv7-linux-android.tar.zst + fetches: + fetch: + - clang-17 + toolchain: + - linux64-clang-17-stage1 + - linux64-android-ndk-linux-repack + +android-x86-compiler-rt-17: + description: "android x86 Compiler-rt for Clang 17 toolchain build" + treeherder: + symbol: TA(x86-crt-17) + run: + arguments: + - build/build-clang/clang-17.json + resources: + - build/build-clang/clang-17.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-i686-linux-android.tar.zst + fetches: + fetch: + - clang-17 + toolchain: + - linux64-clang-17-stage1 + - linux64-android-ndk-linux-repack + +android-x64-compiler-rt-17: + description: "android x64 Compiler-rt for Clang 17 toolchain build" + treeherder: + symbol: TA(x64-crt-17) + run: + arguments: + - build/build-clang/clang-17.json + resources: + - build/build-clang/clang-17.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-x86_64-linux-android.tar.zst + fetches: + fetch: + - clang-17 + toolchain: + - linux64-clang-17-stage1 + - linux64-android-ndk-linux-repack + +linux64-x86-compiler-rt-17: + description: "Linux x86 Compiler-rt for Clang 17 toolchain build" + treeherder: + symbol: TL(x86-crt-17) + run: + arguments: + - build/build-clang/clang-17.json + resources: + - build/build-clang/clang-17.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-i686-unknown-linux-gnu.tar.zst + fetches: + fetch: + - clang-17 + toolchain: + - linux64-clang-17-stage1 + - sysroot-i686-linux-gnu + +linux64-x64-compiler-rt-17: + description: "Linux x64 Compiler-rt for Clang 17 toolchain build" + treeherder: + symbol: TL(x64-crt-17) + run: + arguments: + - build/build-clang/clang-17.json + resources: + - build/build-clang/clang-17.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-x86_64-unknown-linux-gnu.tar.zst + fetches: + fetch: + - clang-17 + toolchain: + - linux64-clang-17-stage1 + - sysroot-x86_64-linux-gnu + +linux64-aarch64-compiler-rt-17: + description: "Linux aarch64 Compiler-rt for Clang 17 toolchain build" + treeherder: + symbol: TL(aarch64-crt-17) + run: + arguments: + - build/build-clang/clang-17.json + resources: + - build/build-clang/clang-17.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-aarch64-unknown-linux-gnu.tar.zst + fetches: + fetch: + - clang-17 + toolchain: + - linux64-clang-17-stage1 + - sysroot-aarch64-linux-gnu + +macosx64-x64-compiler-rt-17: + description: "macOS x64 Compiler-rt for Clang 17 toolchain build" + treeherder: + symbol: TM(x64-crt-17) + run: + arguments: + - build/build-clang/clang-17.json + resources: + - build/build-clang/clang-17.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-x86_64-apple-darwin.tar.zst + fetches: + fetch: + - clang-17 + toolchain: + - linux64-clang-17-stage1 + - macosx64-sdk-toolchain + +macosx64-aarch64-compiler-rt-17: + description: "macOS aarch64 Compiler-rt for Clang 17 toolchain build" + treeherder: + symbol: TM(aarch64-crt-17) + run: + arguments: + - build/build-clang/clang-17.json + resources: + - build/build-clang/clang-17.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-aarch64-apple-darwin.tar.zst + fetches: + fetch: + - clang-17 + toolchain: + - linux64-clang-17-stage1 + - macosx64-sdk-toolchain + +win32-compiler-rt-17: + description: "win32 x86 Compiler-rt for Clang 17 toolchain build" + treeherder: + symbol: TW32(crt-17) + run: + arguments: + - build/build-clang/clang-17.json + resources: + - build/build-clang/clang-17.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-i686-pc-windows-msvc.tar.zst + fetches: + fetch: + - clang-17 + toolchain: + - linux64-clang-17-stage1 + - vs-toolchain + +win64-compiler-rt-17: + description: "win64 x64 Compiler-rt for Clang 17 toolchain build" + treeherder: + symbol: TW64(crt-17) + run: + arguments: + - build/build-clang/clang-17.json + resources: + - build/build-clang/clang-17.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-x86_64-pc-windows-msvc.tar.zst + fetches: + fetch: + - clang-17 + toolchain: + - linux64-clang-17-stage1 + - vs-toolchain + +wasm32-wasi-compiler-rt-17: + description: "wasm32-wasi Compiler-rt for Clang 17 toolchain build" + treeherder: + symbol: TL(wasi-crt-17) + worker-type: b-linux-xlarge-gcp + run: + script: build-compiler-rt-wasi.sh + arguments: + - wasi-sdk.patch + resources: + - taskcluster/scripts/misc/wasi-sdk.patch + toolchain-artifact: public/build/compiler-rt-wasm32-wasi.tar.zst + fetches: + fetch: + - clang-17 + - wasi-sdk + toolchain: + - linux64-clang-17-stage1 + +android-aarch64-compiler-rt-18: + description: "android aarch64 Compiler-rt for Clang 18 toolchain build" + treeherder: + symbol: TA(aarch64-crt-18) + run: + arguments: + - build/build-clang/clang-18.json + resources: + - build/build-clang/clang-18.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-aarch64-linux-android.tar.zst + fetches: + fetch: + - clang-18 + toolchain: + - linux64-clang-18-stage1 + - linux64-android-ndk-linux-repack + +android-arm-compiler-rt-18: + description: "android arm Compiler-rt for Clang 18 toolchain build" + treeherder: + symbol: TA(arm-crt-18) + run: + arguments: + - build/build-clang/clang-18.json + resources: + - build/build-clang/clang-18.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-armv7-linux-android.tar.zst + fetches: + fetch: + - clang-18 + toolchain: + - linux64-clang-18-stage1 + - linux64-android-ndk-linux-repack + +android-x86-compiler-rt-18: + description: "android x86 Compiler-rt for Clang 18 toolchain build" + treeherder: + symbol: TA(x86-crt-18) + run: + arguments: + - build/build-clang/clang-18.json + resources: + - build/build-clang/clang-18.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-i686-linux-android.tar.zst + fetches: + fetch: + - clang-18 + toolchain: + - linux64-clang-18-stage1 + - linux64-android-ndk-linux-repack + +android-x64-compiler-rt-18: + description: "android x64 Compiler-rt for Clang 18 toolchain build" + treeherder: + symbol: TA(x64-crt-18) + run: + arguments: + - build/build-clang/clang-18.json + resources: + - build/build-clang/clang-18.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-x86_64-linux-android.tar.zst + fetches: + fetch: + - clang-18 + toolchain: + - linux64-clang-18-stage1 + - linux64-android-ndk-linux-repack + +linux64-x86-compiler-rt-18: + description: "Linux x86 Compiler-rt for Clang 18 toolchain build" + treeherder: + symbol: TL(x86-crt-18) + run: + arguments: + - build/build-clang/clang-18.json + resources: + - build/build-clang/clang-18.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-i686-unknown-linux-gnu.tar.zst + fetches: + fetch: + - clang-18 + toolchain: + - linux64-clang-18-stage1 + - sysroot-i686-linux-gnu + +linux64-x64-compiler-rt-18: + description: "Linux x64 Compiler-rt for Clang 18 toolchain build" + treeherder: + symbol: TL(x64-crt-18) + run: + arguments: + - build/build-clang/clang-18.json + resources: + - build/build-clang/clang-18.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-x86_64-unknown-linux-gnu.tar.zst + fetches: + fetch: + - clang-18 + toolchain: + - linux64-clang-18-stage1 + - sysroot-x86_64-linux-gnu + +linux64-aarch64-compiler-rt-18: + description: "Linux aarch64 Compiler-rt for Clang 18 toolchain build" + treeherder: + symbol: TL(aarch64-crt-18) + run: + arguments: + - build/build-clang/clang-18.json + resources: + - build/build-clang/clang-18.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-aarch64-unknown-linux-gnu.tar.zst + fetches: + fetch: + - clang-18 + toolchain: + - linux64-clang-18-stage1 + - sysroot-aarch64-linux-gnu + +macosx64-x64-compiler-rt-18: + description: "macOS x64 Compiler-rt for Clang 18 toolchain build" + treeherder: + symbol: TM(x64-crt-18) + run: + arguments: + - build/build-clang/clang-18.json + resources: + - build/build-clang/clang-18.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-x86_64-apple-darwin.tar.zst + fetches: + fetch: + - clang-18 + toolchain: + - linux64-clang-18-stage1 + - macosx64-sdk-toolchain + +macosx64-aarch64-compiler-rt-18: + description: "macOS aarch64 Compiler-rt for Clang 18 toolchain build" + treeherder: + symbol: TM(aarch64-crt-18) + run: + arguments: + - build/build-clang/clang-18.json + resources: + - build/build-clang/clang-18.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-aarch64-apple-darwin.tar.zst + fetches: + fetch: + - clang-18 + toolchain: + - linux64-clang-18-stage1 + - macosx64-sdk-toolchain + +win32-compiler-rt-18: + description: "win32 x86 Compiler-rt for Clang 18 toolchain build" + treeherder: + symbol: TW32(crt-18) + run: + arguments: + - build/build-clang/clang-18.json + resources: + - build/build-clang/clang-18.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-i686-pc-windows-msvc.tar.zst + fetches: + fetch: + - clang-18 + toolchain: + - linux64-clang-18-stage1 + - vs-toolchain + +win64-compiler-rt-18: + description: "win64 x64 Compiler-rt for Clang 18 toolchain build" + treeherder: + symbol: TW64(crt-18) + run: + arguments: + - build/build-clang/clang-18.json + resources: + - build/build-clang/clang-18.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-x86_64-pc-windows-msvc.tar.zst + fetches: + fetch: + - clang-18 + toolchain: + - linux64-clang-18-stage1 + - vs-toolchain + +wasm32-wasi-compiler-rt-18: + description: "wasm32-wasi Compiler-rt for Clang 18 toolchain build" + treeherder: + symbol: TL(wasi-crt-18) + worker-type: b-linux-xlarge-gcp + run: + script: build-compiler-rt-wasi.sh + arguments: + - wasi-sdk.patch + resources: + - taskcluster/scripts/misc/wasi-sdk.patch + toolchain-artifact: public/build/compiler-rt-wasm32-wasi.tar.zst + fetches: + fetch: + - clang-18 + - wasi-sdk + toolchain: + - linux64-clang-18-stage1 + +android-aarch64-compiler-rt-trunk: + description: "android aarch64 Compiler-rt for Clang trunk toolchain build" + attributes: + cached_task: false + treeherder: + symbol: TA(aarch64-crt-trunk) + run: + arguments: + - build/build-clang/clang-trunk.json + resources: + - build/build-clang/clang-trunk.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-aarch64-linux-android.tar.zst + fetches: + fetch: + - clang-trunk + toolchain: + - linux64-clang-trunk-stage1 + - linux64-android-ndk-linux-repack + +android-arm-compiler-rt-trunk: + description: "android arm Compiler-rt for Clang trunk toolchain build" + attributes: + cached_task: false + treeherder: + symbol: TA(arm-crt-trunk) + run: + arguments: + - build/build-clang/clang-trunk.json + resources: + - build/build-clang/clang-trunk.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-armv7-linux-android.tar.zst + fetches: + fetch: + - clang-trunk + toolchain: + - linux64-clang-trunk-stage1 + - linux64-android-ndk-linux-repack + +android-x86-compiler-rt-trunk: + description: "android x86 Compiler-rt for Clang trunk toolchain build" + attributes: + cached_task: false + treeherder: + symbol: TA(x86-crt-trunk) + run: + arguments: + - build/build-clang/clang-trunk.json + resources: + - build/build-clang/clang-trunk.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-i686-linux-android.tar.zst + fetches: + fetch: + - clang-trunk + toolchain: + - linux64-clang-trunk-stage1 + - linux64-android-ndk-linux-repack + +android-x64-compiler-rt-trunk: + description: "android x64 Compiler-rt for Clang trunk toolchain build" + attributes: + cached_task: false + treeherder: + symbol: TA(x64-crt-trunk) + run: + arguments: + - build/build-clang/clang-trunk.json + resources: + - build/build-clang/clang-trunk.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-x86_64-linux-android.tar.zst + fetches: + fetch: + - clang-trunk + toolchain: + - linux64-clang-trunk-stage1 + - linux64-android-ndk-linux-repack + +linux64-x86-compiler-rt-trunk: + description: "Linux x86 Compiler-rt for Clang trunk toolchain build" + attributes: + cached_task: false + treeherder: + symbol: TL(x86-crt-trunk) + run: + arguments: + - build/build-clang/clang-trunk.json + resources: + - build/build-clang/clang-trunk.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-i686-unknown-linux-gnu.tar.zst + fetches: + fetch: + - clang-trunk + toolchain: + - linux64-clang-trunk-stage1 + - sysroot-i686-linux-gnu + +linux64-x64-compiler-rt-trunk: + description: "Linux x64 Compiler-rt for Clang trunk toolchain build" + attributes: + cached_task: false + treeherder: + symbol: TL(x64-crt-trunk) + run: + arguments: + - build/build-clang/clang-trunk.json + resources: + - build/build-clang/clang-trunk.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-x86_64-unknown-linux-gnu.tar.zst + fetches: + fetch: + - clang-trunk + toolchain: + - linux64-clang-trunk-stage1 + - sysroot-x86_64-linux-gnu + +linux64-aarch64-compiler-rt-trunk: + description: "Linux aarch64 Compiler-rt for Clang trunk toolchain build" + attributes: + cached_task: false + treeherder: + symbol: TL(aarch64-crt-trunk) + run: + arguments: + - build/build-clang/clang-trunk.json + resources: + - build/build-clang/clang-trunk.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-aarch64-unknown-linux-gnu.tar.zst + fetches: + fetch: + - clang-trunk + toolchain: + - linux64-clang-trunk-stage1 + - sysroot-aarch64-linux-gnu + +macosx64-x64-compiler-rt-trunk: + description: "macOS x64 Compiler-rt for Clang trunk toolchain build" + attributes: + cached_task: false + treeherder: + symbol: TM(x64-crt-trunk) + run: + arguments: + - build/build-clang/clang-trunk.json + resources: + - build/build-clang/clang-trunk.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-x86_64-apple-darwin.tar.zst + fetches: + fetch: + - clang-trunk + toolchain: + - linux64-clang-trunk-stage1 + - macosx64-sdk-toolchain + +macosx64-aarch64-compiler-rt-trunk: + description: "macOS aarch64 Compiler-rt for Clang trunk toolchain build" + attributes: + cached_task: false + treeherder: + symbol: TM(aarch64-crt-trunk) + run: + arguments: + - build/build-clang/clang-trunk.json + resources: + - build/build-clang/clang-trunk.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-aarch64-apple-darwin.tar.zst + fetches: + fetch: + - clang-trunk + toolchain: + - linux64-clang-trunk-stage1 + - macosx64-sdk-toolchain + +win32-compiler-rt-trunk: + description: "win32 x86 Compiler-rt for Clang trunk toolchain build" + attributes: + cached_task: false + treeherder: + symbol: TW32(crt-trunk) + run: + arguments: + - build/build-clang/clang-trunk.json + resources: + - build/build-clang/clang-trunk.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-i686-pc-windows-msvc.tar.zst + fetches: + fetch: + - clang-trunk + toolchain: + - linux64-clang-trunk-stage1 + - vs-toolchain + +win64-compiler-rt-trunk: + description: "win64 x64 Compiler-rt for Clang trunk toolchain build" + attributes: + cached_task: false + treeherder: + symbol: TW64(crt-trunk) + run: + arguments: + - build/build-clang/clang-trunk.json + resources: + - build/build-clang/clang-trunk.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/compiler-rt-x86_64-pc-windows-msvc.tar.zst + fetches: + fetch: + - clang-trunk + toolchain: + - linux64-clang-trunk-stage1 + - vs-toolchain + +wasm32-wasi-compiler-rt-trunk: + description: "wasm32-wasi Compiler-rt for Clang trunk toolchain build" + attributes: + cached_task: false + treeherder: + symbol: TL(wasi-crt-trunk) + worker-type: b-linux-xlarge-gcp + run: + script: build-compiler-rt-wasi.sh + arguments: + - wasi-sdk.patch + resources: + - taskcluster/scripts/misc/wasi-sdk.patch + toolchain-artifact: public/build/compiler-rt-wasm32-wasi.tar.zst + fetches: + fetch: + - clang-trunk + - wasi-sdk + toolchain: + - linux64-clang-trunk-stage1 diff --git a/taskcluster/ci/toolchain/dist-toolchains.yml b/taskcluster/ci/toolchain/dist-toolchains.yml new file mode 100644 index 0000000000..31b60918e6 --- /dev/null +++ b/taskcluster/ci/toolchain/dist-toolchains.yml @@ -0,0 +1,40 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + description: "sccache-dist toolchain archive build" + attributes: + local-toolchain: true + worker-type: b-linux-gcp + run: + using: toolchain-script + script: build-dist-toolchains.sh + +clang-dist-toolchain: + treeherder: + symbol: TL(clang-dist) + worker: + max-run-time: 1800 + run: + arguments: ['clang'] + toolchain-artifact: public/build/clang-dist-toolchain.tar.xz + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + +rustc-dist-toolchain: + treeherder: + symbol: TL(rustc-dist) + worker: + max-run-time: 1800 + run: + arguments: ['rustc'] + toolchain-artifact: public/build/rustc-dist-toolchain.tar.xz + use-sccache: true + fetches: + toolchain: + - linux64-rust-cross + - linux64-sccache diff --git a/taskcluster/ci/toolchain/dump-syms.yml b/taskcluster/ci/toolchain/dump-syms.yml new file mode 100644 index 0000000000..95e90b5984 --- /dev/null +++ b/taskcluster/ci/toolchain/dump-syms.yml @@ -0,0 +1,62 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + attributes: + local-toolchain: true + description: "dump_syms toolchain build" + worker-type: b-linux-gcp + worker: + max-run-time: 1800 + run: + script: build-rust-based-toolchain.sh + toolchain-artifact: public/build/dump_syms.tar.zst + fetches: + fetch: + - dump-syms + +linux64-dump_syms: + treeherder: + symbol: TL(dump_syms) + run: + arguments: ['x86_64-unknown-linux-gnu'] + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-rust-toolchain + - sysroot-x86_64-linux-gnu + +macosx64-dump_syms: + treeherder: + symbol: TM(dump_syms) + worker-type: b-linux-gcp + run: + arguments: ['x86_64-apple-darwin'] + fetches: + toolchain: + - linux64-rust-macos-toolchain + - linux64-clang-toolchain + - macosx64-sdk-toolchain + +macosx64-aarch64-dump_syms: + treeherder: + symbol: TM(dump_syms-arm64) + run: + arguments: ['aarch64-apple-darwin'] + fetches: + toolchain: + - linux64-rust-macos-toolchain + - linux64-clang-toolchain + - macosx64-sdk-toolchain + +win64-dump_syms: + treeherder: + symbol: TW64(dump_syms) + run: + arguments: ['x86_64-pc-windows-msvc'] + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-rust-windows-toolchain + - vs-toolchain diff --git a/taskcluster/ci/toolchain/fix-stacks.yml b/taskcluster/ci/toolchain/fix-stacks.yml new file mode 100644 index 0000000000..e11bf0b166 --- /dev/null +++ b/taskcluster/ci/toolchain/fix-stacks.yml @@ -0,0 +1,72 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + description: "fix-stacks toolchain build" + attributes: + local-toolchain: true + worker-type: b-linux-gcp + worker: + max-run-time: 1800 + run: + script: build-rust-based-toolchain.sh + toolchain-artifact: public/build/fix-stacks.tar.zst + fetches: + fetch: + - fix-stacks + +linux64-fix-stacks: + treeherder: + symbol: TL(fix-stacks) + run: + arguments: ['x86_64-unknown-linux-gnu'] + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-rust-toolchain + - sysroot-x86_64-linux-gnu + +macosx64-fix-stacks: + treeherder: + symbol: TM(fix-stacks) + run: + arguments: ['x86_64-apple-darwin'] + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-rust-macos-toolchain + - macosx64-sdk-toolchain + +macosx64-aarch64-fix-stacks: + treeherder: + symbol: TM(fix-stacks-arm64) + run: + arguments: ['aarch64-apple-darwin'] + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-rust-macos-toolchain + - macosx64-sdk-toolchain + +win32-fix-stacks: + treeherder: + symbol: TW32(fix-stacks) + run: + arguments: ['i686-pc-windows-msvc'] + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-rust-windows-toolchain + - vs-toolchain + +win64-fix-stacks: + treeherder: + symbol: TW64(fix-stacks) + run: + arguments: ['x86_64-pc-windows-msvc'] + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-rust-windows-toolchain + - vs-toolchain diff --git a/taskcluster/ci/toolchain/gcc.yml b/taskcluster/ci/toolchain/gcc.yml new file mode 100644 index 0000000000..2a09c37e6c --- /dev/null +++ b/taskcluster/ci/toolchain/gcc.yml @@ -0,0 +1,79 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + worker-type: b-linux-gcp + worker: + max-run-time: 3600 + run: + resources: + - 'build/unix/build-gcc/build-gcc.sh' + toolchain-artifact: public/build/gcc.tar.zst + fetches: + toolchain: + - linux64-toolchain-sysroot + +linux64-gcc-8: + description: "GCC 8 toolchain build" + treeherder: + symbol: TL(gcc8) + run: + script: build-gcc-linux.sh + toolchain-alias: + - linux64-gcc + - linux64-gcc-base + fetches: + fetch: + - gcc-8.5.0 + - gmp-6.1.0 + - isl-0.16.1 + - mpc-1.0.3 + - mpfr-3.1.4 + +linux64-gcc-9: + description: "GCC 9 toolchain build" + treeherder: + symbol: TL(gcc9) + run: + script: build-gcc-linux.sh + fetches: + fetch: + - gcc-9.5.0 + - gmp-6.1.0 + - isl-0.16.1 + - mpc-1.0.3 + - mpfr-3.1.4 + +linux64-gcc-11: + description: "GCC 11 toolchain build" + treeherder: + symbol: TL(gcc11) + run: + script: build-gcc-linux.sh + fetches: + fetch: + - gcc-11.4.0 + - gmp-6.1.0 + - isl-0.16.1 + - mpc-1.0.3 + - mpfr-3.1.4 + +linux64-gcc-sixgill: + description: "sixgill GCC plugin build" + treeherder: + symbol: TL(sixgill) + run: + script: build-gcc-sixgill-plugin-linux.sh + resources: + - 'taskcluster/scripts/misc/build-gcc-sixgill-plugin-linux.sh' + toolchain-artifact: public/build/sixgill.tar.xz + fetches: + fetch: + - gcc-9.5.0 + - gmp-6.1.0 + - isl-0.16.1 + - mpc-1.0.3 + - mpfr-3.1.4 + toolchain: + - linux64-gcc-9 diff --git a/taskcluster/ci/toolchain/geckodriver.yml b/taskcluster/ci/toolchain/geckodriver.yml new file mode 100644 index 0000000000..252befa3fb --- /dev/null +++ b/taskcluster/ci/toolchain/geckodriver.yml @@ -0,0 +1,137 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + description: "geckodriver toolchain build" + worker-type: b-linux-gcp + worker: + max-run-time: 1800 + run-on-projects: ['trunk'] + attributes: + build_type: opt + geckodriver: true + shippable: true + rebuild-on-release: true + run: + script: build-geckodriver.sh + toolchain-artifact: public/build/geckodriver.tar.gz + sparse-profile: null + resources: + - 'testing/geckodriver' + - 'testing/mozbase/rust' + - 'testing/webdriver' + # Changes to 'third_party/rust' should be captured by + # 'testing/geckodriver/Cargo.toml'. + +# For Linux platforms target "*-musl" so that the binary will be statically linked. + +linux32-geckodriver: + treeherder: + symbol: TL32(gd) + platform: linux32/opt + run: + arguments: ['i686-unknown-linux-musl'] + attributes: + build_platform: linux-geckodriver + fetches: + toolchain: + - linux64-rust-static + +linux64-geckodriver: + treeherder: + symbol: TL(gd) + platform: linux64/opt + run: + arguments: ['x86_64-unknown-linux-musl'] + attributes: + build_platform: linux64-geckodriver + fetches: + toolchain: + - linux64-rust-static + +linux64-aarch64-geckodriver: + treeherder: + symbol: TL(gd) + platform: linux64-aarch64/opt + run: + arguments: ['aarch64-unknown-linux-musl'] + attributes: + build_platform: linux64-aarch64-geckodriver + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-rust-static + +macosx64-geckodriver: + treeherder: + symbol: TM(gd) + platform: macosx64/opt + run: + arguments: ['x86_64-apple-darwin'] + attributes: + build_platform: macosx64-geckodriver + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-rust-macos + - macosx64-sdk-toolchain + +macosx64-aarch64-geckodriver: + treeherder: + symbol: TM(gd) + platform: macosx64-aarch64/opt + run: + arguments: ['aarch64-apple-darwin'] + attributes: + build_platform: macosx64-aarch64-geckodriver + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-rust-macos + - macosx64-sdk-toolchain + +win32-geckodriver: + treeherder: + symbol: TW32(gd) + platform: win32/opt + run: + arguments: ['i686-pc-windows-msvc'] + toolchain-artifact: public/build/geckodriver.zip + attributes: + build_platform: win32-geckodriver + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-rust-windows + - vs-toolchain + +win64-aarch64-geckodriver: + treeherder: + symbol: TW64(gd) + platform: windows2012-aarch64/opt + run: + arguments: ['aarch64-pc-windows-msvc'] + toolchain-artifact: public/build/geckodriver.zip + attributes: + build_platform: win64-aarch64-geckodriver + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-rust-windows + - vs-toolchain + +win64-geckodriver: + treeherder: + symbol: TW64(gd) + platform: win64/opt + run: + arguments: ['x86_64-pc-windows-msvc'] + toolchain-artifact: public/build/geckodriver.zip + attributes: + build_platform: win64-geckodriver + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-rust-windows + - vs-toolchain diff --git a/taskcluster/ci/toolchain/gn.yml b/taskcluster/ci/toolchain/gn.yml new file mode 100644 index 0000000000..d12b0f19c5 --- /dev/null +++ b/taskcluster/ci/toolchain/gn.yml @@ -0,0 +1,49 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + description: "gn toolchain build" + attributes: + local-toolchain: true + worker-type: b-linux-gcp + worker: + max-run-time: 1800 + run: + resources: + - 'taskcluster/scripts/misc/build-gn-common.sh' + toolchain-artifact: public/build/gn.tar.zst + fetches: + fetch: + - gn + +linux64-gn: + treeherder: + symbol: TL(gn) + run: + script: build-gn-linux.sh + +macosx64-gn: + treeherder: + symbol: TM(gn) + run: + script: build-gn-macosx.sh + toolchain-alias: macosx64-aarch64-gn + fetches: + toolchain: + - linux64-clang-toolchain + - macosx64-sdk-toolchain + +win64-gn: + treeherder: + symbol: TW64(gn) + worker-type: b-win2022 + worker: + max-run-time: 3600 + run: + script: build-gn-win64.sh + fetches: + fetch: + - ninja + toolchain: + - vs-toolchain diff --git a/taskcluster/ci/toolchain/grcov.yml b/taskcluster/ci/toolchain/grcov.yml new file mode 100644 index 0000000000..15fed68732 --- /dev/null +++ b/taskcluster/ci/toolchain/grcov.yml @@ -0,0 +1,48 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + description: "grcov toolchain build" + worker-type: b-linux-gcp + worker: + max-run-time: 1800 + run: + script: build-rust-based-toolchain.sh + toolchain-artifact: public/build/grcov.tar.zst + fetches: + fetch: + - grcov + +linux64-grcov: + treeherder: + symbol: TL(grcov) + run: + arguments: ['x86_64-unknown-linux-gnu'] + fetches: + toolchain: + - linux64-rust-toolchain + - linux64-clang-toolchain + - sysroot-x86_64-linux-gnu + +macosx64-grcov: + treeherder: + symbol: TM(grcov) + run: + arguments: ['x86_64-apple-darwin'] + fetches: + toolchain: + - linux64-rust-macos-toolchain + - linux64-clang-toolchain + - macosx64-sdk-toolchain + +win64-grcov: + treeherder: + symbol: TW64(grcov) + run: + arguments: ['x86_64-pc-windows-msvc'] + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-rust-windows-toolchain + - vs-toolchain diff --git a/taskcluster/ci/toolchain/kind.yml b/taskcluster/ci/toolchain/kind.yml new file mode 100644 index 0000000000..d9dd52c980 --- /dev/null +++ b/taskcluster/ci/toolchain/kind.yml @@ -0,0 +1,54 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - fetch + - packages + +transforms: + - gecko_taskgraph.transforms.try_job:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.cached_tasks:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + treeherder: + kind: build + platform: toolchains/opt + tier: 1 + run-on-projects: [] + run: + using: toolchain-script + +jobs-from: + - android.yml + - cargo-vet.yml + - cbindgen.yml + - clang-tidy.yml + - clang.yml + - compiler-rt.yml + - dump-syms.yml + - fix-stacks.yml + - gcc.yml + - geckodriver.yml + - gn.yml + - grcov.yml + - libunwind.yml + - llvm-symbolizer.yml + - macos-sdk.yml + - mingw.yml + - minidump-stackwalk.yml + - misc.yml + - nasm.yml + - node.yml + - pkgconf.yml + - python.yml + - resourcemonitor.yml + - rust.yml + - rust-size.yml + - sccache.yml + - sysroot.yml + - dist-toolchains.yml diff --git a/taskcluster/ci/toolchain/libunwind.yml b/taskcluster/ci/toolchain/libunwind.yml new file mode 100644 index 0000000000..5a1972f3f6 --- /dev/null +++ b/taskcluster/ci/toolchain/libunwind.yml @@ -0,0 +1,247 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + worker-type: b-linux-gcp + worker: + max-run-time: 1800 + run: + using: toolchain-script + script: build-libunwind.sh + +android-aarch64-libunwind-17: + description: "android aarch64 libunwind for Clang 17 toolchain build" + treeherder: + symbol: TA(aarch64-unwind-17) + run: + arguments: + - build/build-clang/clang-17.json + resources: + - build/build-clang/clang-17.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/libunwind-aarch64-linux-android.tar.zst + fetches: + fetch: + - clang-17 + toolchain: + - android-aarch64-compiler-rt-17 + - linux64-clang-17-stage1 + - linux64-android-ndk-linux-repack + +android-arm-libunwind-17: + description: "android arm libunwind for Clang 17 toolchain build" + treeherder: + symbol: TA(arm-unwind-17) + run: + arguments: + - build/build-clang/clang-17.json + resources: + - build/build-clang/clang-17.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/libunwind-armv7-linux-android.tar.zst + fetches: + fetch: + - clang-17 + toolchain: + - android-arm-compiler-rt-17 + - linux64-clang-17-stage1 + - linux64-android-ndk-linux-repack + +android-x86-libunwind-17: + description: "android x86 libunwind for Clang 17 toolchain build" + treeherder: + symbol: TA(x86-unwind-17) + run: + arguments: + - build/build-clang/clang-17.json + resources: + - build/build-clang/clang-17.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/libunwind-i686-linux-android.tar.zst + fetches: + fetch: + - clang-17 + toolchain: + - android-x86-compiler-rt-17 + - linux64-clang-17-stage1 + - linux64-android-ndk-linux-repack + +android-x64-libunwind-17: + description: "android x64 libunwind for Clang 17 toolchain build" + treeherder: + symbol: TA(x64-unwind-17) + run: + arguments: + - build/build-clang/clang-17.json + resources: + - build/build-clang/clang-17.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/libunwind-x86_64-linux-android.tar.zst + fetches: + fetch: + - clang-17 + toolchain: + - android-x64-compiler-rt-17 + - linux64-clang-17-stage1 + - linux64-android-ndk-linux-repack + +android-aarch64-libunwind-18: + description: "android aarch64 libunwind for Clang 18 toolchain build" + treeherder: + symbol: TA(aarch64-unwind-18) + run: + arguments: + - build/build-clang/clang-18.json + resources: + - build/build-clang/clang-18.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/libunwind-aarch64-linux-android.tar.zst + fetches: + fetch: + - clang-18 + toolchain: + - android-aarch64-compiler-rt-18 + - linux64-clang-18-stage1 + - linux64-android-ndk-linux-repack + +android-arm-libunwind-18: + description: "android arm libunwind for Clang 18 toolchain build" + treeherder: + symbol: TA(arm-unwind-18) + run: + arguments: + - build/build-clang/clang-18.json + resources: + - build/build-clang/clang-18.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/libunwind-armv7-linux-android.tar.zst + fetches: + fetch: + - clang-18 + toolchain: + - android-arm-compiler-rt-18 + - linux64-clang-18-stage1 + - linux64-android-ndk-linux-repack + +android-x86-libunwind-18: + description: "android x86 libunwind for Clang 18 toolchain build" + treeherder: + symbol: TA(x86-unwind-18) + run: + arguments: + - build/build-clang/clang-18.json + resources: + - build/build-clang/clang-18.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/libunwind-i686-linux-android.tar.zst + fetches: + fetch: + - clang-18 + toolchain: + - android-x86-compiler-rt-18 + - linux64-clang-18-stage1 + - linux64-android-ndk-linux-repack + +android-x64-libunwind-18: + description: "android x64 libunwind for Clang 18 toolchain build" + treeherder: + symbol: TA(x64-unwind-18) + run: + arguments: + - build/build-clang/clang-18.json + resources: + - build/build-clang/clang-18.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/libunwind-x86_64-linux-android.tar.zst + fetches: + fetch: + - clang-18 + toolchain: + - android-x64-compiler-rt-18 + - linux64-clang-18-stage1 + - linux64-android-ndk-linux-repack + +android-aarch64-libunwind-trunk: + description: "android aarch64 libunwind for Clang trunk toolchain build" + attributes: + cached_task: false + treeherder: + symbol: TA(aarch64-unwind-trunk) + run: + arguments: + - build/build-clang/clang-trunk.json + resources: + - build/build-clang/clang-trunk.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/libunwind-aarch64-linux-android.tar.zst + fetches: + fetch: + - clang-trunk + toolchain: + - android-aarch64-compiler-rt-trunk + - linux64-clang-trunk-stage1 + - linux64-android-ndk-linux-repack + +android-arm-libunwind-trunk: + description: "android arm libunwind for Clang trunk toolchain build" + attributes: + cached_task: false + treeherder: + symbol: TA(arm-unwind-trunk) + run: + arguments: + - build/build-clang/clang-trunk.json + resources: + - build/build-clang/clang-trunk.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/libunwind-armv7-linux-android.tar.zst + fetches: + fetch: + - clang-trunk + toolchain: + - android-arm-compiler-rt-trunk + - linux64-clang-trunk-stage1 + - linux64-android-ndk-linux-repack + +android-x86-libunwind-trunk: + description: "android x86 libunwind for Clang trunk toolchain build" + attributes: + cached_task: false + treeherder: + symbol: TA(x86-unwind-trunk) + run: + arguments: + - build/build-clang/clang-trunk.json + resources: + - build/build-clang/clang-trunk.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/libunwind-i686-linux-android.tar.zst + fetches: + fetch: + - clang-trunk + toolchain: + - android-x86-compiler-rt-trunk + - linux64-clang-trunk-stage1 + - linux64-android-ndk-linux-repack + +android-x64-libunwind-trunk: + description: "android x64 libunwind for Clang trunk toolchain build" + attributes: + cached_task: false + treeherder: + symbol: TA(x64-unwind-trunk) + run: + arguments: + - build/build-clang/clang-trunk.json + resources: + - build/build-clang/clang-trunk.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-artifact: public/build/libunwind-x86_64-linux-android.tar.zst + fetches: + fetch: + - clang-trunk + toolchain: + - android-x64-compiler-rt-trunk + - linux64-clang-trunk-stage1 + - linux64-android-ndk-linux-repack diff --git a/taskcluster/ci/toolchain/llvm-symbolizer.yml b/taskcluster/ci/toolchain/llvm-symbolizer.yml new file mode 100644 index 0000000000..8864a81cc1 --- /dev/null +++ b/taskcluster/ci/toolchain/llvm-symbolizer.yml @@ -0,0 +1,331 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + worker-type: b-linux-large-gcp + worker: + max-run-time: 1800 + run: + script: build-llvm-symbolizer.sh + toolchain-artifact: public/build/llvm-symbolizer.tar.zst + +linux32-llvm-symbolizer-17: + description: "llvm-symbolizer for Linux" + treeherder: + symbol: TL32(llvm-symbolizer) + run: + arguments: + - i686-unknown-linux-gnu + - build/build-clang/clang-17.json + resources: + - build/build-clang/clang-17.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-alias: + by-project: + toolchains: null + default: linux32-llvm-symbolizer + fetches: + fetch: + - clang-17 + toolchain: + - linux64-clang-17-stage1 + - linux32-toolchain-sysroot + +linux64-llvm-symbolizer-17: + description: "llvm-symbolizer for Linux" + treeherder: + symbol: TL(llvm-symbolizer) + run: + arguments: + - x86_64-unknown-linux-gnu + - build/build-clang/clang-17.json + resources: + - build/build-clang/clang-17.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-alias: + by-project: + toolchains: null + default: linux64-llvm-symbolizer + fetches: + fetch: + - clang-17 + toolchain: + - linux64-clang-17-stage1 + - linux64-toolchain-sysroot + +macosx64-llvm-symbolizer-17: + description: "llvm-symbolizer for macOS x64" + treeherder: + symbol: TM(llvm-symbolizer) + run: + arguments: + - x86_64-apple-darwin + - build/build-clang/clang-17.json + resources: + - build/build-clang/clang-17.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-alias: + by-project: + toolchains: null + default: macosx64-llvm-symbolizer + fetches: + fetch: + - clang-17 + toolchain: + - linux64-clang-17-stage1 + - macosx64-sdk-toolchain + +macosx64-aarch64-llvm-symbolizer-17: + description: "llvm-symbolizer for macOS aarch64" + treeherder: + symbol: TM(llvm-symbolizer-aarch64) + run: + arguments: + - aarch64-apple-darwin + - build/build-clang/clang-17.json + resources: + - build/build-clang/clang-17.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-alias: + by-project: + toolchains: null + default: macosx64-aarch64-llvm-symbolizer + fetches: + fetch: + - clang-17 + toolchain: + - linux64-clang-17-stage1 + - macosx64-sdk-toolchain + +win64-llvm-symbolizer-17: + description: "llvm-symbolizer for Windows" + treeherder: + symbol: TW64(llvm-symbolizer) + run: + arguments: + - x86_64-pc-windows-msvc + - build/build-clang/clang-17.json + resources: + - build/build-clang/clang-17.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-alias: + by-project: + toolchains: null + default: win64-llvm-symbolizer + fetches: + fetch: + - clang-17 + toolchain: + - linux64-clang-17-stage1 + - vs-toolchain + +linux32-llvm-symbolizer-18: + description: "llvm-symbolizer for Linux" + treeherder: + symbol: TL32(llvm-symbolizer-18) + run: + arguments: + - i686-unknown-linux-gnu + - build/build-clang/clang-18.json + resources: + - build/build-clang/clang-18.json + - taskcluster/scripts/misc/build-llvm-common.sh + fetches: + fetch: + - clang-18 + toolchain: + - linux64-clang-18-stage1 + - linux32-toolchain-sysroot + +linux64-llvm-symbolizer-18: + description: "llvm-symbolizer for Linux" + treeherder: + symbol: TL(llvm-symbolizer-18) + run: + arguments: + - x86_64-unknown-linux-gnu + - build/build-clang/clang-18.json + resources: + - build/build-clang/clang-18.json + - taskcluster/scripts/misc/build-llvm-common.sh + fetches: + fetch: + - clang-18 + toolchain: + - linux64-clang-18-stage1 + - linux64-toolchain-sysroot + +macosx64-llvm-symbolizer-18: + description: "llvm-symbolizer for macOS x64" + treeherder: + symbol: TM(llvm-symbolizer-18) + run: + arguments: + - x86_64-apple-darwin + - build/build-clang/clang-18.json + resources: + - build/build-clang/clang-18.json + - taskcluster/scripts/misc/build-llvm-common.sh + fetches: + fetch: + - clang-18 + toolchain: + - linux64-clang-18-stage1 + - macosx64-sdk-toolchain + +macosx64-aarch64-llvm-symbolizer-18: + description: "llvm-symbolizer for macOS aarch64" + treeherder: + symbol: TM(llvm-sym-aarch64-18) + run: + arguments: + - aarch64-apple-darwin + - build/build-clang/clang-18.json + resources: + - build/build-clang/clang-18.json + - taskcluster/scripts/misc/build-llvm-common.sh + fetches: + fetch: + - clang-18 + toolchain: + - linux64-clang-18-stage1 + - macosx64-sdk-toolchain + +win64-llvm-symbolizer-18: + description: "llvm-symbolizer for Windows" + treeherder: + symbol: TW64(llvm-symbolizer-18) + run: + arguments: + - x86_64-pc-windows-msvc + - build/build-clang/clang-18.json + resources: + - build/build-clang/clang-18.json + - taskcluster/scripts/misc/build-llvm-common.sh + fetches: + fetch: + - clang-18 + toolchain: + - linux64-clang-18-stage1 + - vs-toolchain + +linux32-llvm-symbolizer-trunk: + description: "llvm-symbolizer for Linux" + attributes: + cached_task: false + treeherder: + symbol: TL32(llvm-symbolizer-trunk) + run: + arguments: + - i686-unknown-linux-gnu + - build/build-clang/clang-trunk.json + resources: + - build/build-clang/clang-trunk.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-alias: + by-project: + toolchains: linux32-llvm-symbolizer + default: null + fetches: + fetch: + - clang-trunk + toolchain: + - linux64-clang-trunk-stage1 + - linux32-toolchain-sysroot + +linux64-llvm-symbolizer-trunk: + description: "llvm-symbolizer for Linux" + attributes: + cached_task: false + treeherder: + symbol: TL(llvm-symbolizer-trunk) + run: + arguments: + - x86_64-unknown-linux-gnu + - build/build-clang/clang-trunk.json + resources: + - build/build-clang/clang-trunk.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-alias: + by-project: + toolchains: linux64-llvm-symbolizer + default: null + fetches: + fetch: + - clang-trunk + toolchain: + - linux64-clang-trunk-stage1 + - linux64-toolchain-sysroot + +macosx64-llvm-symbolizer-trunk: + description: "llvm-symbolizer for macOS x64" + attributes: + cached_task: false + treeherder: + symbol: TM(llvm-symbolizer-trunk) + run: + arguments: + - x86_64-apple-darwin + - build/build-clang/clang-trunk.json + resources: + - build/build-clang/clang-trunk.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-alias: + by-project: + toolchains: macosx64-llvm-symbolizer + default: null + fetches: + fetch: + - clang-trunk + toolchain: + - linux64-clang-trunk-stage1 + - macosx64-sdk-toolchain + +macosx64-aarch64-llvm-symbolizer-trunk: + description: "llvm-symbolizer for macOS aarch64" + attributes: + cached_task: false + treeherder: + symbol: TM(llvm-sym-aarch64-trunk) + run: + arguments: + - aarch64-apple-darwin + - build/build-clang/clang-trunk.json + resources: + - build/build-clang/clang-trunk.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-alias: + by-project: + toolchains: macosx64-aarch64-llvm-symbolizer + default: null + fetches: + fetch: + - clang-trunk + toolchain: + - linux64-clang-trunk-stage1 + - macosx64-sdk-toolchain + +win64-llvm-symbolizer-trunk: + description: "llvm-symbolizer for Windows" + attributes: + cached_task: false + treeherder: + symbol: TW64(llvm-symbolizer-trunk) + run: + arguments: + - x86_64-pc-windows-msvc + - build/build-clang/clang-trunk.json + resources: + - build/build-clang/clang-trunk.json + - taskcluster/scripts/misc/build-llvm-common.sh + toolchain-alias: + by-project: + toolchains: win64-llvm-symbolizer + default: null + fetches: + fetch: + - clang-trunk + toolchain: + - linux64-clang-trunk-stage1 + - vs-toolchain diff --git a/taskcluster/ci/toolchain/macos-sdk.yml b/taskcluster/ci/toolchain/macos-sdk.yml new file mode 100644 index 0000000000..d3e2bc6493 --- /dev/null +++ b/taskcluster/ci/toolchain/macos-sdk.yml @@ -0,0 +1,48 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + attributes: + local-toolchain: true + worker-type: b-linux-gcp + worker: + max-run-time: 1800 + env: + PATH: "/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin" + run: + script: unpack-sdk.py + resources: + - python/mozbuild/mozpack/macpkg.py + - taskcluster/scripts/misc/unpack-sdk.py + tooltool-downloads: internal + # Expiry similar to that of fetches + expires-after: 1000 years + +macosx64-sdk-13.3: + description: "MacOSX13.3 SDK" + treeherder: + symbol: TM(sdk13.3) + run: + arguments: + - https://swcdn.apple.com/content/downloads/15/62/032-84673-A_7A1TG1RF8Z/xpc8q44ggn2pkn82iwr0fi1zeb9cxi8ath/CLTools_macOSNMOS_SDK.pkg + - 8de3306508dca31040b3b49ff370e96c94f4546bcf22cb4069abbb18e2d6bce8e20d40a6903f00ae75558175b624a979ea0444f54bc6d9d67e841f2000b0d863 + - Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk + toolchain-artifact: project/gecko/mac-sdk/MacOSX13.3.sdk.tar.zst + toolchain-alias: + - MacOSX13.3.sdk + +macosx64-sdk-14.2: + description: "MacOSX14.2 SDK" + treeherder: + symbol: TM(sdk14.2) + run: + arguments: + - https://swcdn.apple.com/content/downloads/35/47/042-23550-A_M34N50O9N3/sua6ev7bjcexvorh4709vsgk64zgvsl42p/CLTools_macOSNMOS_SDK.pkg + - 22ce0acc9ab5c28845218b8c686d0208d6bf66bef64a369d3c0622247ba1258b438c9e44c64bb2bacf5e99eb398a6e7a337f2730cd4a969a7f0d2d5d3107306a + - Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk + toolchain-artifact: project/gecko/mac-sdk/MacOSX14.2.sdk.tar.zst + toolchain-alias: + - macosx64-sdk + - macosx64-sdk-toolchain + - MacOSX14.2.sdk diff --git a/taskcluster/ci/toolchain/mingw.yml b/taskcluster/ci/toolchain/mingw.yml new file mode 100644 index 0000000000..a14413669f --- /dev/null +++ b/taskcluster/ci/toolchain/mingw.yml @@ -0,0 +1,42 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + treeherder: + tier: 2 + worker-type: b-linux-gcp + worker: + max-run-time: 3600 + +linux64-mingw32-nsis: + description: "NSIS build for MinGW32 Cross Compile" + treeherder: + symbol: TMW(mingw32-nsis) + run: + script: build-mingw32-nsis.sh + toolchain-artifact: public/build/nsis.tar.zst + fetches: + fetch: + - nsis-3.07 + - zlib-1.3.1 + toolchain: + - linux64-binutils + - linux64-clang-mingw-x86 + - sysroot-x86_64-linux-gnu + +linux64-mingw-fxc2-x86: + description: "fxc2.exe x86 build for MinGW Cross Compile" + treeherder: + symbol: TMW(mingw-fxc2-x86) + worker: + max-run-time: 1800 + run: + using: toolchain-script + script: build-mingw-fxc2-x86.sh + toolchain-artifact: public/build/fxc2.tar.zst + fetches: + fetch: + - fxc2 + toolchain: + - linux64-clang-mingw-x86 diff --git a/taskcluster/ci/toolchain/minidump-stackwalk.yml b/taskcluster/ci/toolchain/minidump-stackwalk.yml new file mode 100644 index 0000000000..f0f9b3e70c --- /dev/null +++ b/taskcluster/ci/toolchain/minidump-stackwalk.yml @@ -0,0 +1,96 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + description: "minidump-stackwalk toolchain build" + attributes: + local-toolchain: true + worker-type: b-linux-gcp + worker: + max-run-time: 1800 + env: + FETCH: rust-minidump/minidump-stackwalk + run: + script: build-rust-based-toolchain.sh + toolchain-artifact: public/build/minidump-stackwalk.tar.zst + fetches: + fetch: + - rust-minidump + +linux64-minidump-stackwalk: + treeherder: + symbol: TL(stackwalk) + run: + arguments: ['x86_64-unknown-linux-gnu'] + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-rust-toolchain + - sysroot-x86_64-linux-gnu + +macosx64-minidump-stackwalk: + treeherder: + symbol: TM(stackwalk) + run: + arguments: ['x86_64-apple-darwin'] + fetches: + toolchain: + - linux64-rust-macos-toolchain + - linux64-clang-toolchain + - macosx64-sdk-toolchain + +macosx64-aarch64-minidump-stackwalk: + treeherder: + symbol: TM(stackwalk-arm64) + run: + arguments: ['aarch64-apple-darwin'] + fetches: + toolchain: + - linux64-rust-macos-toolchain + - linux64-clang-toolchain + - macosx64-sdk-toolchain + +win32-minidump-stackwalk: + treeherder: + symbol: TW32(stackwalk) + run: + arguments: ['i686-pc-windows-msvc'] + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-rust-windows-toolchain + - vs-toolchain + +win64-minidump-stackwalk: + treeherder: + symbol: TW64(stackwalk) + run: + arguments: ['x86_64-pc-windows-msvc'] + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-rust-windows-toolchain + - vs-toolchain + +# This is a totally different thing but it used to share common code with +# minidump-stackwalk, so it lives here for historical reasons. +linux64-breakpad-injector: + description: "breakpad injector toolchain build" + run: + script: build-breakpad-injector.sh + toolchain-artifact: public/build/injector.tar.zst + sparse-profile: null + resources: + - 'build/moz.configure' + - 'config/external/zlib' + - 'moz.configure' + - 'toolkit/crashreporter' + - 'toolkit/crashreporter/google-breakpad/src/processor' + - 'tools/crashreporter/' + treeherder: + symbol: TL(injector) + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-toolchain-sysroot diff --git a/taskcluster/ci/toolchain/misc.yml b/taskcluster/ci/toolchain/misc.yml new file mode 100644 index 0000000000..f19201bc1e --- /dev/null +++ b/taskcluster/ci/toolchain/misc.yml @@ -0,0 +1,605 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + worker-type: b-linux-gcp + worker: + max-run-time: 1800 + +linux64-binutils-2.31.1: + description: "Binutils toolchain build" + treeherder: + symbol: TL(binutil2.31) + run: + script: build-binutils-linux.sh + resources: + - 'build/unix/build-binutils/build-binutils.sh' + toolchain-artifact: public/build/binutils.tar.zst + fetches: + fetch: + - binutils-2.31.1 + toolchain: + # C++ code in gold doesn't compile with recent versions of GCC. + - linux64-gcc-8 + - linux64-toolchain-sysroot + +linux64-binutils: + description: "Binutils toolchain build" + treeherder: + symbol: TL(binutil) + run: + script: build-binutils-linux.sh + resources: + - 'build/unix/build-binutils/build-binutils.sh' + toolchain-artifact: public/build/binutils.tar.zst + fetches: + fetch: + - binutils-2.41 + toolchain: + - linux64-toolchain-sysroot + +linux64-cctools-port: + description: "cctools-port toolchain build" + treeherder: + symbol: TL(cctools-clang) + run: + script: build-cctools-port.sh + toolchain-artifact: public/build/cctools.tar.zst + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-toolchain-sysroot + fetch: + - cctools-port + - libtapi + - ldid + +linux64-hfsplus: + description: "hfsplus toolchain build" + attributes: + local-toolchain: true + treeherder: + symbol: TL(hfs+) + run: + script: build-hfsplus-linux.sh + resources: + - 'build/unix/build-hfsplus/build-hfsplus.sh' + toolchain-artifact: public/build/hfsplus.tar.zst + fetches: + fetch: + - hfsplus-tools + toolchain: + - linux64-clang-toolchain + +linux64-libdmg: + description: "libdmg-hfsplus toolchain build" + attributes: + local-toolchain: true + treeherder: + symbol: TL(libdmg-hfs+) + run: + script: build-dmg-hfsplus.sh + toolchain-artifact: public/build/dmg.tar.zst + toolchain-alias: linux64-dmg + fetches: + fetch: + - libdmg-hfsplus + toolchain: + - linux64-clang-toolchain + - linux64-toolchain-sysroot + +linux64-mkbom: + description: "mkbom toolchain build" + attributes: + local-toolchain: true + treeherder: + symbol: TL(mkbom) + run: + script: build-mkbom-linux.sh + toolchain-artifact: public/build/mkbom.tar.zst + fetches: + fetch: + - bomutils + toolchain: + - linux64-clang-toolchain + - linux64-toolchain-sysroot + +linux64-xar: + description: "xar toolchain build" + attributes: + local-toolchain: true + treeherder: + symbol: TL(xar) + run: + script: build-xar-linux.sh + toolchain-artifact: public/build/xar.tar.zst + fetches: + fetch: + - xar + toolchain: + - linux64-clang-toolchain + - linux64-toolchain-sysroot + +linux64-mar-tools: + description: "mar-tools toolchain build" + treeherder: + symbol: TL(mar-tools) + fetches: + toolchain: + - linux64-clang-toolchain + run: + script: build-mar-tools.sh + sparse-profile: null + toolchain-artifact: public/build/mar-tools.tar.zst + resources: + - build/moz.configure + - modules/libmar/ + - moz.configure + - other-licenses/bsdiff/ + - other-licenses/nsis/Contrib/CityHash/cityhash/ + - toolkit/mozapps/update/updater/bspatch/ + - tools/update-packaging/ + +linux64-upx: + description: "UPX build" + treeherder: + symbol: TL(upx) + tier: 1 + run: + script: build-upx.sh + toolchain-artifact: public/build/upx.tar.zst + +linux64-msix-packaging: + description: "msix-packaging build" + treeherder: + symbol: TL(msix-packaging) + tier: 1 + run: + script: build-msix-packaging.sh + toolchain-artifact: public/build/msix-packaging.tar.zst + fetches: + fetch: + - msix-packaging + toolchain: + - linux64-clang-toolchain + - linux64-toolchain-sysroot + +linux64-custom-v8: + description: "Custom v8 build" + treeherder: + symbol: TL(custom-v8) + worker: + docker-image: {in-tree: custom-v8} + max-run-time: 3600 + run: + script: build-custom-v8.sh + arguments: [ + d8.tar.zst, + is_debug=false, + target_cpu="x64" + ] + toolchain-artifact: public/build/d8.tar.zst + +macosx64-xz: + description: "xz development library" + worker-type: b-osx-1015 + treeherder: + symbol: TM(xz) + worker: + max-run-time: 30000 + run: + script: build-xz.sh + toolchain-artifact: public/build/xz.tar.zst + fetches: + fetch: + - xz-5.4.4 + toolchain: + - macosx64-clang-toolchain + - macosx64-sdk-toolchain + +macosx64-custom-car: + description: "Custom chromium-as-release build for mac" + worker-type: b-osx-1015 + attributes: + cached_task: false + treeherder: + symbol: TM(custom-car) + worker: + max-run-time: 35000 + use-system-python: false + run-on-projects: [] + run: + script: build-custom-car.sh + arguments: [ + car_macosx.tar.zst, + blink_symbol_level=0, + chrome_pgo_phase=2, + dcheck_always_on=false, + enable_nacl=false, + enable_resource_allowlist_generation=false, + is_chrome_branded=false, + is_clang=true, + is_component_build=false, + is_debug=false, + is_official_build=true, + symbol_level=0, + target_cpu="x64", + use_v8_context_snapshot=false, + v8_symbol_level=0 + ] + toolchain-artifact: public/build/car_macosx.tar.zst + fetches: + toolchain: + - macosx64-sdk-14.2 + +macosx-arm64-custom-car: + description: "Custom chromium-as-release build for mac (apple silicon)" + worker-type: b-osx-1015 + attributes: + cached_task: false + treeherder: + symbol: TM(custom-car-arm) + tier: 2 + worker: + max-run-time: 50000 + use-system-python: false + run-on-projects: [] + run: + script: build-custom-car.sh + arguments: [ + car_macosx_arm.tar.zst, + blink_symbol_level=0, + chrome_pgo_phase=2, + dcheck_always_on=false, + enable_nacl=false, + enable_resource_allowlist_generation=false, + is_chrome_branded=false, + is_clang=true, + is_component_build=false, + is_debug=false, + is_official_build=true, + symbol_level=0, + target_cpu="arm64", + use_v8_context_snapshot=false, + v8_symbol_level=0 + ] + toolchain-artifact: public/build/car_macosx_arm.tar.zst + fetches: + toolchain: + - macosx64-sdk-14.2 + +android-custom-car: + description: "Custom chromium-as-release build for Android" + attributes: + cached_task: false + treeherder: + symbol: TL(custom-car-android) + worker: + docker-image: {in-tree: custom-car-android} + max-run-time: 20000 + use-system-python: false + run-on-projects: [] + run: + script: build-custom-car.sh + arguments: [ + car_android.tar.zst, + blink_symbol_level=0, + chrome_pgo_phase=2, + dcheck_always_on=false, + enable_nacl=false, + enable_resource_allowlist_generation=false, + is_chrome_branded=false, + is_clang=true, + is_component_build=false, + is_debug=false, + is_official_build=true, + symbol_level=0, + target_cpu="arm64", + target_os="android", + is_android=true, + is_high_end_android=true, + use_v8_context_snapshot=false, + v8_symbol_level=0 + ] + toolchain-artifact: public/build/car_android.tar.zst + +linux64-custom-car: + description: "Custom chromium-as-release build for Linux" + attributes: + cached_task: false + treeherder: + symbol: TL(custom-car) + worker: + docker-image: {in-tree: custom-car-linux} + max-run-time: 16200 + use-system-python: false + run-on-projects: [] + run: + script: build-custom-car.sh + arguments: [ + car_linux.tar.zst, + blink_symbol_level=0, + chrome_pgo_phase=2, + dcheck_always_on=false, + enable_nacl=false, + enable_resource_allowlist_generation=false, + is_chrome_branded=false, + is_clang=true, + is_component_build=false, + is_debug=false, + is_official_build=true, + symbol_level=0, + target_cpu="x64", + use_v8_context_snapshot=false, + v8_symbol_level=0 + ] + toolchain-artifact: public/build/car_linux.tar.zst + +win64-custom-car: + description: "Custom chromium-as-release build for Windows" + attributes: + cached_task: false + treeherder: + symbol: TW64(custom-car) + worker-type: b-win2022 + worker: + max-run-time: 16200 + env: + MSYSTEM: "MINGW64" + use-system-python: false + run-on-projects: [] + run: + script: build-custom-car.sh + arguments: [ + car_win64.tar.zst, + blink_symbol_level=0, + chrome_pgo_phase=2, + dcheck_always_on=false, + enable_nacl=false, + enable_resource_allowlist_generation=false, + is_chrome_branded=false, + is_clang=true, + is_component_build=false, + is_debug=false, + is_official_build=true, + symbol_level=0, + target_cpu=\"x64\", + use_v8_context_snapshot=false, + v8_symbol_level=0 + ] + toolchain-artifact: public/build/car_win64.tar.zst + fetches: + toolchain: + - win64-vs2022 + +browsertime: + description: "npm install browsertime node_modules" + treeherder: + symbol: TL(browsertime) + run: + script: browsertime.sh + sparse-profile: null + resources: + - 'tools/browsertime/package.json' + - 'tools/browsertime/package-lock.json' + - 'tools/browsertime/mach_commands.py' + toolchain-artifact: public/build/browsertime.tar.zst + fetches: + toolchain: + - linux64-node-16 + +wrench-deps: + description: "Downloads all the crates needed for building wrench" + treeherder: + symbol: WR(wrench-deps) + worker: + docker-image: {in-tree: webrender} + run: + script: wrench-deps-vendoring.sh + sparse-profile: null + resources: + - 'gfx/wr/**/Cargo.toml' + - 'gfx/wr/Cargo.lock' + - 'gfx/wr/ci-scripts/install-meson.sh' + toolchain-artifact: public/build/wrench-deps.tar.zst + fetches: + toolchain: + - linux64-rust # whatever m-c is built with + +linux64-wine: + description: "Wine build for Windows Cross Compile" + attributes: + local-toolchain: true + treeherder: + symbol: TL(wine) + tier: 1 + worker: + max-run-time: 10800 + run: + script: build-wine.sh + toolchain-artifact: public/build/wine.tar.zst + fetches: + fetch: + - wine + +linux64-winchecksec: + description: "winchecksec" + attributes: + local-toolchain: true + treeherder: + symbol: TL(winchecksec) + run: + script: build-winchecksec.sh + arguments: ['x86_64-unknown-linux-gnu'] + toolchain-artifact: public/build/winchecksec.tar.zst + tooltool-downloads: internal + fetches: + fetch: + - winchecksec + +win64-winchecksec: + description: "winchecksec" + attributes: + local-toolchain: true + treeherder: + symbol: TW64(winchecksec) + run: + script: build-winchecksec.sh + arguments: ['x86_64-pc-windows-msvc'] + toolchain-artifact: public/build/winchecksec.tar.zst + tooltool-downloads: internal + fetches: + fetch: + - winchecksec + toolchain: + - linux64-clang-toolchain + - vs-toolchain + +linux64-makecab: + description: "makecab toolchain build" + treeherder: + symbol: TL(cab) + worker: + env: + FETCH: rust-makecab + run: + script: build-rust-based-toolchain.sh + arguments: ['x86_64-unknown-linux-gnu'] + toolchain-artifact: public/build/makecab.tar.zst + fetches: + fetch: + - makecab + toolchain: + - linux64-clang-toolchain + - linux64-rust-toolchain + - sysroot-x86_64-linux-gnu + +win64-mozmake: + description: "mozmake for Windows" + attributes: + local-toolchain: true + treeherder: + symbol: TW64(mozmake) + run: + script: build-mozmake.sh + toolchain-artifact: public/build/mozmake.tar.zst + fetches: + fetch: + - gnumake + toolchain: + - linux64-clang-toolchain + - vs-toolchain + +nsis: + description: "NSIS for Linux and Windows" + attributes: + local-toolchain: true + treeherder: + symbol: TL(nsis) + run: + script: build-nsis.sh + toolchain-artifact: public/build/nsis.tar.zst + fetches: + fetch: + - nsis-3.07 + - nsis-3.07-win + toolchain: + - linux64-clang-toolchain + - sysroot-x86_64-linux-gnu + +win64-vs2019: + description: "VS 2019" + attributes: + local-toolchain: true + treeherder: + symbol: TW64(msvc2019) + worker: + env: + MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE: system + run: + script: get_vs.py + arguments: + - build/vs/vs2019.yaml + resources: + - build/vs/vs2019.yaml + toolchain-artifact: project/gecko/vs/vs.tar.zst + toolchain-alias: + - vs + - vs-toolchain + +win64-vs2022: + description: "VS 2022" + attributes: + local-toolchain: true + treeherder: + symbol: TW64(msvc2022) + worker: + env: + MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE: system + run: + script: get_vs.py + arguments: + - build/vs/vs2022.yaml + resources: + - build/vs/vs2022.yaml + toolchain-artifact: project/gecko/vs/vs.tar.zst + +linux64-afl-instrumentation-4.0: + description: "AFL++ instrumentation toolchain build" + treeherder: + symbol: TL(afl++) + worker: + max-run-time: 3600 + run: + script: build-afl.sh + resources: + - taskcluster/scripts/misc/afl-nyx.patch + toolchain-artifact: public/build/afl-instrumentation.tar.zst + toolchain-alias: linux64-afl-instrumentation + fetches: + fetch: + - afl-plus-plus-4.0 + toolchain: + - linux64-clang + - linux64-toolchain-sysroot + +linux64-cargo-apk: + description: "cargo-apk toolchain build" + treeherder: + symbol: TL(cargo-apk) + worker: + env: + FETCH: android-ndk-rs/cargo-apk + run: + script: build-rust-based-toolchain.sh + arguments: ['x86_64-unknown-linux-gnu'] + resources: + - taskcluster/scripts/misc/cargo-apk-Cargo.lock + toolchain-artifact: public/build/cargo-apk.tar.zst + fetches: + fetch: + - android-ndk-rs + toolchain: + - linux64-clang-toolchain + - linux64-rust-toolchain + - sysroot-x86_64-linux-gnu + +windows-rs: + # Bootstrap cannot use fetches directly, so we have this task to + # expose the corresponding fetch as a toolchain artifact. + description: Source of the windows rust crate + attributes: + local-toolchain: true + treeherder: + symbol: TW64(windows-rs) + run: + script: dummy.sh + toolchain-artifact: public/build/windows-rs.tar.zst + dependencies: + fetch-windows-rs: fetch-windows-rs + fetches: + fetch-windows-rs: + - artifact: windows-rs.tar.zst + extract: false + dest: ../artifacts diff --git a/taskcluster/ci/toolchain/nasm.yml b/taskcluster/ci/toolchain/nasm.yml new file mode 100644 index 0000000000..866aa5b0f6 --- /dev/null +++ b/taskcluster/ci/toolchain/nasm.yml @@ -0,0 +1,87 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + worker-type: b-linux-gcp + worker: + max-run-time: 1800 + run: + toolchain-artifact: public/build/nasm.tar.zst + +win64-nasm: + description: "nasm win64 build" + attributes: + local-toolchain: true + treeherder: + symbol: TW64(nasm) + run: + script: build-nasm.sh + arguments: ['win64'] + fetches: + fetch: + - nasm-2.15.05 + toolchain: + - linux64-clang-mingw-x64 + +macosx64-nasm: + description: "nasm macosx64 build" + attributes: + local-toolchain: true + treeherder: + symbol: TM(nasm) + run: + script: build-nasm.sh + arguments: ['macosx64'] + fetches: + fetch: + - nasm-2.15.05 + toolchain: + - linux64-clang-toolchain + - macosx64-sdk-toolchain + +macosx64-aarch64-nasm: + description: "nasm macosx64 build" + attributes: + local-toolchain: true + treeherder: + symbol: TM(nasm-aarch64) + run: + script: build-nasm.sh + arguments: ['macosx64-aarch64'] + fetches: + fetch: + - nasm-2.14.02 + toolchain: + - linux64-clang-toolchain + - macosx64-sdk-toolchain + +linux64-nasm: + description: "nasm linux64 build" + attributes: + local-toolchain: true + treeherder: + symbol: TL(nasm) + run: + script: build-nasm.sh + arguments: ['linux64'] + fetches: + fetch: + - nasm-2.15.05 + toolchain: + - linux64-clang-toolchain + - sysroot-x86_64-linux-gnu + +linux64-nasm-2.14.02: + description: "nasm linux64 minimum supported version build" + treeherder: + symbol: TL(nasm-2.14.02) + run: + script: build-nasm.sh + arguments: ['linux64'] + fetches: + fetch: + - nasm-2.14.02 + toolchain: + - linux64-clang-toolchain + - sysroot-x86_64-linux-gnu diff --git a/taskcluster/ci/toolchain/node.yml b/taskcluster/ci/toolchain/node.yml new file mode 100644 index 0000000000..c1bc86254d --- /dev/null +++ b/taskcluster/ci/toolchain/node.yml @@ -0,0 +1,114 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + description: "Node repack toolchain build" + attributes: + local-toolchain: true + worker-type: b-linux-gcp + worker: + max-run-time: 1800 + run: + script: repack-node.sh + toolchain-artifact: public/build/node.tar.zst + +linux64-node-12: + treeherder: + symbol: TL(node-12) + fetches: + fetch: + - nodejs-12-linux64 + +linux64-node-16: + treeherder: + symbol: TL(node-16) + run: + toolchain-alias: + - linux64-node + fetches: + fetch: + - nodejs-16-linux64 + +linux64-node-18: + # The upstream prebuilt binary requires glibc 2.28, which is too recent for Ubuntu 18.04, + # so we build our own that won't have that requirement. + description: "Node toolchain build" + treeherder: + symbol: TL(node-18) + run: + script: build-nodejs.sh + fetches: + fetch: + - nodejs-18-source + toolchain: + - linux64-gcc-11 + - linux64-toolchain-sysroot + +macosx64-node-16: + treeherder: + symbol: TM(node-16) + run: + toolchain-alias: + - macosx64-node + fetches: + fetch: + - nodejs-16-macosx64 + +macosx64-node-18: + treeherder: + symbol: TM(node-18) + fetches: + fetch: + - nodejs-18-macosx64 + +macosx64-aarch64-node-16: + treeherder: + symbol: TM(node-16-arm64) + run: + toolchain-alias: + - macosx64-aarch64-node + fetches: + fetch: + - nodejs-16-macosx64-arm64 + +macosx64-aarch64-node-18: + treeherder: + symbol: TM(node-18-arm64) + fetches: + fetch: + - nodejs-18-macosx64-arm64 + +win64-node-16: + treeherder: + symbol: TW64(node-16) + run: + toolchain-alias: + - win64-node + fetches: + fetch: + - nodejs-16-win64 + +win64-node-18: + treeherder: + symbol: TW64(node-18) + fetches: + fetch: + - nodejs-18-win64 + +win32-node-16: + treeherder: + symbol: TW32(node-16) + run: + toolchain-alias: + - win32-node + fetches: + fetch: + - nodejs-16-win32 + +win32-node-18: + treeherder: + symbol: TW32(node-18) + fetches: + fetch: + - nodejs-18-win32 diff --git a/taskcluster/ci/toolchain/pkgconf.yml b/taskcluster/ci/toolchain/pkgconf.yml new file mode 100644 index 0000000000..c97ead7acc --- /dev/null +++ b/taskcluster/ci/toolchain/pkgconf.yml @@ -0,0 +1,56 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + attributes: + local-toolchain: true + description: "pkgconf toolchain build" + worker: + max-run-time: 1800 + worker-type: b-linux-gcp + run: + script: build-pkgconf.sh + toolchain-artifact: public/build/pkgconf.tar.zst + fetches: + fetch: + - pkgconf + +linux64-pkgconf: + treeherder: + symbol: TL(pkgconf) + run: + arguments: ['x86_64-unknown-linux-gnu'] + fetches: + toolchain: + - linux64-clang-toolchain + - sysroot-x86_64-linux-gnu + +macosx64-pkgconf: + treeherder: + symbol: TM(pkgconf) + run: + arguments: ['x86_64-apple-darwin'] + fetches: + toolchain: + - linux64-clang-toolchain + - macosx64-sdk-toolchain + +macosx64-aarch64-pkgconf: + treeherder: + symbol: TM(pkgconf-arm64) + run: + arguments: ['aarch64-apple-darwin'] + fetches: + toolchain: + - linux64-clang-toolchain + - macosx64-sdk-toolchain + +win64-pkgconf: + treeherder: + symbol: TW64(pkgconf) + run: + arguments: ['x86_64-pc-windows-gnu'] + fetches: + toolchain: + - linux64-clang-mingw-x64 diff --git a/taskcluster/ci/toolchain/python.yml b/taskcluster/ci/toolchain/python.yml new file mode 100644 index 0000000000..e610ee6e4e --- /dev/null +++ b/taskcluster/ci/toolchain/python.yml @@ -0,0 +1,97 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + description: "python repack" + attributes: + local-toolchain: true + worker-type: b-linux-gcp + worker: + max-run-time: 7200 + run: + script: build-cpython.sh + resources: + - 'build/psutil_requirements.txt' + - 'build/zstandard_requirements.txt' + +linux64-python-3.8: + treeherder: + symbol: TL(python) + run: + toolchain-alias: linux64-python + toolchain-artifact: public/build/python.tar.zst + fetches: + fetch: + - cpython-3.8.10 + worker: + docker-image: {in-tree: ubuntu1804-build-python} + +win64-python-3.8: + description: "cpython 3.8.10" + treeherder: + symbol: TW64(python) + run: + script: pack-cpython.sh + toolchain-alias: win64-python + toolchain-artifact: public/build/python.tar.zst + fetches: + toolchain: + - linux64-wine + fetch: + - cpython-3.8.10.exe + +macosx64-python-3.8: + treeherder: + symbol: TM(python) + worker-type: b-osx-1015 + run: + toolchain-alias: macosx64-python + toolchain-artifact: public/build/python.tar.zst + fetches: + fetch: + - cpython-3.8.10 + toolchain: + - macosx64-clang-toolchain + - macosx64-sdk-toolchain + - macosx64-xz + +### + +linux64-python-3.11: + treeherder: + symbol: TL(python3.11) + run: + toolchain-artifact: public/build/python.tar.zst + fetches: + fetch: + - cpython-3.11.7 + worker: + docker-image: {in-tree: ubuntu1804-build-python} + +win64-python-3.11: + description: "cpython 3.11.7" + treeherder: + symbol: TW64(python3.11) + run: + script: pack-cpython.sh + toolchain-artifact: public/build/python.tar.zst + fetches: + toolchain: + - linux64-wine + fetch: + - cpython-3.11.7.exe + +macosx64-python-3.11: + treeherder: + symbol: TM(python3.11) + worker-type: b-osx-1015 + run: + toolchain-artifact: public/build/python.tar.zst + fetches: + fetch: + - cpython-3.11.7 + toolchain: + - macosx64-clang-toolchain + - macosx64-sdk-toolchain + - macosx64-xz diff --git a/taskcluster/ci/toolchain/resourcemonitor.yml b/taskcluster/ci/toolchain/resourcemonitor.yml new file mode 100644 index 0000000000..f4ef9a41c4 --- /dev/null +++ b/taskcluster/ci/toolchain/resourcemonitor.yml @@ -0,0 +1,44 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + worker-type: b-linux-gcp + worker: + max-run-time: 1800 + fetches: + fetch: + - go-1.14.4 + - resource-monitor + run: + script: build-resourcemonitor.sh + sparse-profile: null + toolchain-artifact: public/build/resource-monitor.tar.zst + +linux64-resource-monitor: + description: "linux64 resourcemonitor toolchain build" + treeherder: + symbol: TL(rs-monitor) + run: + arguments: ['linux64'] + +macosx64-resource-monitor: + description: "macos64 resourcemonitor toolchain build" + treeherder: + symbol: TM(rs-monitor) + run: + arguments: ['macos64'] + +windows32-resource-monitor: + description: "windows32 resourcemonitor toolchain build" + treeherder: + symbol: TW32(rs-monitor) + run: + arguments: ['windows32'] + +windows64-resource-monitor: + description: "windows64 resourcemonitor toolchain build" + treeherder: + symbol: TW64(rs-monitor) + run: + arguments: ['windows64'] diff --git a/taskcluster/ci/toolchain/rust-size.yml b/taskcluster/ci/toolchain/rust-size.yml new file mode 100644 index 0000000000..09963589a6 --- /dev/null +++ b/taskcluster/ci/toolchain/rust-size.yml @@ -0,0 +1,38 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + description: "rust-size toolchain build" + worker-type: b-linux-gcp + worker: + max-run-time: 1800 + run: + script: build-rust-based-toolchain.sh + fetches: + fetch: + - rust-size + +linux64-rust-size: + treeherder: + symbol: TL(rust-size) + run: + arguments: ['x86_64-unknown-linux-gnu'] + toolchain-artifact: public/build/rust-size.tar.zst + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-rust-toolchain + - sysroot-x86_64-linux-gnu + +win64-rust-size: + treeherder: + symbol: TW64(rust-size) + run: + arguments: ['x86_64-pc-windows-msvc'] + toolchain-artifact: public/build/rust-size.tar.zst + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-rust-windows-toolchain + - vs-toolchain diff --git a/taskcluster/ci/toolchain/rust.yml b/taskcluster/ci/toolchain/rust.yml new file mode 100644 index 0000000000..050e581247 --- /dev/null +++ b/taskcluster/ci/toolchain/rust.yml @@ -0,0 +1,219 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + description: "rust repack" + worker-type: b-linux-gcp + worker: + max-run-time: 7200 + run: + script: repack_rust.py + toolchain-artifact: public/build/rustc.tar.zst + +linux64-rust-1.70: + treeherder: + symbol: TL(rust-1.70) + run: + arguments: [ + '--channel', '1.70.0', + '--host', 'x86_64-unknown-linux-gnu', + '--target', 'x86_64-unknown-linux-gnu', + '--target', 'i686-unknown-linux-gnu', + '--target', 'wasm32-wasi', + ] + toolchain-alias: + - linux64-rust-base + - linux64-rust-toolchain + +linux64-rust-1.76: + treeherder: + symbol: TL(rust) + run: + arguments: [ + '--channel', '1.76.0', + '--host', 'x86_64-unknown-linux-gnu', + '--target', 'x86_64-unknown-linux-gnu', + '--target', 'i686-unknown-linux-gnu', + '--target', 'aarch64-unknown-linux-gnu', + '--target', 'wasm32-wasi', + ] + toolchain-alias: linux64-rust + +# A patched rust toolchain that allows us to use sanitizers in our vendored +# build environment. See the rust fetch's comments for more details. +linux64-rust-dev: + description: "build rust from source" + worker-type: b-linux-large-gcp + treeherder: + symbol: TL(rust-dev) + worker: + env: + # Work around https://github.com/rust-lang/rust/issues/105967 + RUSTFLAGS_BOOTSTRAP: '-Clink-arg=-Wl,--undefined-version' + RUSTFLAGS_NOT_BOOTSTRAP: '-Clink-arg=-Wl,--undefined-version' + run: + arguments: [ + '--patch', 'rust-vendor-std.patch', + '--patch', 'src/tools/cargo:cargo-vendor-std.patch', + '--channel', 'dev', + '--host', 'x86_64-unknown-linux-gnu', + '--target', 'x86_64-unknown-linux-gnu', + ] + fetches: + fetch: + - rust-1.76.0 + toolchain: + - linux64-clang-toolchain + - linux64-toolchain-sysroot + +linux64-rust-cross-1.76: + description: "rust repack with macos and windows cross support" + treeherder: + symbol: TL(rust-cross) + run: + arguments: [ + '--channel', '1.76.0', + '--host', 'x86_64-unknown-linux-gnu', + '--target', 'x86_64-unknown-linux-gnu', + '--target', 'i686-unknown-linux-gnu', + '--target', 'x86_64-apple-darwin', + '--target', 'aarch64-apple-darwin', + '--target', 'x86_64-pc-windows-msvc', + '--target', 'i686-pc-windows-msvc', + '--target', 'aarch64-pc-windows-msvc', + '--target', 'armv7-linux-androideabi', + '--target', 'thumbv7neon-linux-androideabi', + '--target', 'aarch64-linux-android', + '--target', 'i686-linux-android', + '--target', 'x86_64-linux-android', + ] + toolchain-alias: linux64-rust-cross + +linux64-rust-static-1.76: + description: "rust repack with static linking support" + treeherder: + symbol: TL(rust-static) + run: + arguments: [ + '--channel', '1.76.0', + '--host', 'x86_64-unknown-linux-gnu', + '--target', 'aarch64-unknown-linux-musl', + '--target', 'x86_64-unknown-linux-gnu', + '--target', 'x86_64-unknown-linux-musl', + '--target', 'i686-unknown-linux-gnu', + '--target', 'i686-unknown-linux-musl', + ] + toolchain-alias: linux64-rust-static + +linux64-rust-macos-1.70: + description: "rust repack with macos-cross support" + treeherder: + symbol: TL(rust-macos-1.70) + run: + arguments: [ + '--channel', '1.70.0', + '--host', 'x86_64-unknown-linux-gnu', + '--target', 'x86_64-unknown-linux-gnu', + '--target', 'x86_64-apple-darwin', + '--target', 'aarch64-apple-darwin', + ] + toolchain-alias: linux64-rust-macos-toolchain + +linux64-rust-macos-1.76: + description: "rust repack with macos-cross support" + treeherder: + symbol: TL(rust-macos) + run: + arguments: [ + '--channel', '1.76.0', + '--host', 'x86_64-unknown-linux-gnu', + '--target', 'x86_64-unknown-linux-gnu', + '--target', 'x86_64-apple-darwin', + '--target', 'aarch64-apple-darwin', + ] + toolchain-alias: linux64-rust-macos + +linux64-rust-android-1.76: + description: "rust repack with android-cross support" + treeherder: + symbol: TL(rust-android) + run: + arguments: [ + '--channel', '1.76.0', + '--host', 'x86_64-unknown-linux-gnu', + '--target', 'x86_64-unknown-linux-gnu', + '--target', 'armv7-linux-androideabi', + '--target', 'thumbv7neon-linux-androideabi', + '--target', 'aarch64-linux-android', + '--target', 'i686-linux-android', + '--target', 'x86_64-linux-android', + ] + toolchain-alias: linux64-rust-android + +linux64-rust-windows-1.70: + description: "rust repack with windows-cross support" + treeherder: + symbol: TL(rust-win-1.70) + run: + arguments: [ + '--channel', '1.70.0', + '--host', 'x86_64-unknown-linux-gnu', + '--target', 'x86_64-unknown-linux-gnu', + '--target', 'x86_64-pc-windows-msvc', + '--target', 'i686-pc-windows-msvc', + ] + toolchain-alias: linux64-rust-windows-toolchain + +linux64-rust-windows-1.76: + description: "rust repack with windows-cross support" + treeherder: + symbol: TL(rust-win) + run: + arguments: [ + '--channel', '1.76.0', + '--host', 'x86_64-unknown-linux-gnu', + '--target', 'x86_64-unknown-linux-gnu', + '--target', 'x86_64-pc-windows-msvc', + '--target', 'i686-pc-windows-msvc', + '--target', 'aarch64-pc-windows-msvc', + ] + toolchain-alias: linux64-rust-windows + +win64-rust-1.76: + treeherder: + symbol: TW64(rust) + run: + arguments: [ + '--channel', '1.76.0', + '--host', 'x86_64-pc-windows-msvc', + '--target', 'x86_64-pc-windows-msvc', + '--target', 'i686-pc-windows-msvc', + '--target', 'aarch64-pc-windows-msvc', + ] + toolchain-alias: win64-rust + +macosx64-rust-1.76: + treeherder: + symbol: TM(rust) + run: + arguments: [ + '--channel', '1.76.0', + '--host', 'x86_64-apple-darwin', + '--target', 'x86_64-apple-darwin', + ] + toolchain-alias: macosx64-rust + +mingw32-rust-1.76: + treeherder: + symbol: TMW(rust) + run: + arguments: [ + '--channel', '1.76.0', + '--host', 'x86_64-unknown-linux-gnu', + '--target', 'i686-unknown-linux-gnu', + '--target', 'i686-pc-windows-gnu', + '--target', 'x86_64-pc-windows-gnu', + '--target', 'x86_64-unknown-linux-gnu', + ] + toolchain-alias: mingw32-rust diff --git a/taskcluster/ci/toolchain/sccache.yml b/taskcluster/ci/toolchain/sccache.yml new file mode 100644 index 0000000000..6fa9ab46a5 --- /dev/null +++ b/taskcluster/ci/toolchain/sccache.yml @@ -0,0 +1,88 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + description: "sccache toolchain build" + attributes: + local-toolchain: true + treeherder: + symbol: TL(sccache) + worker-type: b-linux-gcp + worker: + max-run-time: 1800 + run: + using: toolchain-script + script: build-rust-based-toolchain.sh + toolchain-artifact: public/build/sccache.tar.zst + fetches: + fetch: + - sccache + +linux64-sccache: + treeherder: + symbol: TL(sccache) + run: + arguments: + - x86_64-unknown-linux-gnu + - s3 + - gcs + - azure + - dist-server + - openssl/vendored + - native-zlib + fetches: + toolchain: + - linux64-rust-toolchain + - linux64-clang-toolchain + - sysroot-x86_64-linux-gnu + +macosx64-sccache: + treeherder: + symbol: TM(sccache) + run: + arguments: + - x86_64-apple-darwin + - all + - native-zlib + fetches: + toolchain: + - linux64-rust-macos-toolchain + - linux64-clang-toolchain + - macosx64-sdk-toolchain + +macosx64-aarch64-sccache: + treeherder: + symbol: TM(sccache-aarch64) + worker: + max-run-time: 1800 + run: + arguments: + - aarch64-apple-darwin + - all + - native-zlib + fetches: + toolchain: + - linux64-rust-macos-toolchain + - linux64-clang-toolchain + - macosx64-sdk-toolchain + +win64-sccache: + treeherder: + symbol: TW64(sccache) + worker: + env: + # Blake3 assembly can't be cross-compiled. The intrinsics version should be good enough. + CARGO_FEATURE_PREFER_INTRINSICS: '1' + run: + arguments: + - x86_64-pc-windows-msvc + - dist-client + - s3 + - gcs + - native-zlib + fetches: + toolchain: + - linux64-clang-toolchain + - linux64-rust-windows-toolchain + - vs-toolchain diff --git a/taskcluster/ci/toolchain/sysroot.yml b/taskcluster/ci/toolchain/sysroot.yml new file mode 100644 index 0000000000..e4479d16e0 --- /dev/null +++ b/taskcluster/ci/toolchain/sysroot.yml @@ -0,0 +1,206 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +job-defaults: + worker-type: b-linux-gcp + worker: + max-run-time: 1800 + run: + using: toolchain-script + script: build-sysroot.sh + toolchain-artifact: public/build/sysroot.tar.zst + +sysroot-i686-linux-gnu: + description: "Sysroot for linux32 builds" + attributes: + local-toolchain: true + worker: + env: + PACKAGES_TASKS: {task-reference: '<gcc-8>'} + treeherder: + symbol: TL(sysroot32) + dependencies: + gcc-8: packages-deb8-32-gcc-8 + run: + toolchain-artifact: public/build/sysroot-i686-linux-gnu.tar.zst + arguments: + - i386 + +sysroot-x86_64-linux-gnu: + description: "Sysroot for linux64 builds" + attributes: + local-toolchain: true + worker: + env: + PACKAGES_TASKS: {task-reference: '<gcc-8>'} + treeherder: + symbol: TL(sysroot64) + dependencies: + gcc-8: packages-deb8-gcc-8 + run: + toolchain-artifact: public/build/sysroot-x86_64-linux-gnu.tar.zst + arguments: + - amd64 + +sysroot-x86_64-linux-gnu-x11: + description: "Sysroot for linux64 builds (X11-only)" + attributes: + local-toolchain: true + worker: + env: + PACKAGES_TASKS: {task-reference: '<gcc-8> <gtk3>'} + treeherder: + symbol: TL(sysroot64-x11) + dependencies: + gcc-8: packages-deb8-gcc-8 + gtk3: packages-deb8-gtk3 + run: + toolchain-artifact: public/build/sysroot-x86_64-linux-gnu.tar.zst + arguments: + - amd64 + +sysroot-wasm32-wasi-clang-8.0: + description: "Sysroot for wasi" + attributes: + local-toolchain: true + treeherder: + symbol: TL(sysroot-wasi-8) + run: + script: build-sysroot-wasi.sh + toolchain-artifact: public/build/sysroot-wasm32-wasi.tar.zst + fetches: + fetch: + - clang-8.0 + - wasi-sdk-11 + toolchain: + - linux64-clang-8.0 + - wasm32-wasi-compiler-rt-8.0 + +sysroot-wasm32-wasi-clang-17: + description: "Sysroot for wasi" + attributes: + local-toolchain: true + treeherder: + symbol: TL(sysroot-wasi-17) + run: + script: build-sysroot-wasi.sh + arguments: + - wasi-sdk.patch + resources: + - taskcluster/scripts/misc/wasi-sdk.patch + toolchain-alias: + by-project: + toolchains: null + default: sysroot-wasm32-wasi + toolchain-artifact: public/build/sysroot-wasm32-wasi.tar.zst + fetches: + fetch: + - clang-17 + - wasi-sdk + toolchain: + - linux64-clang-17-stage1 + - wasm32-wasi-compiler-rt-17 + +sysroot-wasm32-wasi-clang-18: + description: "Sysroot for wasi" + attributes: + local-toolchain: true + treeherder: + symbol: TL(sysroot-wasi-18) + run: + script: build-sysroot-wasi.sh + arguments: + - wasi-sdk.patch + resources: + - taskcluster/scripts/misc/wasi-sdk.patch + toolchain-artifact: public/build/sysroot-wasm32-wasi.tar.zst + fetches: + fetch: + - clang-18 + - wasi-sdk + toolchain: + - linux64-clang-18-stage1 + - wasm32-wasi-compiler-rt-18 + +sysroot-wasm32-wasi-clang-trunk: + description: "Sysroot for wasi" + attributes: + cached_task: false + treeherder: + symbol: TL(sysroot-wasi-trunk) + run: + script: build-sysroot-wasi.sh + arguments: + - wasi-sdk.patch + resources: + - taskcluster/scripts/misc/wasi-sdk.patch + toolchain-alias: + by-project: + toolchains: sysroot-wasm32-wasi + default: null + toolchain-artifact: public/build/sysroot-wasm32-wasi.tar.zst + fetches: + fetch: + - clang-trunk + - wasi-sdk + toolchain: + - linux64-clang-trunk-stage1 + - wasm32-wasi-compiler-rt-trunk + +sysroot-aarch64-linux-gnu: + description: "Sysroot for linux64 aarch64 builds" + attributes: + local-toolchain: true + treeherder: + symbol: TL(sysroot-aarch64) + run: + toolchain-artifact: public/build/sysroot-aarch64-linux-gnu.tar.zst + arguments: + - arm64 + +linux32-toolchain-sysroot: + description: "Sysroot for linux32 toolchain builds" + worker: + env: + PACKAGES_TASKS: {task-reference: '<gcc-8>'} + treeherder: + symbol: TL(sysroot32-toolchain) + dependencies: + gcc-8: packages-deb8-32-gcc-8 + run: + arguments: + - i386 + # For clang + - binutils-dev + - libxml2-dev + # For minidump-stackwalk + - libcurl4-openssl-dev + - libssl-dev + - libbz2-dev + # For msix-package + - libicu-dev + +linux64-toolchain-sysroot: + description: "Sysroot for linux64 toolchain builds" + worker: + env: + PACKAGES_TASKS: {task-reference: '<gcc-8>'} + treeherder: + symbol: TL(sysroot64-toolchain) + dependencies: + gcc-8: packages-deb8-gcc-8 + run: + arguments: + - amd64 + # For clang + - binutils-dev + - gcc-multilib + - lib32stdc++-8-dev + - libxml2-dev + # For minidump-stackwalk + - libcurl4-openssl-dev + - libssl-dev + - libbz2-dev + # For msix-package + - libicu-dev diff --git a/taskcluster/ci/trigger-comm-central/kind.yml b/taskcluster/ci/trigger-comm-central/kind.yml new file mode 100644 index 0000000000..0b6dfb2c64 --- /dev/null +++ b/taskcluster/ci/trigger-comm-central/kind.yml @@ -0,0 +1,43 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - gecko_taskgraph.transforms.trigger_comm_central:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + run-on-projects: ['mozilla-central-only'] + treeherder: + kind: other + platform: other/opt + tier: 2 + worker-type: b-linux-gcp + worker: + docker-image: {in-tree: debian12-amd64-build} + max-run-time: 600 + taskcluster-proxy: true + run: + using: run-task + checkout: false + +jobs: + tb-rust: + description: 'Schedule job to verify the comm-central copy of third_party/rust' + treeherder: + symbol: tb-rust + run: + command: '/usr/bin/curl --fail --verbose -X POST -d "{}" -H "Content-Type: application/json" ${TASKCLUSTER_PROXY_URL}/api/hooks/v1/hooks/project-releng/cron-task-comm-central%2ftb-rust-vendor-check/trigger' + when: + files-changed: + - Cargo.lock + - Cargo.toml + - toolkit/library/rust/shared/Cargo.toml + scopes: + by-level: + '3': + - 'hooks:trigger-hook:project-releng/cron-task-comm-central/tb-rust-vendor-check' + default: [] diff --git a/taskcluster/ci/updatebot/kind.yml b/taskcluster/ci/updatebot/kind.yml new file mode 100644 index 0000000000..b62eccc5bc --- /dev/null +++ b/taskcluster/ci/updatebot/kind.yml @@ -0,0 +1,92 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - fetch + - toolchain + +transforms: + - gecko_taskgraph.transforms.release_notifications:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +jobs: + cron: + description: Cron Job for Updatebot + run-on-projects: [] + treeherder: + kind: other + platform: updatebot/all + symbol: cron + tier: 1 + worker-type: b-linux-gcp + worker: + docker-image: {in-tree: updatebot} + max-run-time: 3600 + taskcluster-proxy: true + scopes: + - secrets:get:project/updatebot/{level}/try-sshkey + - secrets:get:project/updatebot/{level}/phabricator-token + - secrets:get:project/updatebot/{level}/bugzilla-api-key + - secrets:get:project/updatebot/{level}/database-password + - secrets:get:project/updatebot/{level}/sentry-url + - secrets:get:project/updatebot/{level}/sql-proxy-config + - hooks:trigger-hook:project-gecko/in-tree-action-1-generic/* + run: + using: run-task + command: /builds/worker/run.py /builds/worker/checkouts/gecko /builds/worker/updatebot + notifications: + subject: 'updatebot cron failed' + message: 'updatebot cron failed' + status-types: + - on-failed + - on-exception + emails: ["tom@mozilla.com", "jewilde@mozilla.com"] + fetches: + toolchain: + - linux64-rust + - linux64-cargo-vet + + cron-win: + description: Cron Job for Updatebot (Windows) + run-on-projects: [] + treeherder: + kind: other + platform: updatebot/all + symbol: w-cron + tier: 1 + worker-type: b-win2022 + worker: + max-run-time: 3600 + taskcluster-proxy: true + # begin _GENERATE_DEPOT_TOOLS_BINARIES_ + # artifacts: + # - type: directory + # name: public/depot_tools.zip + # path: build\src\obj-build\depot_tools + # end _GENERATE_DEPOT_TOOLS_BINARIES_ + env: + TOOLTOOL_MANIFEST: "taskcluster/ci/updatebot/tooltool-manifests/updatebot.manifest" + MSYSTEM: "MINGW64" + run: + using: run-task + cwd: '{checkout}' + command: ./taskcluster/docker/updatebot/windows-setup.sh + tooltool-downloads: internal + scopes: + - secrets:get:project/updatebot/{level}/try-sshkey + - secrets:get:project/updatebot/{level}/phabricator-token + - secrets:get:project/updatebot/{level}/bugzilla-api-key + - secrets:get:project/updatebot/{level}/database-password + - secrets:get:project/updatebot/{level}/sentry-url + - secrets:get:project/updatebot/{level}/sql-proxy-config + - hooks:trigger-hook:project-gecko/in-tree-action-1-generic/* + fetches: + fetch: + - cloud-sql-proxy-1.25.0 + - php-windows-7.4.24 + - arcanist + - depot_tools diff --git a/taskcluster/ci/updatebot/moz.build b/taskcluster/ci/updatebot/moz.build new file mode 100644 index 0000000000..315dc32600 --- /dev/null +++ b/taskcluster/ci/updatebot/moz.build @@ -0,0 +1,8 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +with Files("**"): + BUG_COMPONENT = ("Developer Infrastructure", "Mach Vendor & Updatebot") diff --git a/taskcluster/ci/updatebot/tooltool-manifests/updatebot.manifest b/taskcluster/ci/updatebot/tooltool-manifests/updatebot.manifest new file mode 100644 index 0000000000..f284d80914 --- /dev/null +++ b/taskcluster/ci/updatebot/tooltool-manifests/updatebot.manifest @@ -0,0 +1,29 @@ +[ + { + "version": "vcruntime140.dll from Microsoft Visual C++ Redistributable for Visual Studio 2019 ver 14.29.30133.0", + "size": 97160, + "visibility": "internal", + "digest": "aa6afd6bea27f554e3646152d8c4f96f7bcaaa4933f8b7c04346e410f93f23cfa6d29362fd5d51ccbb8b6223e094cd89e351f072ad0517553703f5bf9de28778", + "algorithm": "sha512", + "filename": "vcruntime140.dll", + "unpack": false + }, + { + "version": "Visual Studio Community 2019, Windows SDK 10.0.19041.0, and a few system dlls Lobotmized for Angle Update", + "filename": "vs-sdk-and-windir-shim.zip", + "size": 463564917, + "algorithm": "sha512", + "digest": "20d93b0014ca44a666ca2b5cc570127f24378454889ff0a036df72213cd18140185d2c2e61df40bf1e4c0d9d2dc83a7796af9d2a13252de3c85faad068291945", + "visibility": "internal", + "unpack": true + }, + { + "version": "Windows binaries for depot_tools retrieved with depot_tools revision 7b3351443198f4e7d068999b169385b55a43679a on 2021-12-18", + "filename": "depot_tools-preloaded-binaries-7b3351443198f4e7d068999b169385b55a43679a-2021-12-18.zip", + "size": 315038144, + "algorithm": "sha512", + "digest": "250f3f3fcf631c53de1f505c53eb5ba782864fa92111eef0d710a1e7d0ad3da66db2fb8908d7c6d83e149674e976984d679f9a641eb9bea0b5c3d7b4f236920d", + "visibility": "internal", + "unpack": true + } +] diff --git a/taskcluster/ci/upload-generated-sources-dummy/kind.yml b/taskcluster/ci/upload-generated-sources-dummy/kind.yml new file mode 100644 index 0000000000..56e6762839 --- /dev/null +++ b/taskcluster/ci/upload-generated-sources-dummy/kind.yml @@ -0,0 +1,26 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.per_platform_dummy + - gecko_taskgraph.transforms.mac_dummy + - gecko_taskgraph.transforms.task + +only-for-build-platforms: + macosx64-shippable/opt + macosx64-devedition/opt + +kind-dependencies: + - build + - upload-generated-sources + +jobs: + upload-generated-sources-dummy: + description: Dummy task to pull in mac x64 and aarch64 upload-generated-symbols tasks + from-deps: + group-by: single-with-filters + worker-type: succeed diff --git a/taskcluster/ci/upload-generated-sources/kind.yml b/taskcluster/ci/upload-generated-sources/kind.yml new file mode 100644 index 0000000000..86123d336d --- /dev/null +++ b/taskcluster/ci/upload-generated-sources/kind.yml @@ -0,0 +1,42 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.upload_generated_sources + - gecko_taskgraph.transforms.job + - gecko_taskgraph.transforms.task + +kind-dependencies: + - build + +only-for-attributes: + - nightly + - shippable + - upload-generated-sources + +not-for-build-platforms: + - macosx64-shippable/opt + - macosx64-devedition/opt + +jobs: + upload-generated-sources: + description: Upload generated source files from build + from-deps: + group-by: single-with-filters + worker-type: t-linux-xlarge + treeherder: + symbol: Ugs + kind: build + worker: + docker-image: {in-tree: "lint"} + max-run-time: 600 + run: + using: mach + mach: {artifact-reference: "python --virtualenv upload-generated-sources build/upload_generated_sources.py <build/public/build/target.generated-files.tar.gz>"} + sparse-profile: upload-generated-sources + scopes: + - secrets:get:project/releng/gecko/build/level-{level}/gecko-generated-sources-upload diff --git a/taskcluster/ci/upload-symbols-dummy/kind.yml b/taskcluster/ci/upload-symbols-dummy/kind.yml new file mode 100644 index 0000000000..d9202ef373 --- /dev/null +++ b/taskcluster/ci/upload-symbols-dummy/kind.yml @@ -0,0 +1,27 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.per_platform_dummy + - gecko_taskgraph.transforms.mac_dummy + - gecko_taskgraph.transforms.task + +only-for-build-platforms: + macosx64-shippable/opt + macosx64-devedition/opt + +kind-dependencies: + - build + - upload-symbols + +jobs: + upload-symbols-dummy: + description: Dummy task to pull in mac x64 and aarch64 upload-symbols tasks + from-deps: + group-by: single-with-filters + unique-kinds: false + worker-type: succeed diff --git a/taskcluster/ci/upload-symbols/kind.yml b/taskcluster/ci/upload-symbols/kind.yml new file mode 100644 index 0000000000..0421835607 --- /dev/null +++ b/taskcluster/ci/upload-symbols/kind.yml @@ -0,0 +1,53 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.from_deps + - gecko_taskgraph.transforms.upload_symbols + - gecko_taskgraph.transforms.job + - gecko_taskgraph.transforms.task + +kind-dependencies: + - build + - toolchain + +not-for-build-platforms: + # Address Sanitizer builds don't have symbols to upload. + - linux64-asan-reporter-shippable/opt + - win64-asan-reporter-shippable/opt + - linux-geckodriver/opt + - linux64-geckodriver/opt + - linux64-aarch64-geckodriver/opt + - macosx64-geckodriver/opt + - macosx64-aarch64-geckodriver/opt + - win32-geckodriver/opt + - win64-geckodriver/opt + - win64-aarch64-geckodriver/opt + +jobs: + upload-symbols: + description: Upload Symbols + from-deps: + group-by: platform + worker-type: b-linux-gcp + use-system-python: false + worker: + docker-image: {in-tree: "debian12-base"} + max-run-time: 1800 + env: + # {level} gets replaced in the upload_symbols transform + SYMBOL_SECRET: "project/releng/gecko/build/level-{level}/gecko-symbol-upload" + MAKECAB: /builds/worker/fetches/makecab/makecab + MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE: system + run: + using: mach + mach: {artifact-reference: "python toolkit/crashreporter/tools/upload_symbols.py <build/public/cidata/target.crashreporter-symbols-full.tar.zst>"} + sparse-profile: upload-symbols + scopes: + - secrets:get:project/releng/gecko/build/level-{level}/gecko-symbol-upload + fetches: + toolchain: + - linux64-makecab diff --git a/taskcluster/ci/valgrind/kind.yml b/taskcluster/ci/valgrind/kind.yml new file mode 100644 index 0000000000..754616e611 --- /dev/null +++ b/taskcluster/ci/valgrind/kind.yml @@ -0,0 +1,65 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + +transforms: + - gecko_taskgraph.transforms.build_attrs:transforms + - gecko_taskgraph.transforms.build_lints:transforms + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + attributes: + retrigger: true + use-system-python: false + +jobs: + linux64-valgrind-qr/opt-swr: + description: "Linux64 Valgrind Opt WebRender" + index: + product: firefox + job-name: linux64-valgrind-qr/opt-swr + treeherder: + platform: linux64-qr/opt + symbol: V-swr + kind: build + tier: 1 + worker-type: t-linux-kvm + worker: + docker-image: {in-tree: valgrind-build} + max-run-time: 72000 + env: + NEED_XVFB: "true" + PERFHERDER_EXTRA_OPTIONS: valgrind + run: + using: mozharness + actions: [get-secrets, build, valgrind-test] + custom-build-variant-cfg: valgrind + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + extra-config: + extra_prefs: [gfx.webrender.software=true] + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + tooltool-downloads: public + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-dump_syms + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-pkgconf + - sysroot-x86_64-linux-gnu + - sysroot-wasm32-wasi + optimization: + skip-unless-expanded: null diff --git a/taskcluster/ci/webrender/kind.yml b/taskcluster/ci/webrender/kind.yml new file mode 100644 index 0000000000..84a938cf67 --- /dev/null +++ b/taskcluster/ci/webrender/kind.yml @@ -0,0 +1,634 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +--- +loader: gecko_taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + - build + +transforms: + - gecko_taskgraph.transforms.job:transforms + - gecko_taskgraph.transforms.task:transforms + +job-defaults: + attributes: + retrigger: true + run-on-projects: ['integration', 'release'] + treeherder: + tier: 1 + kind: other + worker: + max-run-time: 3600 + env: + RUST_BACKTRACE: 'full' + RUSTFLAGS: '--deny warnings' + run: + sparse-profile: webrender + use-system-python: false + +jobs: + lint-tidy: + description: Runs linting checks on WebRender code + worker-type: b-linux-gcp + worker: + docker-image: {in-tree: webrender} + run: + using: run-task + cwd: '{checkout}/gfx/wr' + command: >- + pushd /tmp && + python3 -m pip install six && + python3 -m pip install -e 'git+https://github.com/servo/servo.git@65a4d1646da46c37fe748add6dcf24b62ebb602a#egg=servo_tidy&subdirectory=python/tidy' && + popd && + servo-tidy + treeherder: + platform: linux64-qr/opt + symbol: WR(tidy) + when: + files-changed: + - 'gfx/wr/**' + + linux64-release: + description: Runs release-mode WebRender CI tests on a Linux worker + worker-type: b-linux-gcp + worker: + docker-image: {in-tree: webrender} + fetches: + toolchain: + - linux64-rust + - wrench-deps + run: + using: run-task + command: >- + export PATH=$PATH:$MOZ_FETCHES_DIR/rustc/bin:${MOZ_FETCHES_DIR}/wrench-deps/meson && + cd $HOME/checkouts/gecko/gfx/wr && + mv $MOZ_FETCHES_DIR/wrench-deps/{vendor,.cargo} ./ && + CARGOFLAGS="--verbose --frozen" ci-scripts/linux-release-tests.sh + treeherder: + platform: linux64-qr/opt + symbol: WR(wrench) + kind: other + when: + files-changed: + - 'gfx/wr/**' + + linux64-debug: + description: Runs debug-mode WebRender CI tests on a Linux worker + worker-type: b-linux-gcp + worker: + docker-image: {in-tree: webrender} + fetches: + toolchain: + - linux64-rust + - wrench-deps + run: + using: run-task + command: >- + export PATH=$PATH:$MOZ_FETCHES_DIR/rustc/bin:${MOZ_FETCHES_DIR}/wrench-deps/meson && + cd $HOME/checkouts/gecko/gfx/wr && + mv $MOZ_FETCHES_DIR/wrench-deps/{vendor,.cargo} ./ && + CARGOFLAGS="--verbose --frozen" ci-scripts/linux-debug-tests.sh + treeherder: + platform: linux64-qr/debug + symbol: WR(wrench) + kind: other + when: + files-changed: + - 'gfx/wr/**' + + wrench-macos-build: + description: Cross compilation of wrench for macOS on Linux + worker-type: b-linux-gcp + worker: + docker-image: {in-tree: webrender} + chain-of-trust: true + artifacts: + - type: file + name: public/build/wrench-macos.tar.bz2 + path: /builds/worker/artifacts/wrench-macos.tar.bz2 + - type: file + name: public/build/wrench-macos-headless.tar.bz2 + path: /builds/worker/artifacts/wrench-macos-headless.tar.bz2 + dependencies: + macosx64-clang-14: toolchain-macosx64-clang-14-raw + fetches: + toolchain: + - linux64-rust-macos + - linux64-clang-14 + - macosx64-sdk + - wrench-deps + macosx64-clang-14: + - artifact: clang.tar.zst + dest: clang-mac + run: + using: run-task + command: '$HOME/checkouts/gecko/taskcluster/scripts/misc/wrench-macos-build.sh' + treeherder: + platform: osx-cross/opt + symbol: WR(B) + when: + files-changed: + - 'gfx/wr/**' + - 'taskcluster/scripts/misc/wr-macos-cross-build-setup.sh' + - 'taskcluster/scripts/misc/wrench-macos-build.sh' + + macos-release: + description: Runs release-mode WebRender CI tests on a macOS worker + worker-type: t-osx-1015-r8 + worker: + # repo cloning has highly variable run time + max-run-time: 7200 + env: + MOZ_FETCHES_DIR: 'checkouts/gecko/gfx/wr' + dependencies: + webrender-wrench-macos-build: webrender-wrench-macos-build + fetches: + webrender-wrench-macos-build: + - 'wrench-macos.tar.bz2' + - 'wrench-macos-headless.tar.bz2' + run: + using: run-task + cwd: '{checkout}/gfx/wr' + command: >- + export WRENCH_HEADLESS_TARGET=$PWD/wrench-macos-headless/ && + export WRENCH_BINARY=$PWD/wrench-macos/bin/wrench && + ci-scripts/macos-release-tests.sh + treeherder: + platform: macosx1015-64-qr/opt + symbol: WR(wrench) + when: + files-changed: + - 'gfx/wr/**' + + cargotest-macos-build: + description: Cross compilation of cargo tests for macOS on Linux + worker-type: b-linux-gcp + worker: + docker-image: {in-tree: webrender} + chain-of-trust: true + artifacts: + - type: file + name: public/build/cargo-test-binaries.tar.bz2 + path: /builds/worker/artifacts/cargo-test-binaries.tar.bz2 + fetches: + toolchain: + - linux64-rust-macos + - linux64-clang + - macosx64-sdk + - wrench-deps + run: + using: run-task + command: '$HOME/checkouts/gecko/taskcluster/scripts/misc/wr-cargotest-macos-build.sh' + treeherder: + platform: osx-cross/debug + symbol: WR(B) + when: + files-changed: + - 'gfx/wr/**' + - 'taskcluster/scripts/misc/wr-cargotest-macos-build.sh' + - 'taskcluster/scripts/misc/wr-macos-cross-build-setup.sh' + + macos-debug: + description: Runs debug-mode WebRender CI tests on a macOS worker + worker-type: t-osx-1015-r8 + worker: + max-run-time: 3600 + env: + MOZ_FETCHES_DIR: 'checkouts/gecko/gfx/wr' + dependencies: + webrender-cargotest-macos-build: webrender-cargotest-macos-build + fetches: + webrender-cargotest-macos-build: + - 'cargo-test-binaries.tar.bz2' + run: + using: run-task + cwd: '{checkout}/gfx/wr' + command: >- + mv cargo-test-binaries target && + cd target && + for i in debug/deps/*; do $i; done + treeherder: + platform: macosx1015-64-qr/debug + symbol: WR(cargotest) + when: + files-changed: + - 'gfx/wr/**' + + windows: + description: Runs WebRender CI tests on a Windows worker + worker-type: win11-64-2009-source + worker: + max-run-time: 5400 + env: + NODE_OPTIONS: '--max_old_space_size=4096' + fetches: + toolchain: + - win64-rust + - vs + - wrench-deps + run: + using: run-task + use-caches: false + command: '$GECKO_PATH/taskcluster/scripts/misc/wrench-windows-tests.sh' + treeherder: + platform: windows11-64-2009-qr/release + symbol: WR(wrench) + when: + files-changed: + - 'build/win64/mozconfig.vs2019' + - 'gfx/wr/**' + - 'taskcluster/scripts/misc/wrench-windows-tests.sh' + + wrench-android-debug: + description: Debug build of wrench for Android + attributes: + build_platform: android + worker-type: b-linux-gcp + worker: + max-run-time: 5400 + docker-image: {in-tree: webrender} + artifacts: + - type: file + name: public/build/wrench-debug.apk + path: /builds/worker/checkouts/gecko/gfx/wr/target/debug/apk/wrench.apk + - type: file + name: public/build/reftests.tar.gz + path: /builds/worker/checkouts/gecko/gfx/wr/wrench/reftests.tar.gz + - type: file + name: public/build/mozdevice.tar.gz + path: /builds/worker/checkouts/gecko/testing/mozbase/mozdevice.tar.gz + - type: file + name: public/build/six.tar.gz + path: /builds/worker/checkouts/gecko/third_party/python/six.tar.gz + run: + using: run-task + cwd: '{checkout}/gfx/wr/wrench' + command: >- + $GECKO_PATH/taskcluster/scripts/misc/wrench-android-build.sh debug && + tar czf reftests.tar.gz reftests/ && + cd $GECKO_PATH/testing/mozbase && + tar czf mozdevice.tar.gz mozdevice/ && + cd $GECKO_PATH/third_party/python && + tar czf six.tar.gz six/ + fetches: + toolchain: + - android-gradle-dependencies + - android-ndk-linux + - android-sdk-linux + - android-system-image-x86_64-linux + - android-avd-x86_64-linux + - linux64-cargo-apk + - linux64-jdk + - linux64-rust-android + - wrench-deps + treeherder: + platform: android-em-7-0-x86/debug + symbol: WR(B) + when: + files-changed: + - 'build.gradle' + - 'gfx/wr/**' + - 'taskcluster/scripts/misc/wrench-android-build.sh' + + wrench-android-release: + description: Release build of wrench for Android + attributes: + build_platform: android + worker-type: b-linux-gcp + worker: + max-run-time: 5400 + docker-image: {in-tree: webrender} + artifacts: + - type: file + name: public/build/wrench-release.apk + path: /builds/worker/checkouts/gecko/gfx/wr/target/release/apk/wrench.apk + - type: file + name: public/build/reftests.tar.gz + path: /builds/worker/checkouts/gecko/gfx/wr/wrench/reftests.tar.gz + - type: file + name: public/build/mozdevice.tar.gz + path: /builds/worker/checkouts/gecko/testing/mozbase/mozdevice.tar.gz + - type: file + name: public/build/six.tar.gz + path: /builds/worker/checkouts/gecko/third_party/python/six.tar.gz + run: + using: run-task + cwd: '{checkout}/gfx/wr/wrench' + command: >- + $GECKO_PATH/taskcluster/scripts/misc/wrench-android-build.sh release && + tar czf reftests.tar.gz reftests/ && + cd $GECKO_PATH/testing/mozbase && + tar czf mozdevice.tar.gz mozdevice/ && + cd $GECKO_PATH/third_party/python && + tar czf six.tar.gz six/ + fetches: + toolchain: + - android-gradle-dependencies + - android-ndk-linux + - android-sdk-linux + - android-system-image-x86_64-linux + - android-avd-x86_64-linux + - linux64-cargo-apk + - linux64-jdk + - linux64-rust-android + - wrench-deps + treeherder: + platform: android-em-7-0-x86/opt + symbol: WR(B) + when: + files-changed: + - 'build.gradle' + - 'gfx/wr/**' + - 'taskcluster/scripts/misc/wrench-android-build.sh' + + android-emulator-debug: + description: Run debug wrench reftests on Android emulator + attributes: + build_platform: android + worker-type: t-linux-kvm # privileged:true doesn't work on b-linux + worker: + max-run-time: 5400 + docker-image: {in-tree: ubuntu1804-test} + privileged: true # for access to /dev/kvm for hw accel in the emulator + artifacts: + - type: directory + name: public/build/logs + path: /builds/worker/workspace/build/logs + env: + # need hard-coded URLs until bug 1551875 is fixed + TASKCLUSTER_ROOT_URL: 'https://taskcluster.net' + TASKCLUSTER_PROXY_URL: 'http://taskcluster' + MOZHARNESS_SCRIPT: android_wrench.py + MOZHARNESS_CONFIG: android/wrench.py + NEED_WINDOW_MANAGER: 'true' + PYTHON: "/builds/worker/checkouts/gecko/mach python" + dependencies: + webrender-wrench-android-debug: webrender-wrench-android-debug + fetches: + webrender-wrench-android-debug: + - artifact: 'wrench-debug.apk' + extract: false + toolchain: + - android-sdk-linux + - android-system-image-x86_64-linux + - android-avd-x86_64-linux + - linux64-jdk + run: + using: run-task + tooltool-downloads: internal + command: >- + export WRENCH_APK=$MOZ_FETCHES_DIR/wrench-debug.apk && + export WRENCH_REFTESTS=$GECKO_PATH/gfx/wr/wrench/reftests && + export MOZHARNESS_PATH=$GECKO_PATH/testing/mozharness && + $GECKO_PATH/taskcluster/scripts/tester/test-linux.sh + treeherder: + platform: android-em-7-0-x86/debug + symbol: WR(wrench) + when: + files-changed: + - 'gfx/wr/**' + - 'testing/mozharness/scripts/android_*.py' + - 'testing/mozharness/configs/android/*.py' + + android-emulator-release: + description: Run release wrench reftests on Android emulator + attributes: + build_platform: android + worker-type: t-linux-kvm # privileged:true doesn't work on b-linux + worker: + max-run-time: 5400 + docker-image: {in-tree: ubuntu1804-test} + privileged: true # for access to /dev/kvm for hw accel in the emulator + artifacts: + - type: directory + name: public/build/logs + path: /builds/worker/workspace/build/logs + env: + # need hard-coded URLs until bug 1551875 is fixed + TASKCLUSTER_ROOT_URL: 'https://taskcluster.net' + TASKCLUSTER_PROXY_URL: 'http://taskcluster' + MOZHARNESS_SCRIPT: android_wrench.py + MOZHARNESS_CONFIG: android/wrench.py + NEED_WINDOW_MANAGER: 'true' + PYTHON: "/builds/worker/checkouts/gecko/mach python" + dependencies: + webrender-wrench-android-release: webrender-wrench-android-release + fetches: + webrender-wrench-android-release: + - artifact: 'wrench-release.apk' + extract: false + toolchain: + - android-sdk-linux + - android-system-image-x86_64-linux + - android-avd-x86_64-linux + - linux64-jdk + run: + using: run-task + tooltool-downloads: internal + command: >- + export WRENCH_APK=$MOZ_FETCHES_DIR/wrench-release.apk && + export WRENCH_REFTESTS=$GECKO_PATH/gfx/wr/wrench/reftests && + export MOZHARNESS_PATH=$GECKO_PATH/testing/mozharness && + $GECKO_PATH/taskcluster/scripts/tester/test-linux.sh + treeherder: + platform: android-em-7-0-x86/opt + symbol: WR(wrench) + when: + files-changed: + - 'gfx/wr/**' + - 'testing/mozharness/scripts/android_*.py' + - 'testing/mozharness/configs/android/*.py' + + android-hw-p5-debug: + description: Run debug wrench reftests on Android Pixel5 + attributes: + build_platform: android + worker-type: t-bitbar-gw-unit-p5 + worker: + max-run-time: 5400 + artifacts: + - type: directory + name: public/build/logs + path: build/logs + env: + MOZHARNESS_SCRIPT: android_wrench.py + MOZHARNESS_CONFIG: android/wrench.py + MOZ_FETCHES_DIR: fetches + PYTHONPATH: "fetches/mozdevice:fetches/six" + dependencies: + webrender-wrench-android-debug: webrender-wrench-android-debug + android-build: build-android-arm/debug + fetches: + webrender-wrench-android-debug: + - artifact: 'wrench-debug.apk' + extract: false + - 'reftests.tar.gz' + - 'mozdevice.tar.gz' + - 'six.tar.gz' + android-build: + - artifact: 'mozharness.zip' + dest: 'mozharness' + run: + using: run-task + checkout: false + run-as-root: true + command: >- + export WRENCH_APK=$MOZ_FETCHES_DIR/wrench-debug.apk && + export WRENCH_REFTESTS=$MOZ_FETCHES_DIR/reftests && + export MOZHARNESS_PATH=$MOZ_FETCHES_DIR/mozharness && + python3 ${MOZHARNESS_PATH}/scripts/${MOZHARNESS_SCRIPT} --config-file ${MOZHARNESS_PATH}/configs/${MOZHARNESS_CONFIG} + treeherder: + platform: android-hw-p5-13-0-arm7/debug + symbol: WR(wrench) + when: + files-changed: + - 'gfx/wr/**' + - 'testing/mozharness/scripts/android_*.py' + - 'testing/mozharness/configs/android/*.py' + - 'testing/mozbase/mozdevice/**' + + android-hw-p5-opt: + description: Run opt wrench reftests on Android Pixel5 + attributes: + build_platform: android + worker-type: t-bitbar-gw-unit-p5 + worker: + max-run-time: 5400 + artifacts: + - type: directory + name: public/build/logs + path: build/logs + env: + MOZHARNESS_SCRIPT: android_wrench.py + MOZHARNESS_CONFIG: android/wrench.py + MOZ_FETCHES_DIR: fetches + PYTHONPATH: "fetches/mozdevice:fetches/six" + dependencies: + webrender-wrench-android-release: webrender-wrench-android-release + android-build: build-android-arm/opt + fetches: + webrender-wrench-android-release: + - artifact: 'wrench-release.apk' + extract: false + - 'reftests.tar.gz' + - 'mozdevice.tar.gz' + - 'six.tar.gz' + android-build: + - artifact: 'mozharness.zip' + dest: 'mozharness' + run: + using: run-task + checkout: false + run-as-root: true + command: >- + export WRENCH_APK=$MOZ_FETCHES_DIR/wrench-release.apk && + export WRENCH_REFTESTS=$MOZ_FETCHES_DIR/reftests && + export MOZHARNESS_PATH=$MOZ_FETCHES_DIR/mozharness && + python3 ${MOZHARNESS_PATH}/scripts/${MOZHARNESS_SCRIPT} --config-file ${MOZHARNESS_PATH}/configs/${MOZHARNESS_CONFIG} + treeherder: + platform: android-hw-p5-13-0-arm7/opt + symbol: WR(wrench) + when: + files-changed: + - 'gfx/wr/**' + - 'testing/mozharness/scripts/android_*.py' + - 'testing/mozharness/configs/android/*.py' + - 'testing/mozbase/mozdevice/**' + + android-hw-a51-debug: + description: Run debug wrench reftests on Android Samsung Galaxy A51 + attributes: + build_platform: android + worker-type: t-bitbar-gw-perf-a51 + worker: + max-run-time: 5400 + artifacts: + - type: directory + name: public/build/logs + path: build/logs + env: + MOZHARNESS_SCRIPT: android_wrench.py + MOZHARNESS_CONFIG: android/wrench.py + MOZ_FETCHES_DIR: fetches + PYTHONPATH: "fetches/mozdevice:fetches/six" + dependencies: + webrender-wrench-android-debug: webrender-wrench-android-debug + android-build: build-android-arm/debug + fetches: + webrender-wrench-android-debug: + - artifact: 'wrench-debug.apk' + extract: false + - 'reftests.tar.gz' + - 'mozdevice.tar.gz' + - 'six.tar.gz' + android-build: + - artifact: 'mozharness.zip' + dest: 'mozharness' + run: + using: run-task + checkout: false + run-as-root: true + command: >- + export WRENCH_APK=$MOZ_FETCHES_DIR/wrench-debug.apk && + export WRENCH_REFTESTS=$MOZ_FETCHES_DIR/reftests && + export MOZHARNESS_PATH=$MOZ_FETCHES_DIR/mozharness && + python3 ${MOZHARNESS_PATH}/scripts/${MOZHARNESS_SCRIPT} --config-file ${MOZHARNESS_PATH}/configs/${MOZHARNESS_CONFIG} + treeherder: + platform: android-hw-a51-11-0-arm7/debug + symbol: WR(wrench) + when: + files-changed: + - 'gfx/wr/**' + - 'testing/mozharness/scripts/android_*.py' + - 'testing/mozharness/configs/android/*.py' + - 'testing/mozbase/mozdevice/**' + + android-hw-a51-opt: + description: Run opt wrench reftests on Android Samsung Galaxy A51 + attributes: + build_platform: android + worker-type: t-bitbar-gw-perf-a51 + worker: + max-run-time: 5400 + artifacts: + - type: directory + name: public/build/logs + path: build/logs + env: + MOZHARNESS_SCRIPT: android_wrench.py + MOZHARNESS_CONFIG: android/wrench.py + MOZ_FETCHES_DIR: fetches + PYTHONPATH: "fetches/mozdevice:fetches/six" + dependencies: + webrender-wrench-android-release: webrender-wrench-android-release + android-build: build-android-arm/opt + fetches: + webrender-wrench-android-release: + - artifact: 'wrench-release.apk' + extract: false + - 'reftests.tar.gz' + - 'mozdevice.tar.gz' + - 'six.tar.gz' + android-build: + - artifact: 'mozharness.zip' + dest: 'mozharness' + run: + using: run-task + checkout: false + run-as-root: true + command: >- + export WRENCH_APK=$MOZ_FETCHES_DIR/wrench-release.apk && + export WRENCH_REFTESTS=$MOZ_FETCHES_DIR/reftests && + export MOZHARNESS_PATH=$MOZ_FETCHES_DIR/mozharness && + python3 ${MOZHARNESS_PATH}/scripts/${MOZHARNESS_SCRIPT} --config-file ${MOZHARNESS_PATH}/configs/${MOZHARNESS_CONFIG} + treeherder: + platform: android-hw-a51-11-0-arm7/opt + symbol: WR(wrench) + when: + files-changed: + - 'gfx/wr/**' + - 'testing/mozharness/scripts/android_*.py' + - 'testing/mozharness/configs/android/*.py' + - 'testing/mozbase/mozdevice/**' |