diff options
Diffstat (limited to 'taskcluster/ci')
213 files changed, 26219 insertions, 0 deletions
diff --git a/taskcluster/ci/addon/kind.yml b/taskcluster/ci/addon/kind.yml new file mode 100644 index 0000000000..1d47f88c6e --- /dev/null +++ b/taskcluster/ci/addon/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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +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 + worker: + docker-image: {in-tree: debian8-amd64-build} + 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/artifact-build/kind.yml b/taskcluster/ci/artifact-build/kind.yml new file mode 100644 index 0000000000..ebf5bb813a --- /dev/null +++ b/taskcluster/ci/artifact-build/kind.yml @@ -0,0 +1,50 @@ +# 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: taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + +transforms: + - taskgraph.transforms.build_attrs:transforms + - taskgraph.transforms.build_lints:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +jobs: + linux64-artifact/opt: + description: "Linux64 Opt Artifact Build" + index: + product: firefox + job-name: linux64-artifact-opt + treeherder: + platform: linux64/opt + kind: build + symbol: AB + tier: 2 + run-on-projects: ['mozilla-central'] + worker-type: b-linux + worker: + max-run-time: 3600 + env: + PERFHERDER_EXTRA_OPTIONS: artifact + MOZ_ARTIFACT_TASK: {task-reference: '<linux64-opt>'} + USE_ARTIFACT: '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 + need-xvfb: true + keep-artifacts: false + dependencies: + linux64-opt: build-linux64/opt + fetches: + toolchain: + - linux64-node diff --git a/taskcluster/ci/balrog/kind.yml b/taskcluster/ci/balrog/kind.yml new file mode 100644 index 0000000000..4ab9a24659 --- /dev/null +++ b/taskcluster/ci/balrog/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.balrog_submit:transforms + - taskgraph.transforms.scriptworker:add_balrog_scopes + - taskgraph.transforms.task:transforms + +kind-dependencies: + - beetmover-repackage + +only-for-attributes: + - nightly + - shippable + +not-for-build-platforms: + - android-api-16-shippable/opt + - android-x86_64-shippable/opt + - android-x86-shippable/opt + - android-aarch64-shippable/opt + +job-template: + update-no-wnp: + by-release-type: + nightly.*: false + default: true diff --git a/taskcluster/ci/beetmover-checksums/kind.yml b/taskcluster/ci/beetmover-checksums/kind.yml new file mode 100644 index 0000000000..a315cf4161 --- /dev/null +++ b/taskcluster/ci/beetmover-checksums/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.beetmover_checksums:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - beetmover-repackage + +only-for-attributes: + - nightly + - shippable + +job-template: + shipping-phase: promote + attributes: + artifact_prefix: public + artifact_map: + by-release-type: + beta|release.*|esr.*: taskcluster/taskgraph/manifests/firefox_candidates_checksums.yml + default: taskcluster/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..97c2fd3f2e --- /dev/null +++ b/taskcluster/ci/beetmover-geckoview/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.beetmover_geckoview:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - build-signing + +only-for-attributes: + - nightly + - shippable + +not-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 + +job-template: + attributes: + artifact_map: taskcluster/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. + # As of December 2019, we have automated betas shipped without being + # blocked on QA, hence we can upload geckoview as part of the + # `push` phase of the release graphs. + # So we want beetmover to act only when the release is greenlit. That + # is to say: + # 1. (to be changed soon to be as part of the nightly graph) right after nightly builds on mozilla-central + # 2. as part of Firefox push graphs on both mozilla-beta and mozilla-release + # 3. as part of ship-rc graphs on Firefox RC + # 4. 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 and 3 is handled in target_tasks directly because it's mixing and + # matching 2 different shipping-products + mozilla-release: build + default: push + 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..fe82db8c23 --- /dev/null +++ b/taskcluster/ci/beetmover-repackage/kind.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/. +--- +loader: taskgraph.loader.multi_dep:loader + +group-by: single-locale + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.beetmover_repackage_l10n:transforms + - taskgraph.transforms.beetmover_repackage:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - build + - build-signing + - repackage + - repackage-signing + - shippable-l10n + - shippable-l10n-signing + - repackage-l10n + - repackage-signing-l10n + - partials + - partials-signing + - repackage-signing-msi + - mar-signing + - mar-signing-l10n + +primary-dependency: + - repackage + - 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 + - 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 + +job-template: + shipping-phase: promote + attributes: + artifact_map: + by-release-type: + beta|release.*|esr.*: taskcluster/taskgraph/manifests/firefox_candidates.yml + default: taskcluster/taskgraph/manifests/firefox_nightly.yml diff --git a/taskcluster/ci/beetmover-snap/kind.yml b/taskcluster/ci/beetmover-snap/kind.yml new file mode 100644 index 0000000000..03706d60f7 --- /dev/null +++ b/taskcluster/ci/beetmover-snap/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.beetmover:transforms + - taskgraph.transforms.beetmover_snap:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - release-snap-repackage # snap builds builds aren't signed + +job-template: + attributes: + artifact_map: taskcluster/taskgraph/manifests/firefox_snap.yml + shipping-phase: promote diff --git a/taskcluster/ci/beetmover-source/kind.yml b/taskcluster/ci/beetmover-source/kind.yml new file mode 100644 index 0000000000..c174b8dde6 --- /dev/null +++ b/taskcluster/ci/beetmover-source/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.beetmover:transforms + - taskgraph.transforms.beetmover_source:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - release-source-signing + +job-template: + shipping-phase: promote + attributes: + artifact_map: taskcluster/taskgraph/manifests/source_files.yml diff --git a/taskcluster/ci/bouncer-locations/kind.yml b/taskcluster/ci/bouncer-locations/kind.yml new file mode 100644 index 0000000000..a3e32bc555 --- /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: taskgraph.loader.transform:loader + +kind-dependencies: + - post-beetmover-dummy + +transforms: + - taskgraph.transforms.bouncer_locations:transforms + - taskgraph.transforms.release:run_on_releases + - taskgraph.transforms.release_deps:transforms + - 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..6434aef86d --- /dev/null +++ b/taskcluster/ci/build-fat-aar/kind.yml @@ -0,0 +1,110 @@ +# 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: taskgraph.loader.transform:loader + +kind-dependencies: + - build + - toolchain + +transforms: + - taskgraph.transforms.build:transforms + - taskgraph.transforms.build_attrs:transforms + - taskgraph.transforms.build_lints:transforms + - taskgraph.transforms.build_fat_aar:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +job-defaults: + attributes: + artifact_map: taskcluster/taskgraph/manifests/fennec_geckoview.yml + index: + product: mobile + worker-type: b-linux + 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" + artifacts: + - name: public/build/maven + path: /builds/worker/workspace/obj-build/gradle/build/mobile/android/geckoview/maven/ + type: directory + - 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_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 + run: + using: mozharness + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + mozconfig-variant: null + tooltool-downloads: internal + custom-build-variant-cfg: api-16 + # Note: These settings are only honored by nightly (i.e. shipping) builds + update-channel: + by-release-type: + nightly: nightly + nightly-oak: nightly-oak + beta: + by-shipping-product: + devedition: aurora + default: beta + release.*: release + esr.*: esr + default: + by-project: + try: nightly-try + default: null + fetches: + toolchain: + - android-gradle-dependencies + - android-ndk-linux + - android-sdk-linux + - linux64-clang + - linux64-rust-android + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-nasm + - linux64-node + +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 + shipping-phase: build + shipping-product: fennec + index: + job-name: android-geckoview-fat-aar-opt + type: shippable-with-multi-l10n + treeherder: + platform: android-4-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-api-16-shippable: build-android-api-16-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 + optimization: + skip-unless-backstop: null diff --git a/taskcluster/ci/build-notarization-part-1/kind.yml b/taskcluster/ci/build-notarization-part-1/kind.yml new file mode 100644 index 0000000000..e0f4a75fe1 --- /dev/null +++ b/taskcluster/ci/build-notarization-part-1/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.build_signing:transforms + - taskgraph.transforms.signing:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - build + +only-for-attributes: + - shippable + - nightly + +only-for-build-platforms: + - macosx64-shippable/opt + - macosx64-devedition/opt + +job-template: + treeherder: + symbol: BN + enable-signing-routes: false diff --git a/taskcluster/ci/build-notarization-poller/kind.yml b/taskcluster/ci/build-notarization-poller/kind.yml new file mode 100644 index 0000000000..db0013fa0e --- /dev/null +++ b/taskcluster/ci/build-notarization-poller/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.mac_notarization_poller:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - build-notarization-part-1 + +job-template: + treeherder: + symbol: BN-poll + description-suffix: 'Mac Notarization Poller' + worker: + implementation: notarization-poller diff --git a/taskcluster/ci/build-signing/kind.yml b/taskcluster/ci/build-signing/kind.yml new file mode 100644 index 0000000000..5057997da6 --- /dev/null +++ b/taskcluster/ci/build-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: taskgraph.loader.multi_dep:loader + +group-by: platform + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.upstream_artifact_task:transforms + - taskgraph.transforms.build_signing:transforms + - taskgraph.transforms.signing:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - build + - build-fat-aar + - build-notarization-part-1 + - build-notarization-poller + +primary-dependency: + - build + - build-fat-aar + +only-for-attributes: + - nightly + - shippable + - enable-build-signing diff --git a/taskcluster/ci/build/android-stuff.yml b/taskcluster/ci/build/android-stuff.yml new file mode 100644 index 0000000000..e1d2acd91e --- /dev/null +++ b/taskcluster/ci/build/android-stuff.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: + 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-0-armv7-api16/opt + kind: build + tier: 2 + symbol: A(gv-docs) + run-on-projects: [mozilla-central] + worker-type: b-linux + 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/gradle/build/mobile/android/geckoview/libs/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-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..35e662e315 --- /dev/null +++ b/taskcluster/ci/build/android.yml @@ -0,0 +1,568 @@ +# 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/taskgraph/manifests/fennec_geckoview.yml + 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/build/mobile/android/geckoview/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_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-gradle-dependencies + - android-ndk-linux + - android-sdk-linux + - linux64-rust-android + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-nasm + - linux64-node + +android-api-16/debug: + description: "Android 4.0 api-16+ Debug" + index: + job-name: android-api-16-debug + attributes: + enable-full-crashsymbols: true + treeherder: + platform: android-4-0-armv7-api16/debug + symbol: B + worker-type: b-linux + 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: api-16-debug + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + +android-x86/opt: + description: "Android 4.2 x86 Opt" + index: + job-name: android-x86-opt + attributes: + enable-full-crashsymbols: true + treeherder: + platform: android-4-2-x86/opt + symbol: B + run-on-projects: ['integration'] + worker-type: b-linux + 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: x86 + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + +android-x86-fuzzing/debug: + description: "Android x86 Fuzzing Debug" + index: + job-name: android-x86-fuzzing-debug + treeherder: + platform: android-4-2-x86/debug + symbol: Bf + worker-type: b-linux + 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: x86-fuzzing-debug + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + optimization: + skip-unless-expanded: null + +android-x86-shippable/opt: + description: "Android 4.2 x86 Shippable" + 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-4-2-x86-shippable/opt + symbol: B + run-on-projects: ['release'] + worker-type: b-linux + 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-api-16/opt: + description: "Android 4.0 api-16+ Opt" + index: + job-name: android-api-16-opt + attributes: + enable-full-crashsymbols: true + treeherder: + platform: android-4-0-armv7-api16/opt + symbol: B + run-on-projects: ['integration'] + worker-type: b-linux + 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: api-16 + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + +android-api-16-shippable/opt: + description: "Android 4.0 api-16+ Shippable" + use-pgo: true + attributes: + enable-full-crashsymbols: true + shippable: true + shipping-phase: build + shipping-product: fennec + index: + job-name: android-api-16-opt + type: android-shippable-with-multi-l10n + treeherder: + platform: android-4-0-armv7-api16-shippable/opt + symbol: Bpgo(B) + run-on-projects: ['release'] + worker-type: b-linux + 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: api-16 + fetches: + toolchain: + - linux64-clang + +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 + 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-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 + 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-aarch64-shippable/opt: + description: "Android 5.0 AArch64 Shippable" + use-pgo: android-api-16-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 + 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-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 + 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-x86_64-shippable/opt: + description: "Android 5.0 x86-64 Shippable" + 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 + 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-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 + 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-api-16-gcp/debug: + description: "Android 4.0 api-16+ Debug - built on GCP" + index: + job-name: android-api-16-gcp-debug + attributes: + enable-full-crashsymbols: true + treeherder: + platform: android-4-0-armv7-api16/debug + symbol: Bg + tier: 3 + worker-type: b-linux-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest" + PERFHERDER_EXTRA_OPTIONS: gcp + run: + actions: [get-secrets, build] + config: ["builds/releng_base_android_64_builds.py"] + custom-build-variant-cfg: api-16-debug + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + optimization: + skip-unless-backstop: null + + +android-x86-gcp/opt: + description: "Android 4.2 x86 Opt - built on GCP" + index: + job-name: android-x86-gcp-opt + attributes: + enable-full-crashsymbols: true + treeherder: + platform: android-4-2-x86/opt + symbol: Bg + tier: 3 + worker-type: b-linux-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest" + PERFHERDER_EXTRA_OPTIONS: gcp + 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 + optimization: + skip-unless-backstop: null + +android-api-16-gcp/opt: + description: "Android 4.0 api-16+ Opt - built on GCP" + index: + job-name: android-api-16-gcp-opt + attributes: + enable-full-crashsymbols: true + treeherder: + platform: android-4-0-armv7-api16/opt + symbol: Bg + tier: 3 + worker-type: b-linux-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest" + PERFHERDER_EXTRA_OPTIONS: gcp + run: + actions: [get-secrets, build] + config: ["builds/releng_base_android_64_builds.py"] + custom-build-variant-cfg: api-16 + use-sccache: true + fetches: + toolchain: + - linux64-clang + - linux64-sccache + optimization: + skip-unless-backstop: null + +android-aarch64-gcp/opt: + description: "Android 5.0 AArch64 Opt - built on GCP" + index: + job-name: android-aarch64-gcp-opt + attributes: + enable-full-crashsymbols: true + treeherder: + platform: android-5-0-aarch64/opt + symbol: Bg + tier: 3 + worker-type: b-linux-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest" + PERFHERDER_EXTRA_OPTIONS: gcp + 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 + optimization: + skip-unless-backstop: null + +android-aarch64-gcp/debug: + description: "Android 5.0 AArch64 Debug - built on GCP" + index: + job-name: android-aarch64-gcp-debug + attributes: + enable-full-crashsymbols: true + treeherder: + platform: android-5-0-aarch64/debug + symbol: Bg + tier: 3 + worker-type: b-linux-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android/releng.manifest" + PERFHERDER_EXTRA_OPTIONS: gcp + 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 + optimization: + skip-unless-backstop: null + +android-x86_64-gcp/opt: + description: "Android 5.0 x86-64 Opt - built on GCP" + index: + job-name: android-x86_64-gcp-opt + attributes: + enable-full-crashsymbols: true + treeherder: + platform: android-5-0-x86_64/opt + symbol: Bg + tier: 3 + worker-type: b-linux-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest" + PERFHERDER_EXTRA_OPTIONS: gcp + 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 + optimization: + skip-unless-backstop: null + +android-x86_64-gcp/debug: + description: "Android 5.0 x86-64 Debug - built on GCP" + index: + job-name: android-x86_64-gcp-debug + attributes: + enable-full-crashsymbols: true + treeherder: + platform: android-5-0-x86_64/debug + symbol: Bg + tier: 3 + worker-type: b-linux-gcp + worker: + env: + TOOLTOOL_MANIFEST: "mobile/android/config/tooltool-manifests/android-x86/releng.manifest" + PERFHERDER_EXTRA_OPTIONS: gcp + run: + actions: [get-secrets, build] + config: ["builds/releng_base_android_64_builds.py"] + custom-build-variant-cfg: x86_64-debug + fetches: + toolchain: + - linux64-clang + optimization: + skip-unless-backstop: null + +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 + 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: x86_64-fuzzing-asan + use-sccache: true + fetches: + toolchain: + - linux64-clang-android-cross + - linux64-sccache + optimization: + skip-unless-expanded: null diff --git a/taskcluster/ci/build/kind.yml b/taskcluster/ci/build/kind.yml new file mode 100644 index 0000000000..71baa0da79 --- /dev/null +++ b/taskcluster/ci/build/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: taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + - fetch + - generate-profile + +transforms: + - taskgraph.transforms.build:transforms + - taskgraph.transforms.build_attrs:transforms + - taskgraph.transforms.build_lints:transforms + - taskgraph.transforms.release_notifications:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +jobs-from: + - android.yml + - android-stuff.yml + - linux.yml + - linux-base-toolchains.yml + - macosx.yml + - macosx-native.yml + - windows.yml + - windows-mingw.yml + +job-defaults: + 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: nightly + nightly-oak: nightly-oak + beta: + by-shipping-product: + devedition: aurora + default: beta + release.*: release + esr.*: esr + default: + by-project: + try: nightly-try + 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.*: firefox-mozilla-central + 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.*: firefox-mozilla-central + 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..0e315f778e --- /dev/null +++ b/taskcluster/ci/build/linux-base-toolchains.yml @@ -0,0 +1,171 @@ +# 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. +--- +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-type: b-linux + worker: + docker-image: {in-tree: debian8-amd64-build-base} + max-run-time: 7200 + env: + MOZ_LOW_PARALLELISM_BUILD: '1' + 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 + need-xvfb: true + use-sccache: true + fetches: + toolchain: + - linux64-clang-5.0 + - linux64-gcc-7 + - linux64-rust-1.47 + - linux64-cbindgen + - linux64-dump-syms + - linux64-sccache + - linux64-nasm-2.14.02 + - linux64-node + +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-type: b-linux + worker: + docker-image: {in-tree: debian8-amd64-build-base} + max-run-time: 7200 + env: + MOZ_LOW_PARALLELISM_BUILD: '1' + 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 + need-xvfb: true + use-sccache: true + fetches: + toolchain: + - linux64-clang-5.0 + - linux64-gcc-7 + - linux64-rust-1.47 + - linux64-cbindgen + - linux64-dump-syms + - linux64-sccache + - linux64-nasm-2.14.02 + - linux64-node + # `fix-stacks` is needed because xpcshell self tests run as part of + # the build step. Once bug 1614626 moves them to the xpcshell task, + # this dependency can be removed. + - linux64-fix-stacks + +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-type: b-linux + worker: + docker-image: {in-tree: debian8-amd64-build-base} + 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 + need-xvfb: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang-5.0 + - linux64-rust-1.47 + - linux64-cbindgen + - linux64-dump-syms + - linux64-nasm-2.14.02 + - linux64-node + +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-type: b-linux + worker: + docker-image: {in-tree: debian8-amd64-build-base} + 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 + need-xvfb: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang-5.0 + - linux64-rust-1.47 + - linux64-cbindgen + - linux64-dump-syms + - linux64-nasm-2.14.02 + - linux64-node + # `fix-stacks` is needed because xpcshell self tests run as part of + # the build step. Once bug 1614626 moves them to the xpcshell task, + # this dependency can be removed. + - linux64-fix-stacks diff --git a/taskcluster/ci/build/linux.yml b/taskcluster/ci/build/linux.yml new file mode 100644 index 0000000000..380c2a1847 --- /dev/null +++ b/taskcluster/ci/build/linux.yml @@ -0,0 +1,1564 @@ +# 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/. +--- +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-type: b-linux + 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_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + tooltool-downloads: public + need-xvfb: true + run-on-projects: ['integration'] + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + +linux64-plain/opt: + description: "Linux64 Opt Plain" + index: + product: firefox + job-name: linux64-plain-opt + treeherder: + platform: linux64/opt + symbol: Bp + tier: 2 + worker-type: b-linux + worker: + docker-image: {in-tree: debian10-amd64-build} + 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-binutils + - linux64-clang + - linux64-rust + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-dump-syms + 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-type: b-linux + worker: + max-run-time: 5400 + env: + MOZ_LOW_PARALLELISM_BUILD: '1' + 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 + need-xvfb: true + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-cbindgen + - linux64-dump-syms + - linux64-llvm-symbolizer + - linux64-sccache + - linux64-rust + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + # `fix-stacks` is needed because xpcshell self tests run as part of + # the build step. Once bug 1614626 moves them to the xpcshell task, + # this dependency can be removed. + - linux64-fix-stacks + 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-type: b-linux + 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_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: debug + mozconfig-variant: debug + tooltool-downloads: public + need-xvfb: true + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-cbindgen + - linux64-dump-syms + - linux64-sccache + - linux64-rust + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + # `fix-stacks` is needed because xpcshell self tests run as part of + # the build step. Once bug 1614626 moves them to the xpcshell task, + # this dependency can be removed. + - linux64-fix-stacks + +linux64/codeql-cpp: + description: Builds a C++ codeql database + index: + job-name: linux64-codeql-cpp + product: firefox + treeherder: + platform: codeql/all + symbol: linux64-cpp + tier: 2 + kind: other + shipping-phase: ship + shipping-product: firefox + worker-type: b-linux-xlarge + expires-after: 4 days + worker: + env: + PERFHERDER_EXTRA_OPTIONS: cpp + max-run-time: 86400 + artifacts: + - type: file + name: public/codeql/codeql-db-cpp.tar.xz + path: /builds/worker/codeql-db-cpp.tar.xz + 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" + job-script: taskcluster/scripts/misc/generate-codeql-db-cpp.sh + secrets: false + custom-build-variant-cfg: debug + mozconfig-variant: debug + tooltool-downloads: public + need-xvfb: true + run-on-projects: [] + fetches: + fetch: + - codeql-2.0.3 + toolchain: + - linux64-binutils + - linux64-clang + - linux64-cbindgen + - linux64-dump-syms + - linux64-rust + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + # `fix-stacks` is needed because xpcshell self tests run as part of + # the build step. Once bug 1614626 moves them to the xpcshell task, + # this dependency can be removed. + - linux64-fix-stacks + notifications: + subject: '{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]} linux64 codeql-cpp status' + message: '{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]} linux64 codeql-cpp status' + emails: + by-project: + mozilla-release: ["tom@mozilla.com", "freddy@mozilla.com"] + try: ["{config[params][owner]}"] + default: [] + optimization: null + + +linux64-plain/debug: + description: "Linux64 Debug Plain" + index: + product: firefox + job-name: linux64-plain-debug + treeherder: + platform: linux64/debug + symbol: Bp + tier: 2 + worker-type: b-linux + worker: + docker-image: {in-tree: debian10-amd64-build} + 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-binutils + - linux64-clang + - linux64-rust + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-dump-syms + 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 + 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_64_builds.py + - taskcluster_nightly.py + extra-config: + stage_platform: 'linux64-devedition' + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + tooltool-downloads: public + need-xvfb: true + mozconfig-variant: devedition + run-on-projects: ['mozilla-beta'] + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + +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-type: b-linux + worker: + docker-image: {in-tree: debian8-i386-build} + max-run-time: 7200 + 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 + need-xvfb: true + run-on-projects: ['mozilla-beta', 'mozilla-release', 'mozilla-esr78'] + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + +linux/debug: + description: "Linux32 Debug" + index: + product: firefox + job-name: linux-debug + attributes: + enable-full-crashsymbols: true + treeherder: + platform: linux32/debug + symbol: B + worker-type: b-linux + worker: + docker-image: {in-tree: debian8-i386-build} + 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: debug + mozconfig-variant: debug + tooltool-downloads: public + need-xvfb: true + run-on-projects: ['release'] + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + # `fix-stacks` is needed because xpcshell self tests run as part of + # the build step. Once bug 1614626 moves them to the xpcshell task, + # this dependency can be removed. + - linux64-fix-stacks + +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-type: b-linux + worker: + docker-image: {in-tree: debian8-i386-build} + 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-binutils + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-dump-syms + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + 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-type: b-linux + worker: + docker-image: {in-tree: debian8-i386-build} + 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-binutils + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-dump-syms + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + 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 + worker: + docker-image: {in-tree: debian8-i386-build} + 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 + need-xvfb: true + mozconfig-variant: devedition + run-on-projects: ['mozilla-beta'] + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + +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 + worker: + docker-image: {in-tree: debian8-i386-build} + 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 + need-xvfb: true + run-on-projects: ['release'] + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + +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 + worker: + docker-image: {in-tree: debian8-i386-build} + 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 + need-xvfb: true + # 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-binutils + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + +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 + 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 + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + tooltool-downloads: public + need-xvfb: true + # 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-binutils + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + +linux64-asan/opt: + description: "Linux64 Opt ASAN" + index: + product: firefox + job-name: linux64-asan-opt + treeherder: + platform: linux64/asan + symbol: Bo + worker-type: b-linux + worker: + env: + PERFHERDER_EXTRA_OPTIONS: "opt asan" + ASAN_OPTIONS: "detect_leaks=0" + 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 + need-xvfb: true + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-rust-nightly + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-llvm-symbolizer + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + +linux64-tsan/opt: + description: "Linux64 Opt TSAN" + index: + product: firefox + job-name: linux64-tsan-opt + treeherder: + platform: linux64/tsan + symbol: Bo + worker-type: b-linux + 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 + need-xvfb: true + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-rust-nightly + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-llvm-symbolizer + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + +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-type: b-linux + 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 + need-xvfb: true + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-rust-nightly + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-llvm-symbolizer + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + 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-type: b-linux + worker: + env: + PERFHERDER_EXTRA_OPTIONS: asan-fuzzing + ASAN_OPTIONS: "detect_leaks=0" + 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 + need-xvfb: true + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-rust-nightly + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-llvm-symbolizer + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + 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-type: b-linux + worker: + env: + PERFHERDER_EXTRA_OPTIONS: asan-fuzzing-ccov + ASAN_OPTIONS: "detect_leaks=0" + 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 + need-xvfb: true + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-llvm-symbolizer + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + +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-type: b-linux + worker: + max-run-time: 5400 + env: + MOZ_LOW_PARALLELISM_BUILD: '1' + PERFHERDER_EXTRA_OPTIONS: fuzzing-ccov + FORCE_GCC: '1' + ASAN_OPTIONS: "detect_leaks=0" + 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 + need-xvfb: true + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-gcc-7 + - linux64-cbindgen + - linux64-dump-syms + - linux64-rust + - linux64-rust-size + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + 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 + worker: + env: + PERFHERDER_EXTRA_OPTIONS: asan-reporter + ASAN_OPTIONS: "detect_leaks=0" + 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 + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: asan-reporter-tc + mozconfig-variant: nightly-asan-reporter + tooltool-downloads: public + need-xvfb: true + mar-channel-id: + firefox-mozilla-central-asan + accepted-mar-channel-ids: + firefox-mozilla-central-asan + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-llvm-symbolizer + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + +linux64-asan/debug: + description: "Linux64 Debug ASAN" + index: + product: firefox + job-name: linux64-asan-debug + treeherder: + platform: linux64/asan + symbol: Bd + worker-type: b-linux + worker: + env: + PERFHERDER_EXTRA_OPTIONS: "debug asan" + ASAN_OPTIONS: "detect_leaks=0" + 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 + need-xvfb: true + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-rust-nightly + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-llvm-symbolizer + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + # `fix-stacks` is needed because xpcshell self tests run as part of + # the build step. Once bug 1614626 moves them to the xpcshell task, + # this dependency can be removed. + - linux64-fix-stacks + 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 + 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_64_builds.py + - taskcluster_nightly.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + tooltool-downloads: public + need-xvfb: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + +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-type: b-linux + 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 + need-xvfb: true + run-on-projects: ['mozilla-central'] + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + # `fix-stacks` is needed because xpcshell self tests run as part of + # the build step. Once bug 1614626 moves them to the xpcshell task, + # this dependency can be removed. + - linux64-fix-stacks + +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-type: b-linux + 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-binutils + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-dump-syms + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + 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-type: b-linux + 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-binutils + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-dump-syms + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + 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-type: b-linux + 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: + MOZ_LOW_PARALLELISM_BUILD: '1' + FORCE_GCC: '1' + 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 + need-xvfb: true + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-rust + - linux64-gcc-7 + - linux64-cbindgen + - linux64-dump-syms + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-grcov + - linux64-lucetc + - wasi-sysroot + +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-type: b-linux + 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 + need-xvfb: true + run-on-projects: ['mozilla-beta', 'mozilla-release'] + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + +linux64-aarch64/opt: + description: "Linux64 aarch64 Opt" + index: + product: firefox + job-name: linux64-aarch64-opt + attributes: + enable-full-crashsymbols: true + treeherder: + platform: linux64-aarch64/opt + symbol: B + tier: 2 + worker-type: b-linux + worker: + docker-image: {in-tree: debian10-arm64-build} + 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: + mozconfig_platform: linux64-aarch64 + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + mozconfig-variant: opt + tooltool-downloads: public + need-xvfb: true + run-on-projects: ['integration'] + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang-aarch64-cross + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-sccache + - linux64-node + - linux64-lucetc + - wasi-sysroot + optimization: + skip-unless-expanded: null + +linux-gcp/debug: + description: "Linux32 Debug - built on GCP" + index: + product: firefox + job-name: linux-gcp-debug + attributes: + enable-full-crashsymbols: true + treeherder: + platform: linux32/debug + symbol: Bg + tier: 3 + worker-type: b-linux-gcp + worker: + docker-image: {in-tree: debian8-i386-build} + max-run-time: 5400 + env: + PERFHERDER_EXTRA_OPTIONS: gcp + 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 + need-xvfb: true + run-on-projects: ['release'] + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + # `fix-stacks` is needed because xpcshell self tests run as part of + # the build step. Once bug 1614626 moves them to the xpcshell task, + # this dependency can be removed. + - linux64-fix-stacks + optimization: + skip-unless-backstop: null + +linux-gcp/opt: + description: "Linux32 Opt - built on GCP" + index: + product: firefox + job-name: linux-gcp-opt + attributes: + enable-full-crashsymbols: true + treeherder: + platform: linux32/opt + symbol: Bg + tier: 3 + worker-type: b-linux-gcp + worker: + docker-image: {in-tree: debian8-i386-build} + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: gcp + 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 + need-xvfb: true + run-on-projects: ['release'] + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + +linux64-gcp/debug: + description: "Linux64 Debug - built on GCP" + index: + product: firefox + job-name: linux64-gcp-debug + attributes: + enable-full-crashsymbols: true + treeherder: + platform: linux64/debug + symbol: Bg + tier: 3 + worker-type: b-linux-gcp + worker: + max-run-time: 5400 + env: + PERFHERDER_EXTRA_OPTIONS: gcp + 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 + need-xvfb: true + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-cbindgen + - linux64-dump-syms + - linux64-sccache + - linux64-rust + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + # `fix-stacks` is needed because xpcshell self tests run as part of + # the build step. Once bug 1614626 moves them to the xpcshell task, + # this dependency can be removed. + - linux64-fix-stacks + optimization: + skip-unless-backstop: null + +linux64-gcp/opt: + description: "Linux64 Opt - built on GCP" + index: + product: firefox + job-name: linux64-gcp-opt + attributes: + enable-full-crashsymbols: true + treeherder: + platform: linux64/opt + symbol: Bg + tier: 3 + worker-type: b-linux-gcp + worker: + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: gcp + 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 + need-xvfb: true + run-on-projects: ['mozilla-central'] + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot diff --git a/taskcluster/ci/build/macosx-native.yml b/taskcluster/ci/build/macosx-native.yml new file mode 100644 index 0000000000..361f9cf5e0 --- /dev/null +++ b/taskcluster/ci/build/macosx-native.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: + 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: 2 + 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-cbindgen + - macosx64-nasm + - macosx64-node + - macosx64-rust + 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: 2 + 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-cbindgen + - macosx64-nasm + - macosx64-node + - macosx64-rust + optimization: + skip-unless-expanded: null diff --git a/taskcluster/ci/build/macosx.yml b/taskcluster/ci/build/macosx.yml new file mode 100644 index 0000000000..7e5e2c8933 --- /dev/null +++ b/taskcluster/ci/build/macosx.yml @@ -0,0 +1,698 @@ +# 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 + worker: + docker-image: {in-tree: debian10-amd64-build} + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-releng.manifest" + run: + using: mozharness + actions: [get-secrets, build] + secrets: true + script: "mozharness/scripts/fx_desktop_build.py" + tooltool-downloads: internal + fetches: + toolchain: + - linux64-binutils + - linux64-dump-syms + - linux64-hfsplus + - linux64-libdmg + - linux64-llvm-dsymutil + - linux64-rust-macos + - linux64-rust-size + - linux64-cbindgen + - linux64-nasm + - linux64-node + - linux64-lucetc + +macosx64/debug: + description: "MacOS X x64 Cross-compile" + index: + job-name: macosx64-debug + attributes: + 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-cctools-port + - linux64-clang-macosx-cross + - linux64-sccache + - wasi-sysroot + +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-cctools-port + - linux64-clang-macosx-cross + - linux64-sccache + - wasi-sysroot + +macosx64-asan-fuzzing/opt: + description: "MacOS X x64 Cross-compile Fuzzing ASAN" + index: + job-name: macosx64-fuzzing-asan-opt + treeherder: + platform: osx-cross/asan + symbol: Bof + worker: + max-run-time: 5400 + env: + 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-cctools-port + - linux64-clang-macosx-cross + - linux64-sccache + - macosx64-llvm-symbolizer + - wasi-sysroot + 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 + treeherder: + platform: osx-cross/debug + symbol: Bf + worker: + max-run-time: 5400 + env: + 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-cctools-port + - linux64-clang-macosx-cross + - linux64-sccache + - wasi-sysroot + 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 + 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-macosx-cross + - wasi-sysroot + +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 + 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: + TOOLTOOL_MANIFEST: "" + 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-macosx-cross + - macosx64-sdk-11.0 + +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.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-cctools-port + - linux64-clang-macosx-cross + - linux64-sccache + - wasi-sysroot + +macosx64-add-on-devel/opt: + description: "MacOS X x64 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: 3600 + 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-cctools-port + - linux64-clang-macosx-cross + - linux64-sccache + - wasi-sysroot + +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 + 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-macosx-cross + - wasi-sysroot + +macosx64-aarch64-shippable/opt: + description: "MacOS X aarch64 Cross-compile" + use-pgo: macosx64-shippable/opt + attributes: + enable-full-crashsymbols: true + skip-verify-test-packaging: 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: + TOOLTOOL_MANIFEST: "" + 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-macosx-cross + - macosx64-sdk-11.0 + +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.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: true + fetches: + toolchain: + - linux64-cctools-port + - linux64-clang-macosx-cross + - linux64-sccache + - wasi-sysroot + +macosx64-gcp/debug: + description: "MacOS X x64 Cross-compile - built on GCP" + index: + job-name: macosx64-gcp-debug + attributes: + enable-full-crashsymbols: true + treeherder: + platform: osx-cross/debug + symbol: Bg + tier: 3 + worker-type: b-linux-gcp + worker: + max-run-time: 3600 + env: + PERFHERDER_EXTRA_OPTIONS: gcp + 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-cctools-port + - linux64-clang-macosx-cross + - linux64-sccache + - wasi-sysroot + optimization: + skip-unless-backstop: null + +macosx64-gcp/opt: + description: "MacOS X x64 Cross-compile - built on GCP" + index: + job-name: macosx64-gcp-opt + attributes: + enable-full-crashsymbols: true + treeherder: + platform: osx-cross/opt + symbol: Bg + tier: 3 + worker-type: b-linux-gcp + worker: + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: gcp + run: + config: + - builds/releng_base_firefox.py + - builds/releng_base_mac_64_cross_builds.py + run-on-projects: ['mozilla-central'] + use-sccache: true + fetches: + toolchain: + - linux64-cctools-port + - linux64-clang-macosx-cross + - linux64-sccache + - wasi-sysroot diff --git a/taskcluster/ci/build/windows-mingw.yml b/taskcluster/ci/build/windows-mingw.yml new file mode 100644 index 0000000000..608c52eb3b --- /dev/null +++ b/taskcluster/ci/build/windows-mingw.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: + worker-type: b-linux + worker: + docker-image: {in-tree: mingw32-build} + max-run-time: 7200 + run: + using: mozharness + actions: [build] + script: mozharness/scripts/fx_desktop_build.py + need-xvfb: false + optimization: + skip-unless-expanded: null + +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-esr78'] + 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 + +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-esr78'] + 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 + +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-esr78'] + 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 + +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-esr78'] + 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 diff --git a/taskcluster/ci/build/windows.yml b/taskcluster/ci/build/windows.yml new file mode 100644 index 0000000000..630e31819f --- /dev/null +++ b/taskcluster/ci/build/windows.yml @@ -0,0 +1,1717 @@ +# 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 + tooltool-downloads: internal + fetches: + toolchain: + - win64-dump-syms + - win64-pdbstr + +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 + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 7200 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/releng.manifest" + 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 + env: + LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so" + LOWERCASE_DIRS: "/builds/worker/checkouts/gecko/vs2017_15.8.4" + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang-win-cross + - linux64-rust-cross + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-sccache + - linux64-dump-syms + - linux64-wine + - linux64-liblowercase + - linux64-winchecksec + fetch: + - nsis-3.01-win + - 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 + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 7200 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/releng.manifest" + 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 + env: + LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so" + LOWERCASE_DIRS: "/builds/worker/checkouts/gecko/vs2017_15.8.4" + run-on-projects: ['integration'] + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang-win-cross + - linux64-rust-cross + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-sccache + - linux64-dump-syms + - linux64-wine + - linux64-liblowercase + - linux64-winchecksec + fetch: + - nsis-3.01-win + - upx-3.95-win + +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 + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 7200 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest" + 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 + env: + LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so" + LOWERCASE_DIRS: "/builds/worker/checkouts/gecko/vs2017_15.8.4" + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang-win-cross + - linux64-rust-cross + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-sccache + - linux64-dump-syms + - linux64-wine + - linux64-liblowercase + - linux64-winchecksec + fetch: + - nsis-3.01-win + - 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 + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: fuzzing + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest" + 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 + env: + LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so" + LOWERCASE_DIRS: "/builds/worker/checkouts/gecko/vs2017_15.8.4" + mozconfig-variant: debug-fuzzing + run-on-projects: ['trunk'] + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang-win-cross + - linux64-rust-cross + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-sccache + - linux64-dump-syms + - linux64-wine + - linux64-liblowercase + - linux64-winchecksec + fetch: + - nsis-3.01-win + - 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: 2 + worker-type: b-win2012 + worker: + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: plain + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest" + 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-cl + - win64-rust + - win64-node + - win64-nasm + - win64-cbindgen + - win64-winchecksec + 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 + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 7200 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest" + 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 + env: + # Setting LD_PRELOAD at the worker level would set it during + # fetch-content, which can fail randomly when a tar/unzip subprocess + # of fetch-content starts while the library is being extracted by + # another. + LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so" + LOWERCASE_DIRS: "/builds/worker/checkouts/gecko/vs2017_15.8.4" + run-on-projects: ['integration'] + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang-win-cross + - linux64-rust-cross + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-sccache + - linux64-dump-syms + - linux64-wine + - linux64-liblowercase + - linux64-winchecksec + fetch: + - nsis-3.01-win + - 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: 2 + worker-type: b-win2012 + worker: + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: plain + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest" + 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-cl + - win64-rust + - win64-nasm + - win64-node + - win64-cbindgen + - win64-winchecksec + 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 + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 10800 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/releng.manifest" + 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 + env: + LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so" + LOWERCASE_DIRS: "/builds/worker/checkouts/gecko/vs2017_15.8.4" + fetches: + toolchain: + - linux64-binutils + - linux64-clang-win-cross + - linux64-rust-cross + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-dump-syms + - linux64-wine + - linux64-liblowercase + - linux64-winchecksec + fetch: + - nsis-3.01-win + - 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 + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 10800 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest" + 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 + env: + LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so" + LOWERCASE_DIRS: "/builds/worker/checkouts/gecko/vs2017_15.8.4" + fetches: + toolchain: + - linux64-binutils + - linux64-clang-win-cross + - linux64-rust-cross + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-dump-syms + - linux64-wine + - linux64-liblowercase + - linux64-winchecksec + fetch: + - nsis-3.01-win + - 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 + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 10800 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/releng.manifest" + 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 + env: + LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so" + LOWERCASE_DIRS: "/builds/worker/checkouts/gecko/vs2017_15.8.4" + mozconfig-variant: add-on-devel + run-on-projects: ['mozilla-beta', 'mozilla-release'] + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang-win-cross + - linux64-rust-cross + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-sccache + - linux64-dump-syms + - linux64-wine + - linux64-liblowercase + - linux64-winchecksec + fetch: + - nsis-3.01-win + - 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 + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 10800 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest" + 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 + env: + LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so" + LOWERCASE_DIRS: "/builds/worker/checkouts/gecko/vs2017_15.8.4" + mozconfig-variant: add-on-devel + run-on-projects: ['mozilla-beta', 'mozilla-release'] + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang-win-cross + - linux64-rust-cross + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-sccache + - linux64-dump-syms + - linux64-wine + - linux64-liblowercase + - linux64-winchecksec + fetch: + - nsis-3.01-win + - 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 + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 7200 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest" + 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 + env: + LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so" + LOWERCASE_DIRS: "/builds/worker/checkouts/gecko/vs2017_15.8.4" + run-on-projects: ['mozilla-central'] + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang-win-cross + - linux64-rust-cross + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-sccache + - linux64-dump-syms + - linux64-wine + - linux64-liblowercase + - linux64-winchecksec + fetch: + - nsis-3.01-win + - 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 + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 7200 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/releng.manifest" + 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 + env: + LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so" + LOWERCASE_DIRS: "/builds/worker/checkouts/gecko/vs2017_15.8.4" + run-on-projects: ['mozilla-central'] + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang-win-cross + - linux64-rust-cross + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-sccache + - linux64-dump-syms + - linux64-wine + - linux64-liblowercase + - linux64-winchecksec + fetch: + - nsis-3.01-win + - 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-win2012 + worker: + max-run-time: 5400 + env: + PERFHERDER_EXTRA_OPTIONS: rusttests + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/releng.manifest" + 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 + build_targets: ['pre-export', 'export', 'recurse_rusttests'] + disable_package_metrics: true + mozconfig-variant: rusttests + run-on-projects: ['mozilla-central'] + use-sccache: true + fetches: + toolchain: + - win64-clang-cl + - win64-rust + - win64-cbindgen + - win64-sccache + - win64-nasm + - win64-node + - win64-winchecksec + 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-win2012 + worker: + max-run-time: 5400 + env: + PERFHERDER_EXTRA_OPTIONS: rusttests + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/releng.manifest" + 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 + build_targets: ['pre-export', 'export', 'recurse_rusttests'] + disable_package_metrics: true + mozconfig-variant: rusttests-debug + run-on-projects: ['mozilla-central'] + use-sccache: true + fetches: + toolchain: + - win64-clang-cl + - win64-rust + - win64-cbindgen + - win64-sccache + - win64-nasm + - win64-node + - win64-winchecksec + 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-win2012 + worker: + max-run-time: 5400 + env: + PERFHERDER_EXTRA_OPTIONS: rusttests + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest" + 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'] + use-sccache: true + fetches: + toolchain: + - win64-clang-cl + - win64-rust + - win64-cbindgen + - win64-sccache + - win64-nasm + - win64-node + - win64-winchecksec + 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-win2012 + worker: + max-run-time: 5400 + env: + PERFHERDER_EXTRA_OPTIONS: rusttests + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest" + 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'] + use-sccache: true + fetches: + toolchain: + - win64-clang-cl + - win64-rust + - win64-cbindgen + - win64-sccache + - win64-nasm + - win64-node + - win64-winchecksec + 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-win2012 + worker: + artifacts: + - name: public/code-coverage-grcov.zip + path: workspace\obj-build\code-coverage-grcov.zip + type: file + max-run-time: 9000 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest" + 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: true + fetches: + toolchain: + - win64-clang-cl + - win64-rust + - win64-rust-size + - win64-cbindgen + - win64-grcov + - win64-sccache + - win64-nasm + - win64-node + - win64-winchecksec + +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 + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 7200 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest" + 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 + env: + LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so" + LOWERCASE_DIRS: "/builds/worker/checkouts/gecko/vs2017_15.8.4" + mozconfig-variant: debug-asan + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang-win-cross + - linux64-rust-cross + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-sccache + - linux64-dump-syms + - linux64-wine + - linux64-liblowercase + - linux64-winchecksec + - win64-llvm-symbolizer + fetch: + - nsis-3.01-win + - 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 + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 7200 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest" + 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 + env: + LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so" + LOWERCASE_DIRS: "/builds/worker/checkouts/gecko/vs2017_15.8.4" + mozconfig-variant: nightly-asan + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang-win-cross + - linux64-rust-cross + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-sccache + - linux64-dump-syms + - linux64-wine + - linux64-liblowercase + - linux64-winchecksec + - win64-llvm-symbolizer + fetch: + - nsis-3.01-win + - 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 + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 7200 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest" + 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 + env: + LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so" + LOWERCASE_DIRS: "/builds/worker/checkouts/gecko/vs2017_15.8.4" + 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-binutils + - linux64-clang-win-cross + - linux64-rust-cross + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-dump-syms + - linux64-wine + - linux64-liblowercase + - linux64-winchecksec + - win64-llvm-symbolizer + fetch: + - nsis-3.01-win + - 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 + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 7200 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest" + 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 + env: + LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so" + LOWERCASE_DIRS: "/builds/worker/checkouts/gecko/vs2017_15.8.4" + mozconfig-variant: nightly-fuzzing-asan + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang-win-cross + - linux64-rust-cross + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-sccache + - linux64-dump-syms + - linux64-wine + - linux64-liblowercase + - linux64-winchecksec + - win64-llvm-symbolizer + fetch: + - nsis-3.01-win + - 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 + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 10800 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/releng.manifest" + 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 + env: + LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so" + LOWERCASE_DIRS: "/builds/worker/checkouts/gecko/vs2017_15.8.4" + mozconfig-variant: devedition + run-on-projects: ['mozilla-beta'] + fetches: + toolchain: + - linux64-binutils + - linux64-clang-win-cross + - linux64-rust-cross + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-dump-syms + - linux64-wine + - linux64-liblowercase + - linux64-winchecksec + fetch: + - nsis-3.01-win + - 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 + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 10800 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest" + 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 + env: + LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so" + LOWERCASE_DIRS: "/builds/worker/checkouts/gecko/vs2017_15.8.4" + mozconfig-variant: devedition + run-on-projects: ['mozilla-beta'] + fetches: + toolchain: + - linux64-binutils + - linux64-clang-win-cross + - linux64-rust-cross + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-dump-syms + - linux64-wine + - linux64-liblowercase + - linux64-winchecksec + fetch: + - nsis-3.01-win + - 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 + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 7200 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/aarch64.manifest" + 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 + env: + LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so" + LOWERCASE_DIRS: "/builds/worker/checkouts/gecko/vs2017_15.9.6" + mozconfig-variant: debug + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang-win-cross + - linux64-rust-cross + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-sccache + - linux64-dump-syms + - linux64-wine + - linux64-liblowercase + - linux64-winchecksec + fetch: + - nsis-3.01-win + - 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 + # We need to package tests in order for the win64-aarch64-eme artifact + # build to fetch them, even though no tests run against this task + # directly. + skip-verify-test-packaging: true + treeherder: + platform: windows2012-aarch64/opt + symbol: B + tier: 1 + worker-type: b-linux + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 7200 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/aarch64.manifest" + PERFHERDER_EXTRA_OPTIONS: aarch64 + 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-aarch64 + mozconfig_platform: win64-aarch64 + env: + LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so" + LOWERCASE_DIRS: "/builds/worker/checkouts/gecko/vs2017_15.9.6" + run-on-projects: ['integration'] + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang-win-cross + - linux64-rust-cross + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-sccache + - linux64-dump-syms + - linux64-wine + - linux64-liblowercase + - linux64-winchecksec + fetch: + - nsis-3.01-win + - upx-3.95-win + optimization: + skip-unless-expanded: null + +win64-aarch64-eme/opt: + description: "AArch64 Win64 Opt w/ EME" + index: + product: firefox + job-name: win64-aarch64-eme-opt + treeherder: + platform: windows2012-aarch64/opt + symbol: Be + tier: 1 + worker-type: b-linux + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 7200 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/aarch64.manifest" + PERFHERDER_EXTRA_OPTIONS: aarch64-eme + MOZ_ARTIFACT_TASK: {task-reference: '<win64-aarch64-opt>'} + MOZ_ARTIFACT_TASK_WIN32_OPT: {task-reference: '<win32-opt>'} + USE_ARTIFACT: '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-aarch64 + mozconfig_platform: win64-aarch64 + dependencies: + win32-opt: build-win32/opt + win64-aarch64-opt: build-win64-aarch64/opt + fetches: + toolchain: + - linux64-node + - linux64-wine + fetch: + - nsis-3.01-win + - upx-3.95-win + optimization: + skip-unless-expanded: null + +win64-aarch64-shippable/opt: + description: "AArch64 Win64 Shippable" + index: + product: firefox + job-name: win64-aarch64-opt + type: shippable + attributes: + shippable: true + enable-full-crashsymbols: true + # Skip the test packaging check because we copy test packages from + # another build task rather than generating them in this task. + skip-verify-test-packaging: true + shipping-phase: build + shipping-product: firefox + treeherder: + platform: windows2012-aarch64-shippable/opt + symbol: B + tier: 1 + worker-type: b-linux + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 7200 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/aarch64.manifest" + PERFHERDER_EXTRA_OPTIONS: aarch64 + MOZ_ARTIFACT_TASK: {task-reference: '<win64-aarch64-opt>'} + MOZ_ARTIFACT_TASK_WIN32_OPT: {task-reference: '<win32-opt>'} + USE_ARTIFACT: '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 + dependencies: + win32-opt: build-win32-shippable/opt + win64-aarch64-opt: build-win64-aarch64-shippable-no-eme/opt + fetches: + # Abuse fetches to copy the generated-files, langpack, and test + # artifacts from the non-eme build directly to the artifacts directory + # of this build. + win64-aarch64-opt: + - artifact: target.test_packages.json + extract: false + dest: ../artifacts + - artifact: target.common.tests.tar.gz + extract: false + dest: ../artifacts + - artifact: target.cppunittest.tests.tar.gz + extract: false + dest: ../artifacts + - artifact: target.mochitest.tests.tar.gz + extract: false + dest: ../artifacts + - artifact: target.reftest.tests.tar.gz + extract: false + dest: ../artifacts + - artifact: target.talos.tests.tar.gz + extract: false + dest: ../artifacts + - artifact: target.raptor.tests.tar.gz + extract: false + dest: ../artifacts + - artifact: target.condprof.tests.tar.gz + extract: false + dest: ../artifacts + - artifact: target.awsy.tests.tar.gz + extract: false + dest: ../artifacts + - artifact: target.xpcshell.tests.tar.gz + extract: false + dest: ../artifacts + - artifact: target.web-platform.tests.tar.gz + extract: false + dest: ../artifacts + - artifact: target.updater-dep.tests.tar.gz + extract: false + dest: ../artifacts + - artifact: target.generated-files.tar.gz + extract: false + dest: ../artifacts + - artifact: target.langpack.xpi + extract: false + dest: ../artifacts + toolchain: + - linux64-node + - linux64-wine + fetch: + - nsis-3.01-win + - upx-3.95-win + optimization: + skip-unless-expanded: null + +win64-aarch64-shippable-no-eme/opt: + description: "AArch64 Win64 Shippable w/o EME" + use-pgo: win64-shippable/opt + index: + product: firefox + job-name: win64-aarch64-no-eme-opt + type: shippable + attributes: + enable-full-crashsymbols: true + # We need to package tests in order for the actual + # win64-aarch64-shippable/opt build to copy them from this task, even + # though no tests run against this task directly. + skip-verify-test-packaging: true + shipping-phase: build + shipping-product: firefox + treeherder: + platform: windows2012-aarch64/opt + symbol: Nn + tier: 1 + worker-type: b-linux + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 7200 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/aarch64.manifest" + PERFHERDER_EXTRA_OPTIONS: aarch64-no-eme + 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 + env: + LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so" + LOWERCASE_DIRS: "/builds/worker/checkouts/gecko/vs2017_15.9.6" + run-on-projects: ['all'] + fetches: + toolchain: + - linux64-binutils + - linux64-clang-win-cross + - linux64-rust-cross + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-dump-syms + - linux64-wine + - linux64-liblowercase + - linux64-winchecksec + fetch: + - nsis-3.01-win + - upx-3.95-win + optimization: + skip-unless-expanded: null + +win64-aarch64-devedition/opt: + description: "AArch64 Win64 Dev Edition (shippable)" + index: + product: devedition + job-name: win64-aarch64-opt + type: shippable + attributes: + shippable: true + enable-full-crashsymbols: true + # Skip the test packaging check because we copy test packages from + # another build task rather than generating them in this task. + skip-verify-test-packaging: true + shipping-phase: build + shipping-product: devedition + treeherder: + platform: windows2012-aarch64-devedition/opt + symbol: B + tier: 1 + worker-type: b-linux + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 7200 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/aarch64.manifest" + MOZ_ARTIFACT_TASK: {task-reference: '<win64-aarch64-opt>'} + MOZ_ARTIFACT_TASK_WIN32_OPT: {task-reference: '<win32-opt>'} + USE_ARTIFACT: '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-devedition + mozconfig_platform: win64-aarch64 + mozconfig-variant: devedition + run-on-projects: ['mozilla-beta'] + dependencies: + win32-opt: build-win32-devedition/opt + win64-aarch64-opt: build-win64-aarch64-devedition-no-eme/opt + fetches: + # Abuse fetches to copy the generated-files, langpack, and test + # artifacts from the non-eme build directly to the artifacts directory + # of this build. + win64-aarch64-opt: + - artifact: target.test_packages.json + extract: false + dest: ../artifacts + - artifact: target.common.tests.tar.gz + extract: false + dest: ../artifacts + - artifact: target.cppunittest.tests.tar.gz + extract: false + dest: ../artifacts + - artifact: target.mochitest.tests.tar.gz + extract: false + dest: ../artifacts + - artifact: target.reftest.tests.tar.gz + extract: false + dest: ../artifacts + - artifact: target.talos.tests.tar.gz + extract: false + dest: ../artifacts + - artifact: target.raptor.tests.tar.gz + extract: false + dest: ../artifacts + - artifact: target.condprof.tests.tar.gz + extract: false + dest: ../artifacts + - artifact: target.awsy.tests.tar.gz + extract: false + dest: ../artifacts + - artifact: target.xpcshell.tests.tar.gz + extract: false + dest: ../artifacts + - artifact: target.web-platform.tests.tar.gz + extract: false + dest: ../artifacts + - artifact: target.updater-dep.tests.tar.gz + extract: false + dest: ../artifacts + - artifact: target.generated-files.tar.gz + extract: false + dest: ../artifacts + - artifact: target.langpack.xpi + extract: false + dest: ../artifacts + toolchain: + - linux64-node + - linux64-wine + fetch: + - nsis-3.01-win + - upx-3.95-win + +win64-aarch64-devedition-no-eme/opt: + description: "AArch64 Win64 Dev Edition w/o EME" + use-pgo: win64-shippable/opt + index: + product: devedition + job-name: win64-aarch64-no-eme-opt + type: shippable + attributes: + enable-full-crashsymbols: true + # We need to package tests in order for the actual + # win64-aarch64-devedition/opt build to copy them from this task, even + # though no tests run against this task directly. + skip-verify-test-packaging: true + shipping-phase: build + shipping-product: devedition + treeherder: + platform: windows2012-aarch64-devedition/opt + symbol: Nn + tier: 1 + worker-type: b-linux + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 7200 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/aarch64.manifest" + PERFHERDER_EXTRA_OPTIONS: aarch64-no-eme + 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 + env: + LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so" + LOWERCASE_DIRS: "/builds/worker/checkouts/gecko/vs2017_15.9.6" + mozconfig-variant: devedition + run-on-projects: ['mozilla-beta'] + fetches: + toolchain: + - linux64-binutils + - linux64-clang-win-cross + - linux64-rust-cross + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-dump-syms + - linux64-wine + - linux64-liblowercase + - linux64-winchecksec + fetch: + - nsis-3.01-win + - 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..77f5215647 --- /dev/null +++ b/taskcluster/ci/code-review/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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.code_review:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - source-test + +jobs: + issues: + label: code-review-issues + description: List all issues found in static analysis and linting tasks + worker-type: b-linux + + # 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: debian10-amd64-build + 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..2e821b4279 --- /dev/null +++ b/taskcluster/ci/condprof/kind.yml @@ -0,0 +1,334 @@ +# 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: taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + - build + +transforms: + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +job-defaults: + run-on-projects: + - mozilla-central + treeherder: + kind: other + tier: 2 + 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 +jobs: + windows2012-64-firefox: + worker-type: b-win2012 + description: Creates or updates conditioned profiles on Win64 + treeherder: + symbol: condprof(firefox) + platform: windows2012-64/opt + index: + product: firefox + job-name: condprof-win64 + dependencies: + build: build-win64-shippable/opt + fetches: + build: + - artifact: target.condprof.tests.tar.gz + - artifact: target.zip + toolchain: + - win64-geckodriver + run: + command: >- + python3.exe condprof/main.py + --force-new + --geckodriver ${MOZ_FETCHES_DIR}/geckodriver.exe + --firefox ${MOZ_FETCHES_DIR}/firefox/firefox.exe + --scenario settled + ../../archive + worker: + artifacts: + - name: public/condprof + path: archive + type: directory + linux64-firefox: + worker-type: b-linux + description: Creates or updates conditioned profiles on Linux + treeherder: + symbol: condprof(firefox) + platform: linux64/opt + index: + product: firefox + job-name: condprof-linux64 + dependencies: + build: build-linux64-shippable/opt + fetches: + build: + - artifact: target.condprof.tests.tar.gz + - artifact: target.tar.bz2 + toolchain: + - linux64-geckodriver + run: + command: >- + python3.7 virtualenv/virtualenv.py . && + bin/python3.7 condprof/main.py + --force-new + --geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --firefox ${MOZ_FETCHES_DIR}/firefox/firefox-bin + --scenario settled + ../../archive + worker: + docker-image: {in-tree: condprof} + artifacts: + - name: public/condprof + path: /builds/worker/archive + type: directory + macosx64-firefox: + worker-type: t-osx-1014 + description: Creates or updates conditioned profiles on macOS + treeherder: + symbol: condprof(firefox) + platform: macosx1014-64/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 + --force-new + --geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --firefox ${MOZ_FETCHES_DIR}/target.dmg + --scenario settled + ../../archive + worker: + artifacts: + - name: public/condprof + path: archive + type: directory + android-hw-g5-7-0-arm7-api-16-geckoview: + worker-type: t-bitbar-gw-perf-g5 + description: Creates or update conditioned profiles on GeckoView+G5 + treeherder: + symbol: condprof(geckoview) + platform: android-hw-g5-7-0-arm7-api-16/opt + index: + product: firefox + job-name: condprof-g5-geckoview_example + dependencies: + build: build-android-api-16-shippable/opt + fetches: + build: + - artifact: en-US/target.condprof.tests.tar.gz + - artifact: geckoview_example.apk + extract: false + toolchain: + - linux64-geckodriver + run: + run-as-root: true + command: >- + adb install -r $MOZ_FETCHES_DIR/geckoview_example.apk && + python3 virtualenv/virtualenv.py . && + bin/python3 condprof/main.py + --force-new + --geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --device-name g5 + --firefox org.mozilla.geckoview_example + --scenario settled + ../../archive + worker: + artifacts: + - name: public/condprof + path: archive + type: directory + android-hw-g5-7-0-arm7-api-16-fenix: + worker-type: t-bitbar-gw-perf-g5 + description: Creates or update conditioned profiles on Fenix+G5 + treeherder: + symbol: condprof(fenix) + platform: android-hw-g5-7-0-arm7-api-16/opt + index: + product: firefox + job-name: condprof-g5-fenix + dependencies: + build: build-linux64-shippable/opt + fetches: + build: + - artifact: target.condprof.tests.tar.gz + toolchain: + - linux64-geckodriver + run: + run-as-root: true + command: >- + curl -L -o target.apk https://firefox-ci-tc.services.mozilla.com/api/index/v1/task/mobile.v2.fenix.nightly.latest.armeabi-v7a/artifacts/public/build/armeabi-v7a/target.apk && + adb install -r target.apk && + rm -rf target.apk && + python3 virtualenv/virtualenv.py . && + bin/python3 condprof/main.py + --force-new + --geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --device-name g5 + --firefox org.mozilla.fenix + --scenario settled + ../../archive + worker: + artifacts: + - name: public/condprof + path: archive + type: directory + android-hw-g5-7-0-arm7-api-16-fennec68: + worker-type: t-bitbar-gw-perf-g5 + description: Creates or update conditioned profiles on Fennec68+G5 + treeherder: + symbol: condprof(fennec68) + platform: android-hw-g5-7-0-arm7-api-16/opt + index: + product: firefox + job-name: condprof-g5-firefox + dependencies: + build: build-linux64-shippable/opt + fetches: + build: + - artifact: target.condprof.tests.tar.gz + toolchain: + - linux64-geckodriver + run: + run-as-root: true + command: >- + curl -L -o target.apk https://firefox-ci-tc.services.mozilla.com/api/index/v1/task/gecko.v2.mozilla-esr68.signed-nightly.nightly.latest.mobile.android-api-16-release-opt/artifacts/public/build/target.apk && + adb install -r target.apk && + python3 virtualenv/virtualenv.py . && + bin/python3 condprof/main.py + --force-new + --geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --device-name g5 + --firefox org.mozilla.firefox + --scenario settled + ../../archive + worker: + artifacts: + - name: public/condprof + path: archive + type: directory + android-hw-p2-8-0-aarch64-fenix: + worker-type: t-bitbar-gw-perf-p2 + description: Creates or update conditioned profiles on Fenix+P2 + treeherder: + symbol: condprof(fenix) + platform: android-hw-p2-8-0-android-aarch64/opt + index: + product: firefox + job-name: condprof-p2_aarch64-fenix + dependencies: + build: build-android-api-16-shippable/opt + fetches: + build: + - artifact: en-US/target.condprof.tests.tar.gz + toolchain: + - linux64-geckodriver + run: + run-as-root: true + command: >- + curl -L -o target.apk https://firefox-ci-tc.services.mozilla.com/api/index/v1/task/mobile.v2.fenix.nightly.latest.arm64-v8a/artifacts/public/build/arm64-v8a/target.apk && + adb install -r target.apk && + rm -rf target.apk && + python3 virtualenv/virtualenv.py . && + bin/python3 condprof/main.py + --force-new + --geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --device-name p2_aarch64 + --firefox org.mozilla.fenix + --scenario settled + ../../archive + worker: + artifacts: + - name: public/condprof + path: archive + type: directory + android-hw-p2-8-0-android-aarch64-geckoview: + worker-type: t-bitbar-gw-perf-p2 + description: Creates or update conditioned profiles on GeckoView+P2 + treeherder: + symbol: condprof(geckoview) + platform: android-hw-p2-8-0-android-aarch64/opt + index: + product: firefox + job-name: condprof-p2_aarch64-geckoview_example + dependencies: + build: build-android-api-16-shippable/opt + fetches: + build: + - artifact: en-US/target.condprof.tests.tar.gz + - artifact: geckoview_example.apk + extract: false + toolchain: + - linux64-geckodriver + run: + run-as-root: true + command: >- + adb install -r $MOZ_FETCHES_DIR/geckoview_example.apk && + python3 virtualenv/virtualenv.py . && + bin/python3 condprof/main.py + --force-new + --geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --device-name p2_aarch64 + --firefox org.mozilla.geckoview_example + --scenario settled + ../../archive + worker: + artifacts: + - name: public/condprof + path: archive + type: directory + android-hw-p2-8-0-aarch64-fennec68: + worker-type: t-bitbar-gw-perf-p2 + description: Creates or update conditioned profiles on Fennec68+P2 + treeherder: + symbol: condprof(fennec68) + platform: android-hw-p2-8-0-android-aarch64/opt + index: + product: firefox + job-name: condprof-p2_aarch64-firefox + dependencies: + build: build-linux64-shippable/opt + fetches: + build: + - artifact: target.condprof.tests.tar.gz + toolchain: + - linux64-geckodriver + run: + run-as-root: true + command: >- + curl -L -o target.apk https://firefox-ci-tc.services.mozilla.com/api/index/v1/task/gecko.v2.mozilla-esr68.signed-nightly.nightly.latest.mobile.android-aarch64-release-opt/artifacts/public/build/target.apk && + adb install -r target.apk && + rm -rf target.apk && + python3 virtualenv/virtualenv.py . && + bin/python3 condprof/main.py + --force-new + --geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --device-name p2_aarch64 + --firefox org.mozilla.firefox + --scenario settled + ../../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..2b9dcdc0fc --- /dev/null +++ b/taskcluster/ci/config.yml @@ -0,0 +1,621 @@ +# 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' + 'py2': 'Python 2 unit tests' + 'py3': 'Python 3 unit tests' + 'A': 'Android Gradle tests' + 'Bpgo': 'Profile-guided optimization builds' + 'Btime': 'Browsertime performance tests on Firefox' + 'Btime-1proc': 'Browsertime performance tests on Firefox without e10s' + 'Btime-wr-1proc': 'Browsertime performance tests on Firefox without e10s, with webrender enabled' + 'Btime-fis': 'Browsertime performance tests on Firefox with fission enabled' + 'Btime-Prof': 'Browsertime performance tests on Firefox with Gecko Profiling' + 'Btime-Prof-wr': 'Browsertime performance tests on Firefox with Gecko Profiling, webrender enabled' + '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-fenix-wr': 'Browsertime performance tests on Firefox with webrender enabled' + 'Btime-live-ChR': 'Browsertime performance tests on Firefox' + 'Btime-ChR': 'Browsertime performance tests on Google Chrome Release' + 'Btime-Cr': 'Browsertime performance tests on Google Chromium' + 'Btime-P': 'Browsertime power tests on Firefox/Geckoview' + 'Btime-P-wr': 'Browsertime power tests on Firefox/Geckoview with webrender enabled' + 'Btime-P-fenix': 'Browsertime power tests on Fenix' + 'Btime-P-fenix-wr': 'Browsertime power tests on Fenix with webrender enabled' + 'Btime-P-1proc': 'Browsertime power tests on Fennec' + 'Btime-P-1proc-wr': 'Browsertime power tests on Fennec with webrender enabled' + 'Btime-P-refbrow': 'Browsertime power tests on reference browser' + 'Btime-P-refbrow-wr': 'Browsertime power tests on reference browser with webrender enabled' + 'Btime-fenix': 'Browsertime performance tests on Fenix' + 'Btime-fenix-wr': 'Browsertime performance tests on Fenix with webrender enabled' + 'Btime-fennec': 'Browsertime performance tests on Fennec' + 'Btime-fennec-1proc': 'Browsertime performance tests on Fennec without e10s' + 'Btime-refbrow': 'Browsertime performance tests on the reference browser' + 'Btime-refbrow-wr': 'Browsertime performance tests on the reference browser with webrender enabled' + 'Btime-Prof-fenix': 'Browsertime performance tests on Fenix with Gecko Profiling' + 'Btime-Prof-fennec': 'Browsertime performance tests on Fennec with Gecko Profiling' + 'Btime-Prof-fennec-1proc': 'Browsertime performance tests on Fennec without e10s with Gecko Profiling' + 'Btime-Prof-refbrow': 'Browsertime performance tests on the reference browser with Gecko Profiling' + 'Btime-wr': 'Browsertime performance tests on Android with webrender enabled' + 'Btime-live-wr': 'Browsertime performance tests on Android with webrender enabled' + 'Fetch': 'Fetch and store content' + 'Fxfn-l': 'Firefox functional tests (local)' + 'Fxfn-l-1proc': 'Firefox functional tests (local) without e10s' + 'Fxfn-r': 'Firefox functional tests (remote)' + 'Fxfn-r-1proc': 'Firefox functional tests (remote) without e10s' + 'iris': 'Iris testing suite' + 'l10n-bump': 'L10n Bumper' + 'M': 'Mochitests' + 'M-1proc': 'Mochitests without e10s' + 'M-a11y-checks': 'Mochitests with accessibility checks enabled' + 'M-fis': 'Mochitests with fission enabled' + 'M-fis-xorig': 'Mochitests with cross-origin and fission enabled' + 'M-gli': 'Mochitests with WebGL over IPC' + 'M-spi': 'Mochitests with socket process' + 'M-spi-1proc': 'Mochitests with socket process without e10s' + 'M-spi-nw': 'Mochitests with networking on socket process' + 'M-spi-nw-1proc': 'Mochitests with networking on socket process without e10s' + 'M-V-1proc': 'Mochitests on Valgrind without e10s' + 'MSI': 'Repack installers into MSIs' + 'MSIs': 'Signing of Repacked installers of MSIs' + 'R': 'Reftests' + 'R-1proc': 'Reftests without e10s' + 'R-fis': 'Reftests with fission enabled' + 'R-swr': 'Reftests with software webrender enabled' + 'Rap': 'Raptor performance tests on Firefox' + 'Rap-wr': 'Raptor performance tests on Firefox' + 'Rap-live': 'Raptor performance tests on Firefox with live sites' + 'Rap-1proc': 'Raptor performance tests on Firefox without e10s' + 'Rap-fis': 'Raptor performance tests on Firefox with fission enabled' + 'Rap-Prof': 'Raptor performance tests on Firefox with Gecko Profiling' + 'Rap-Prof-1proc': 'Raptor performance tests on Firefox with Gecko Profiling and without e10s' + 'Rap-ChR': 'Raptor performance tests on Google Chrome Release' + 'Rap-Cr': 'Raptor performance tests on Google Chromium' + 'Rap-P': 'Raptor power tests on Firefox' + 'Rap-P-1proc': 'Raptor power tests on Firefox without e10s' + 'Rap-fenix': 'Raptor performance tests on Fenix' + 'Rap-fennec': 'Raptor performance tests on Fennec' + 'Rap-fennec-1proc': 'Raptor performance tests on Fennec without e10s' + 'Rap-refbrow': 'Raptor performance tests on the reference browser' + 'Rap-refbrow-wr': 'Raptor performance tests on the reference browser' + 'remote': 'Remote debugging protocol tests' + 'T': 'Talos performance tests' + 'T-1proc': 'Talos performance tests without e10s' + 'T-fis': 'Talos performance tests with fission enabled' + 'T-gli': 'Talos performance tests with WebGL over IPC' + 'T-Prof': 'Talos performance tests on Firefox with Gecko Profiling' + 'T-Prof-1proc': 'Talos performance tests on Firefox with Gecko Profiling and without e10s' + 'T-Prof-fis': 'Talos performance tests on Firefox with fission and Gecko Profiling' + 'T-Prof-gli': 'Talos performance tests with WebGL over IPC and Gecko Profiling' + 'T-swr': 'Talos performance tests with software webrender enabled' + 'Tss': 'Talos performance tests, Stylo sequential' + 'Tss-fis': 'Talos performance tests, Stylo sequential with fission enabled' + 'Tss-1proc': 'Talos performance tests with Stylo sequential without e10s' + 'tt': 'Telemetry tests' + 'tt-1proc': 'Telemetry tests without e10s' + 'SY': 'Are we slim yet tests by TaskCluster' + 'SY-fis': 'Are we slim yet tests by TaskCluster, fission enabled' + 'VP': 'VideoPuppeteer tests' + 'W': 'Web platform tests' + 'W-1proc': 'Web platform tests without e10s' + 'W-fis': 'Web platform tests with fission enabled' + 'W-b': 'Web platform tests (backlog)' + 'W-b-fis': 'Web platform tests (backlog) with fission enabled' + 'X': 'Xpcshell tests' + 'X-1proc': 'Xpcshell tests, without e10s' + 'X-fis': 'Xpcshell tests with fission enabled' + 'X-spi-nw': 'Xpcshell tests with networking on socket process' + 'X-f': 'Xpcshell tests that fail on a given config' + 'X-f-fis': 'Xpcshell tests that fail on a given config w/fission' + 'X-f-spi-nw': 'Xpcshell tests that fail on a given config w/socket process' + 'L10n': 'Localised Repacks' + 'L10n-Rpk': 'Localized Repackaged Repacks' + 'BM': 'Beetmover' + 'BMR': 'Beetmover repackages' + 'c-Up': 'Balrog submission of complete updates' + 'cs': 'Checksum signing' + 'css': 'Checksum signing for source' + 'rs': 'Repackage signing' + 'BMcs': 'Beetmover checksums' + 'BMcslang': 'Beetmover checksums for language packs' + 'BMcss': 'Beetmover checksums for source' + 'Aries': 'Aries Device Image' + 'Deb8': 'Packages for Debian 8' + 'Deb8-32': 'Packages for Debian 8 32-bits' + 'Deb9': 'Packages for Debian 9' + 'Deb10': 'Packages for Debian 10' + 'Nexus 5-L': 'Nexus 5-L Device Image' + 'I': 'Docker Image Builds' + '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' + 'pub': 'APK publishing' + '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' + 'pydep': 'python dependency update' + 'WR': 'WebRender standalone' + 'Wgpu': 'WebGPU standalone' + 'Gd': 'Geckodriver' + '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' + 'test-info': 'Test manifest skip/fail information' + 'vismet': 'Visual Metrics Analysis' + 'condprof': 'Conditioned Profile Builder' + 'doc': 'Documentation' + 'GhS': 'GitHub Synchronization' + 'perftest': 'Performance tests' + 'perftest-http3': 'Performance tests with HTTP/3' + 'fuzzing': 'Fuzzing checks' + +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-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-mozjs-sys-linux64' + - 'sm-msan-linux64' + - 'sm-fuzzing-linux64' + - 'sm-rust-bindings-linux64' + 'win32': + - 'sm-plain-win32' + - 'sm-compacting-win32' + +release-promotion: + products: + - 'devedition' + - 'fennec' + - 'firefox' + 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-notarization-part-1 + - release-partner-repack-notarization-poller + - 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 + - - build/mozconfig.common + - 'MOZ_REQUIRE_SIGNING=${MOZ_REQUIRE_SIGNING-0}' + - 'MOZ_REQUIRE_SIGNING=${MOZ_REQUIRE_SIGNING-1}' + - - build/mozconfig.common + - '# Disable enforcing that add-ons are signed by the trusted root' + - '# Enable enforcing that add-ons are signed by the trusted root' + 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' + 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: + - - "build/mozconfig.common" + - "# Enable enforcing that add-ons are signed by the trusted root" + - "# Disable enforcing that add-ons are signed by the trusted root" + - - build/mozconfig.common + - 'MOZ_REQUIRE_SIGNING=${MOZ_REQUIRE_SIGNING-1}' + - 'MOZ_REQUIRE_SIGNING=${MOZ_REQUIRE_SIGNING-0}' + merge-old-head: false + base-tag: "FIREFOX_ESR_{major_version}_BASE" + from-repo: 'https://hg.mozilla.org/releases/mozilla-release' + from-branch: 'release' + to-repo: 'https://hg.mozilla.org/releases/mozilla-esr78' + to-branch: 'esr78' + 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: + - - "xpcom/components/Module.h" + - "static const unsigned int kVersion = {current_major_version};" + - "static const unsigned int kVersion = {next_major_version};" + - - "services/sync/modules/constants.js" + - '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-esr: + 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-esr78' + to-branch: 'esr78' + +scriptworker: + # See additional configuration in taskcluster/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' + 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: {} + +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}' + images: + provisioner: '{trust-domain}-{level}' + implementation: docker-worker + os: linux + worker-type: '{alias}' + 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' + 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-notarization-poller: + provisioner: scriptworker-prov-v1 + implementation: notarization-poller + os: macosx + worker-type: mac-notarization-poller + 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: '{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|-metal): + provisioner: '{trust-domain}-t' + implementation: docker-worker + os: linux + worker-type: '{alias}' + t-linux-talos: + provisioner: releng-hardware + implementation: generic-worker + os: linux + worker-type: 'gecko-{alias}' + t-osx-1014: + provisioner: releng-hardware + implementation: generic-worker + os: macosx + worker-type: 'gecko-{alias}' + t-osx-1014-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' + 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' + 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}' + t-win7-32(|-gpu): + provisioner: '{trust-domain}-t' + implementation: generic-worker + os: windows + worker-type: '{alias}' + 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 + + +mac-notarization: + mac-behavior: + by-project: + mozilla-(central|beta|release|esr.*): + by-shippable: + "true": mac_notarize + default: mac_sign_and_pkg + default: mac_sign_and_pkg + mac-entitlements: + by-platform: + macosx64.*: + by-release-level: + production: security/mac/hardenedruntime/production.entitlements.xml + default: security/mac/hardenedruntime/developer.entitlements.xml + default: '' diff --git a/taskcluster/ci/cron-bouncer-check/kind.yml b/taskcluster/ci/cron-bouncer-check/kind.yml new file mode 100644 index 0000000000..c976b0a311 --- /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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.bouncer_check:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +job-defaults: + name: bouncer-check + description: bouncer check + worker-type: b-linux + 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-esr78: 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/kind.yml b/taskcluster/ci/diffoscope/kind.yml new file mode 100644 index 0000000000..2eb11badb9 --- /dev/null +++ b/taskcluster/ci/diffoscope/kind.yml @@ -0,0 +1,120 @@ +# 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: taskgraph.loader.transform:loader + +kind-dependencies: + - build + - toolchain + +transforms: + - taskgraph.transforms.diffoscope:transforms + - taskgraph.transforms.job:transforms + - 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 + --exclude-command .--line-numbers + +jobs: + artifact-win64-aarch64-eme-validation: + symbol: DWE + new: build-win64-aarch64-eme/opt + original: build-win64-aarch64/opt + unpack: true + fail-on-diff: true + pre-diff-commands: + # The EME version has extra files under i686/. + - rm -rf b/firefox/i686 + # The i686/ files appear in precomplete, so after removing those references, + # we expect the same content as the non-EME build. + - sed -i '/i686\//d' b/firefox/precomplete + # Remove noise from differences in line numbers in preprocessor output + # due to #if/#else branches. + - sed -i '/^\/\/@line /d' {a,b}/firefox/browser/defaults/preferences/firefox.js + # Removing media.gmp-widevinecdm.* preferences, and setting + # browser.eme.ui.enabled to false should give us the same preferences as + # the non-EME build. + - sed -i '/browser\.eme\.ui\.enabled/s/true/false/;/media\.gmp-widevinecdm\./d' b/firefox/browser/defaults/preferences/firefox.js + # 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-directory-metadata=recursive + --exclude b/firefox/chrome/toolkit/content/global/buildconfig.html + --exclude b/firefox/uninstall/helper.exe + # This is necessary to avoid building `build-win64-aarch64` 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 + + reproducible-linux32: + symbol: Linux32 + new: build-linux-reproduced/opt + original: build-linux-shippable/opt + fail-on-diff: true + run-on-projects: ['mozilla-central'] # Do not run linux32 on autoland, Bug 1599197 + + reproducible-linux32-generated-files: + symbol: Linux32g + artifact: target.generated-files.tar.gz + new: build-linux-reproduced/opt + original: build-linux-shippable/opt + fail-on-diff: true + run-on-projects: ['mozilla-central'] # Do not run linux32 on autoland, Bug 1599197 + + reproducible-linux64: + symbol: Linux64 + new: build-linux64-reproduced/opt + original: build-linux64-shippable/opt + fail-on-diff: true + run-on-projects: ['mozilla-central'] + pre-diff-commands: ['rm {a,b}/firefox/lib*wasm.so'] # Bug 1612035 + + reproducible-linux64-generated-files: + symbol: Linux64g + artifact: target.generated-files.tar.gz + new: build-linux64-reproduced/opt + original: build-linux64-shippable/opt + fail-on-diff: true + run-on-projects: ['mozilla-central'] + +# 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. +# android-build-vs-previous-try: +# symbol: A +# new: build-android-api-16/opt +# original: {index-search: gecko.v2.try.revision.aabd5deb0156f9b55ab60ad6a01ebfc4580bf2e1.mobile.android-api-16-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/docker-image/kind.yml b/taskcluster/ci/docker-image/kind.yml new file mode 100644 index 0000000000..cab3ca1a4c --- /dev/null +++ b/taskcluster/ci/docker-image/kind.yml @@ -0,0 +1,224 @@ +# 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: taskgraph.loader.transform:loader + +kind-dependencies: + - packages + +transforms: + - taskgraph.transforms.docker_image:transforms + - taskgraph.transforms.cached_tasks:transforms + - 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) + debian10-test: + symbol: I(deb10-test) + ubuntu1804-test-base: + symbol: I(ub18-test-base) + ubuntu1804-test: + symbol: I(ub18-test) + parent: ubuntu1804-test-base + # 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-20200422 + DIST: jessie + SNAPSHOT: '20200422T205110Z' + 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-20200422 + DIST: jessie + SNAPSHOT: '20200422T205110Z' + debian8-i386-packages: + symbol: I(deb8-32-pkg) + definition: debian-packages + parent: debian8-i386-raw + debian8-base: + symbol: I(deb8-base) + definition: debian-base + parent: debian8-raw + packages: + - deb8-gdb + - deb8-git + - deb8-mercurial + - deb8-python3.6 + - deb8-python3-defaults + - deb8-python-psutil + - deb8-python-zstandard + - deb8-xz-utils + deb8-toolchain-build: + symbol: I(toolchain) + parent: debian8-base + definition: toolchain-build + packages: + - deb8-cmake + - deb8-ninja + deb10-toolchain-build: + symbol: I(deb10-toolchain) + parent: debian10-base + definition: toolchain-build + packages: + - deb10-cmake + custom-v8: + symbol: I(custom-v8) + parent: debian10-base + debian8-amd64-build-base: + symbol: I(deb8-bb) + parent: debian8-base + definition: debian-build + args: + ARCH: amd64 + debian8-amd64-build: + symbol: I(deb8) + parent: debian8-base + definition: debian-build + packages: + - deb8-valgrind + args: + ARCH: amd64 + debian8-i386-build: + symbol: I(deb8-32) + parent: debian8-base + definition: debian-build + packages: + - deb8-valgrind + - deb8-32-xz-utils + args: + ARCH: i386 + debian8-mozjs-rust-build: + symbol: I(deb8jsrs) + parent: debian8-amd64-build + packages: + - deb8-cmake + valgrind-build: + symbol: I(vb) + parent: debian8-amd64-build + lint: + symbol: I(lnt) + # Neither the debian10-raw nor the debian10-packages images can have + # packages dependencies. + debian10-raw: + symbol: I(deb10-raw) + definition: debian-raw + args: + BASE_IMAGE: debian:buster-20200422 + DIST: buster + SNAPSHOT: '20200422T205110Z' + debian10-packages: + symbol: I(deb10-pkg) + definition: debian-packages + parent: debian10-raw + debian10-base: + symbol: I(deb10-base) + definition: debian-base + parent: debian10-raw + packages: + - deb10-mercurial + - deb10-python-zstandard + debian10-amd64-build: + symbol: I(deb10) + parent: debian10-base + definition: debian-build + args: + ARCH: amd64 + debian10-arm64-build: + symbol: I(deb10-arm64) + parent: debian10-base + definition: debian-build + args: + ARCH: arm64 + toolchain-arm64-build: + symbol: I(toolchain-arm64) + parent: debian10-arm64-build + definition: toolchain-build + debian10-test-iris: + symbol: I(deb10-ti) + parent: debian10-test + packages: + - deb10-python-zstandard + android-build: + symbol: I(agb) + parent: debian10-base + packages: + - deb8-valgrind + fetch: + symbol: I(fetch) + parent: debian10-raw + packages: + - deb10-python-zstandard + static-analysis-build: + symbol: I(static-analysis-build) + parent: debian10-base + gdb-test: + symbol: I(gdb) + parent: debian8-amd64-build + definition: gdb-test + mingw32-build: + symbol: I(mingw) + parent: debian10-base + index-task: + symbol: I(idx) + funsize-update-generator: + symbol: I(pg) + update-verify: + symbol: I(uv) + diffoscope: + symbol: I(diff) + parent: debian10-base + partner-repack: + symbol: I(PR) + parent: debian10-base + definition: partner-repack + updatebot: + symbol: I(3rdp) + parent: push-to-try + periodic-updates: + symbol: I(file) + python-dependency-update: + symbol: I(pip) + firefox-snap: + symbol: I(snap) + firefox-flatpak: + symbol: I(flatpak) + webrender: + symbol: I(webrender) + parent: debian10-base + wgpu: + symbol: I(wgpu) + parent: debian10-base + condprof: + symbol: I(condprof) + parent: ubuntu1804-test + visual-metrics: + symbol: I(visual-metrics) + parent: debian10-base + github-sync: + symbol: I(github-sync) + parent: debian10-base + system-symbols-mac: + symbol: I(system-symbols-mac) + parent: debian10-base + system-symbols-win: + symbol: I(system-symbols-win) + parent: debian10-base + push-to-try: + symbol: I(push-to-try) + parent: debian10-base diff --git a/taskcluster/ci/fetch/benchmarks.yml b/taskcluster/ci/fetch/benchmarks.yml new file mode 100644 index 0000000000..295b3c0e47 --- /dev/null +++ b/taskcluster/ci/fetch/benchmarks.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/. +--- +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 + +unity-webgl: + description: unity-webgl benchmark + fetch: + type: static-url + url: https://github.com/mozilla/perf-automation/releases/download/unity-webgl-v3/unity-webgl-2720cdc79082.zip + sha256: 2d5a741cb3bfbd191d0aa2b4c4f71d615db84a0760e20c4e4cf701b3682df0d0 + size: 27062969 + +assorted-dom: + description: assorted-dom benchmark + fetch: + type: static-url + url: https://github.com/mozilla/perf-automation/releases/download/assorted-dom-v1/assorted-dom-4befd28725c6.zip + sha256: e4eafe4a8e70c7ae6d42d668d3b1640b9fd9b696c486ff35aab754c368f78c2c + size: 402665 + +wasm-misc: + description: wasm-misc benchmark + fetch: + type: static-url + artifact-name: wasm-misc.zip + url: https://github.com/mozilla/perf-automation/releases/download/wasm-misc-v1/wasm-misc-c55c3c7690b2.zip + sha256: 0ba273b748b872117a4b230c776bbd73550398da164025a735c28a16c0224397 + size: 4433793 + +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 + +jetstream2: + description: JetStream2 Benchmark + fetch: + type: static-url + url: https://github.com/mozilla/perf-automation/releases/download/jetstream2-v1.1/jetstream2-e19a0865c946.zip + sha256: 808e67528c114d45d0cf34aedbf71f8ecc8cefa99323879fc503678a32d8c407 + size: 25486847 diff --git a/taskcluster/ci/fetch/browsertime.yml b/taskcluster/ci/fetch/browsertime.yml new file mode 100644 index 0000000000..5ce2037366 --- /dev/null +++ b/taskcluster/ci/fetch/browsertime.yml @@ -0,0 +1,128 @@ +# 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.1.1: + description: 'Win64 ffmpeg' + fetch: + type: static-url + # url: https://ffmpeg.zeranoe.com/builds/win64/static/ffmpeg-4.1.1-win64-static.zip is 403 (from AWS only?). + url: https://github.com/ncalexan/geckodriver/releases/download/v0.24.0-android/ffmpeg-4.1.1-win64-static.zip + sha256: 2c19658d69de08ea7ef585fbf801ef6a364795b5288e23d79066876ff0465df6 + size: 66347524 + +linux64-ffmpeg-4.1.4: + description: 'Linux64 ffmpeg' + fetch: + type: static-url + # url: https://www.johnvansickle.com/ffmpeg/old-releases/ffmpeg-4.1.4-i686-static.tar.xz is 406 (from AWS only?). + url: https://github.com/ncalexan/geckodriver/releases/download/v0.24.0-android/ffmpeg-4.1.4-i686-static.tar.xz + sha256: f7a2f0f8f91506d67f80fbe5b8a5c264d0fb60cb3cd258d03344890fbd55e6fd + size: 16633296 + +mac64-ffmpeg-4.1.1: + description: 'Mac64 ffmpeg' + fetch: + type: static-url + # url: https://ffmpeg.zeranoe.com/builds/macos64/static/ffmpeg-4.1.1-macos64-static.zip is 403 (from AWS only?). + url: https://github.com/ncalexan/geckodriver/releases/download/v0.24.0-android/ffmpeg-4.1.1-macos64-static.zip + sha256: 8612d1e07901779e7ed0eeb5433aea37c7bbaf308d725741f432f454a9f97275 + size: 66853411 + +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-85: + description: 'Win32 chromedriver v85' + fetch: + type: static-url + artifact-name: chromedriver_win32_85.tar.zst + add-prefix: '85' + url: https://chromedriver.storage.googleapis.com/85.0.4183.87/chromedriver_win32.zip + sha256: 6d5f81e2a07b4cd8a8dc23f65a50aecc03f6652e35ad14db8e02ab9ed92a68f5 + size: 5204275 + +linux64-chromedriver-85: + description: 'Linux64 chromedriver v85' + fetch: + type: static-url + artifact-name: chromedriver_linux64_85.tar.zst + add-prefix: '85' + url: https://chromedriver.storage.googleapis.com/85.0.4183.87/chromedriver_linux64.zip + sha256: 5eba5ca454bb7def6021610477079c132e8d8013b24bc3fd7d0741715dc87a29 + size: 5359609 + +mac64-chromedriver-85: + description: 'Mac64 chromedriver v85' + fetch: + type: static-url + artifact-name: chromedriver_mac64_85.tar.zst + add-prefix: '85' + url: https://chromedriver.storage.googleapis.com/85.0.4183.87/chromedriver_mac64.zip + sha256: 717ff47c926b6cfa5ebcb60d7cb57a42f338fa657083928d8e1d74ff9c4833dd + size: 7717718 + +win32-chromedriver-86: + description: 'Win32 chromedriver v86' + fetch: + type: static-url + artifact-name: chromedriver_win32_86.tar.zst + add-prefix: '86' + url: https://chromedriver.storage.googleapis.com/86.0.4240.22/chromedriver_win32.zip + sha256: 89a40eca457cbfc098af4bbb4342e697c90284c841bc72d3363ce7007673826b + size: 5239100 + +linux64-chromedriver-86: + description: 'Linux64 chromedriver v86' + fetch: + type: static-url + artifact-name: chromedriver_linux64_86.tar.zst + add-prefix: '86' + url: https://chromedriver.storage.googleapis.com/86.0.4240.22/chromedriver_linux64.zip + sha256: d498eaacc414adbaf638333b59390cdfea5d780f941f57f41fd90280df78b159 + size: 5456932 + +mac64-chromedriver-86: + description: 'Mac64 chromedriver v86' + fetch: + type: static-url + artifact-name: chromedriver_mac64_86.tar.zst + add-prefix: '86' + url: https://chromedriver.storage.googleapis.com/86.0.4240.22/chromedriver_mac64.zip + sha256: 351ae30e9feab7ca6ccb94a549afcd62d6355561b78b8386cd4271d480a2fdc6 + size: 7796598 + +win32-chromedriver-87: + description: 'Win32 chromedriver v87' + fetch: + type: static-url + artifact-name: chromedriver_win32_87.tar.zst + add-prefix: '87' + url: https://chromedriver.storage.googleapis.com/87.0.4280.20/chromedriver_win32.zip + sha256: 0aba7f547ea4941169a9a0b4e3463459900a3d3ae74e2f5646ed732c0c40598b + size: 5429367 + +linux64-chromedriver-87: + description: 'Linux64 chromedriver v87' + fetch: + type: static-url + artifact-name: chromedriver_linux64_87.tar.zst + add-prefix: '87' + url: https://chromedriver.storage.googleapis.com/87.0.4280.20/chromedriver_linux64.zip + sha256: a3248aa7308727fe1116b7e937511c3486b4efd45da9c50e3b6a7c31563df3b2 + size: 5564194 + +mac64-chromedriver-87: + description: 'Mac64 chromedriver v87' + fetch: + type: static-url + artifact-name: chromedriver_mac64_87.tar.zst + add-prefix: '87' + url: https://chromedriver.storage.googleapis.com/87.0.4280.20/chromedriver_mac64.zip + sha256: 99e98317a5f883d53973a044778f81abe71b42c570fb35f75786f86ea617bd1a + size: 7897737 diff --git a/taskcluster/ci/fetch/chromium-fetch.yml b/taskcluster/ci/fetch/chromium-fetch.yml new file mode 100644 index 0000000000..f6b9cad8f3 --- /dev/null +++ b/taskcluster/ci/fetch/chromium-fetch.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/. +--- +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 diff --git a/taskcluster/ci/fetch/kind.yml b/taskcluster/ci/fetch/kind.yml new file mode 100644 index 0000000000..814fb55cea --- /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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.fetch:transforms + - taskgraph.transforms.try_job:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +jobs-from: + - benchmarks.yml + - browsertime.yml + - chromium-fetch.yml + - resource-monitor.yml + - toolchain-clang-tidy-external.yml + - toolchains.yml + - visual-metrics.yml 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..cb751e745a --- /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: 80aad808762b28268d69cfd503f52a81375249b4 + 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..eb44d1bd27 --- /dev/null +++ b/taskcluster/ci/fetch/toolchains.yml @@ -0,0 +1,515 @@ +# 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.27: + description: binutils 2.27 source code + fetch: + type: static-url + url: ftp://ftp.gnu.org/gnu/binutils/binutils-2.27.tar.bz2 + sha256: 369737ce51587f92466041a97ab7d2358c6d9e1b6490b3940eb09fb0a9a6ac88 + size: 26099568 + gpg-signature: + sig-url: "{url}.sig" + key-path: build/unix/build-gcc/EAF1C276A747E9ED86210CBAC3126D3B4AE55E93.key + artifact-name: binutils-source.tar.zst + strip-components: 1 + add-prefix: binutils-source/ + +binutils-2.31.1: + description: binutils 2.31.1 source code + fetch: + type: static-url + url: ftp://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/ + +gcc-6.4.0: + description: GCC 6.4.0 source code + fetch: + type: static-url + url: ftp://ftp.gnu.org/gnu/gcc/gcc-6.4.0/gcc-6.4.0.tar.xz + sha256: 850bf21eafdfe5cd5f6827148184c08c4a0852a37ccf36ce69855334d2c914d4 + size: 76156220 + gpg-signature: + sig-url: "{url}.sig" + key-path: build/unix/build-gcc/13975A70E63C361C73AE69EF6EEB81F8981C74C7.key + artifact-name: gcc-source.tar.zst + strip-components: 1 + add-prefix: gcc-source/ + +gcc-7.4.0: + description: GCC 7.4.0 source code + fetch: + type: static-url + url: ftp://ftp.gnu.org/gnu/gcc/gcc-7.4.0/gcc-7.4.0.tar.xz + sha256: eddde28d04f334aec1604456e536416549e9b1aa137fc69204e65eb0c009fe51 + size: 62601888 + gpg-signature: + sig-url: "{url}.sig" + key-path: build/unix/build-gcc/13975A70E63C361C73AE69EF6EEB81F8981C74C7.key + artifact-name: gcc-source.tar.zst + strip-components: 1 + add-prefix: gcc-source/ + +gcc-8.3.0: + description: GCC 8.3.0 source code + fetch: + type: static-url + url: ftp://ftp.gnu.org/gnu/gcc/gcc-8.3.0/gcc-8.3.0.tar.xz + sha256: 64baadfe6cc0f4947a84cb12d7f0dfaf45bb58b7e92461639596c21e02d97d2c + size: 63694700 + gpg-signature: + sig-url: "{url}.sig" + key-path: build/unix/build-gcc/33C235A34C46AA3FFB293709A328C3A2C3C45C06.key + artifact-name: gcc-source.tar.zst + strip-components: 1 + add-prefix: gcc-source/ + +gcc-9.3.0: + description: GCC 9.3.0 source code + fetch: + type: static-url + url: ftp://ftp.gnu.org/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.xz + sha256: 71e197867611f6054aa1119b13a0c0abac12834765fe2d81f35ac57f84f742d1 + size: 70533868 + gpg-signature: + sig-url: "{url}.sig" + key-path: build/unix/build-gcc/33C235A34C46AA3FFB293709A328C3A2C3C45C06.key + artifact-name: gcc-source.tar.zst + strip-components: 1 + add-prefix: gcc-source/ + +gmp-5.1.3: + description: GMP 5.1.3 source code + fetch: + type: static-url + url: https://ftp.gnu.org/gnu/gmp/gmp-5.1.3.tar.bz2 + sha256: 752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160 + size: 2196480 + 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/ + +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 + +iris-2.0: + description: Iris_Firefox source code + fetch: + type: git + repo: https://github.com/mozilla/iris_firefox + revision: a91a1cb88a16b0ee4d30f0dfc165d2cacf48b10c + +isl-0.15: + description: ISL 0.15 source code + fetch: + type: static-url + url: ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.15.tar.bz2 + sha256: 8ceebbf4d9a81afa2b4449113cee4b7cb14a687d7a549a963deb5e2a41458b6b + size: 1574964 + artifact-name: isl-source.tar.zst + strip-components: 1 + add-prefix: isl-source/ + +isl-0.16.1: + description: ISL 0.16.1 source code + fetch: + type: static-url + url: ftp://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-0.8.2: + description: mpc 0.8.2 source code + fetch: + type: static-url + url: http://www.multiprecision.org/downloads/mpc-0.8.2.tar.gz + sha256: ae79f8d41d8a86456b68607e9ca398d00f8b7342d1d83bcf4428178ac45380c7 + size: 548401 + gpg-signature: + sig-url: "{url}.asc" + key-path: build/unix/build-gcc/AD17A21EF8AED8F1CC02DBD9F7D5C9BF765C61E3.key + artifact-name: mpc-source.tar.zst + strip-components: 1 + add-prefix: mpc-source/ + +mpc-1.0.3: + description: mpc 1.0.3 source code + fetch: + type: static-url + url: http://www.multiprecision.org/downloads/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/ + +mpfr-3.1.5: + description: mpfr 3.1.5 source code + fetch: + type: static-url + url: http://www.mpfr.org/mpfr-3.1.5/mpfr-3.1.5.tar.bz2 + sha256: ca498c1c7a74dd37a576f353312d1e68d490978de4395fa28f1cbd46a364e658 + size: 1279489 + 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.13.02: + description: nasm 2.13.02 source code + fetch: + type: static-url + url: https://www.nasm.us/pub/nasm/releasebuilds/2.13.02/nasm-2.13.02.tar.xz + sha256: 8ac3235f49a6838ff7a8d7ef7c19a4430d0deecc0c2d3e3e237b5e9f53291757 + size: 805744 + +wix-3.14.0: + description: wix 3.14.0.2812 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 + # This is a dev version of the toolset, upstream will purge over time... + url: http://wixtoolset.org/downloads/v3.14.0.2812/wix314-binaries.zip + sha256: 923892298f37514622c58cbbd9c2cadf2822d9bb53df8ee83aaeb05280777611 + size: 34664320 + +grcov-osx-x86_64: + description: grcov binary release + fetch: + type: static-url + url: https://github.com/mozilla/grcov/releases/download/v0.7.1/grcov-osx-x86_64.tar.bz2 + sha256: c7c323e0647b1309b412874000d677e8f5b898401ec57761c57a9c396c433823 + size: 2476735 + +zlib-1.2.11: + description: zlib 1.2.11 source code + fetch: + type: static-url + url: http://zlib.net/zlib-1.2.11.tar.gz + sha256: c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1 + size: 607698 + gpg-signature: + sig-url: "{url}.asc" + key-path: build/unix/build-gcc/5ED46A6721D365587791E2AA783FCD8E58BCAFBA.key + +nsis-3.01: + description: nsis 3.01 source code + fetch: + type: static-url + url: https://downloads.sourceforge.net/project/nsis/NSIS%203/3.01/nsis-3.01-src.tar.bz2 + sha256: 604c011593be484e65b2141c50a018f1b28ab28c994268e4ecd377773f3ffba1 + size: 1649428 + +nsis-3.01-win: + description: nsis 3.01 for windows + fetch: + type: static-url + url: https://hg.mozilla.org/mozilla-build/raw-file/3b8c537ca3c879551956ad47ca9f089583f647c5/nsis-3.01.zip + sha256: daa17556c8690a34fb13af25c87ced89c79a36a935bf6126253a9d9a5226367c + size: 2505205 + +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-5.0: + description: wine-5.0.tar.xz + fetch: + type: static-url + url: https://dl.winehq.org/wine/source/5.0/wine-5.0.tar.xz + sha256: 181550ba69a80b00c631f80c28ff7642264613bbecdb0c0fc04d6534866713b4 + size: 22469428 + gpg-signature: + sig-url: "{url}.sign" + key-path: build/unix/build-gcc/DA23579A74D4AD9AF9D3F945CEFAC8EAAF17519D.key + +cbindgen-0.16.0: + description: cbindgen source code + fetch: + type: git + repo: https://github.com/eqrion/cbindgen + revision: a00b4215a907601680f6e9acaf93df1cbafa8ded + +cctools-port: + description: cctools-port source code + fetch: + type: git + repo: https://github.com/tpoechtrager/cctools-port + revision: 43f32a4c61b5ba7fde011e816136c550b1b3146f + +libtapi: + description: libtapi source code + fetch: + type: git + repo: https://github.com/tpoechtrager/apple-libtapi + revision: b4f141a16c7c82f75973429c92242a8c7de3ddb1 + +libdmg-hfsplus: + description: libdmg-hfsplug source code + fetch: + type: git + repo: https://github.com/mozilla/libdmg-hfsplus/ + revision: 2ee327795680101d36f9700bd0fb618362237718 + +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 + +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: d69a9c3765dee2e650bcccebbadf72c5d42d92b1 + +grcov: + description: grcov source code + fetch: + type: git + repo: https://github.com/mozilla/grcov + revision: 6ccd61964a0ab60d193394f18c0986eb37d14b9e + +sccache: + description: sccache source code + fetch: + type: git + repo: https://github.com/mozilla/sccache + # 0.2.15 release + revision: 6b6d2f7d2dceefeb4f583712aa4c221db62be0bd + +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: 660e09f3cb20f181b6d6435cb623d65a3922a063 + +libunwind: + description: libunwind source code + fetch: + type: git + repo: https://github.com/llvm-mirror/libunwind + revision: efd17a11b0fae29d3414e11e99307e082d4ee949 + +llvm-mingw: + description: llvm-mingw source code + fetch: + type: git + repo: https://github.com/mstorsjo/llvm-mingw + revision: 9f8e5cebd6dbbb7546e8917e6c59284699a48d26 + +android-rs-glue: + description: android-rs-glue source code + fetch: + type: git + repo: https://github.com/jamienicol/android-rs-glue + revision: 86d9cb4db7bf7a8052e6765d9f8caae6009107cb + +clang-5.0: + description: clang 5.0.2 source code + fetch: + type: git + repo: https://github.com/llvm/llvm-project + revision: 6a075b6de4cafebec9ca1ff9eec7229a617c93f6 + +clang-7: + description: clang 7 source code + fetch: + type: git + repo: https://github.com/llvm/llvm-project + revision: d0d8eb2e5415b8be29343e3c17a18e49e67b5551 + +clang-8: + description: clang 8.0.1 source code + fetch: + type: git + repo: https://github.com/llvm/llvm-project + revision: 19a71f6bdf2dddb10764939e7f0ec2b98dba76c9 + +clang-10: + description: clang 10.0.0 source code + fetch: + type: git + repo: https://github.com/llvm/llvm-project + revision: d32170dbd5b0d54436537b6b75beaf44324e0c28 + +clang-11: + description: clang 11.0.1 source code + fetch: + type: git + repo: https://github.com/llvm/llvm-project + revision: 43ff75f2c3feef64f9d73328230d34dac8832a91 + +rust-1.47.0-dev: + description: Rust 1.47.0-dev source code + fetch: + type: git + repo: https://github.com/rust-lang/rust/ + revision: 18bf6b4f01a6feaf7259ba7cdae58031af1b7b39 + +wasi-sdk: + description: wasi-sdk source code + fetch: + type: git + repo: https://github.com/WebAssembly/wasi-sdk + revision: 8446a3f8d49f70d17e38cefd9990a9e79bf3e78a + +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.15.1 + fetch: + type: static-url + url: https://github.com/Kitware/CMake/releases/download/v3.15.1/cmake-3.15.1-win64-x64.zip + sha256: 82a0edfed4cb0b45b25d2f99e621d3ed4014f66191d8f3c7eadf1d9ccf9c461b + size: 32214192 + artifact-name: cmake.tar.zst + strip-components: 1 + add-prefix: cmake/ + +lucetc-source: + description: lucetc source code + fetch: + type: git + repo: https://github.com/PLSysSec/lucet_sandbox_compiler/ + revision: cd07861d1c92147b35b538e6f94fde7d1986f9ad + +dump-syms: + description: dump_syms source code + fetch: + type: git + repo: https://github.com/mozilla/dump_syms/ + revision: 1e64e56720131bcf0ab01f201ed89a337c73069d + +fix-stacks: + description: fix-stacks source code + fetch: + type: git + repo: https://github.com/mozilla/fix-stacks/ + revision: 45a3301151244615df92c503379bb189dc3ee7f5 + +winchecksec: + description: winchecksec source code + fetch: + type: git + repo: https://github.com/trailofbits/winchecksec/ + revision: 93ffe67dbfc757bf6f440d80b8acf88e652ed60a + +codeql-2.0.3: + description: CodeQL query tools + fetch: + type: static-url + url: https://github.com/github/codeql-cli-binaries/releases/download/v2.0.3/codeql.zip + sha256: 094ff1ffc7211e8222c148e375fdd53b58bd4c0fe20875d9d7abf2a5e6c341a5 + size: 473738719 + artifact-name: codeql.zip + +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/ + +makecab: + description: makecab source code + fetch: + type: git + repo: https://github.com/luser/rust-makecab/ + revision: d2bc6797648b7a834782714a55d339d2fd4e58c8 diff --git a/taskcluster/ci/fetch/visual-metrics.yml b/taskcluster/ci/fetch/visual-metrics.yml new file mode 100644 index 0000000000..27032c4a27 --- /dev/null +++ b/taskcluster/ci/fetch/visual-metrics.yml @@ -0,0 +1,11 @@ +# 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/. +--- +visual-metrics: + description: "Browsertime visual metrics analsyis script" + fetch: + type: static-url + url: https://raw.githubusercontent.com/sitespeedio/browsertime/7a37d88a2592f3307699973536126b4a6089ac14/browsertime/visualmetrics.py + sha256: 8a0043242b095a42b6aa8f052703535be60630305b2a3acee7b26a0cb8c50a3f + size: 87647 diff --git a/taskcluster/ci/fuzzing/kind.yml b/taskcluster/ci/fuzzing/kind.yml new file mode 100644 index 0000000000..9bacfc9203 --- /dev/null +++ b/taskcluster/ci/fuzzing/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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.source_test:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - fetch + - toolchain + - build + +job-defaults: + platform: linux64/opt + require-build: + linux64/opt: build-linux64/opt + worker-type: b-linux + worker: + max-run-time: 3600 + docker-image: {in-tree: debian10-amd64-build} + env: + LD_LIBRARY_PATH: /builds/worker/fetches + JSSHELL: ./js + treeherder: + kind: test + tier: 3 + fetches: + build: + - target.jsshell.zip + - target.fuzztest.tests.tar.gz + +jobs: + simple: + description: Simple Fuzzing Test + treeherder: + symbol: simple-fuzzing + run: + using: run-task + command: >- + cd $MOZ_FETCHES_DIR && + python tools/fuzzing/smoke/smoke.py diff --git a/taskcluster/ci/geckodriver-signing/kind.yml b/taskcluster/ci/geckodriver-signing/kind.yml new file mode 100644 index 0000000000..77bd0cab02 --- /dev/null +++ b/taskcluster/ci/geckodriver-signing/kind.yml @@ -0,0 +1,16 @@ +# 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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.geckodriver_signing:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - toolchain + +only-for-attributes: + - geckodriver diff --git a/taskcluster/ci/generate-profile/kind.yml b/taskcluster/ci/generate-profile/kind.yml new file mode 100644 index 0000000000..9d2c36165e --- /dev/null +++ b/taskcluster/ci/generate-profile/kind.yml @@ -0,0 +1,210 @@ +# 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: taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + - instrumented-build + +transforms: + - taskgraph.transforms.build_attrs:transforms + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.run_pgo_profile:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + + +job-defaults: + treeherder: + symbol: Bpgo(run) + kind: build + tier: 1 + run-on-projects: ['release'] + +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 + 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 + worker: + chain-of-trust: true + env: + NEED_XVFB: "true" + max-run-time: 1200 + docker-image: {in-tree: debian10-amd64-build} + 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-api-16-shippable/opt: + description: "Android 4.0 api-16+ Profile Generation" + shipping-phase: build + shipping-product: fennec + index: + product: mobile + job-name: android-api-16-profile + treeherder: + platform: android-4-0-armv7-api16/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" + artifacts: + - type: directory + name: public/build + path: /builds/worker/artifacts/ + run: + using: mozharness + need-xvfb: true + job-script: taskcluster/scripts/tester/test-linux.sh + script: android_emulator_pgo.py + tooltool-downloads: internal + options: [installer-path=/builds/worker/fetches/geckoview-androidTest.apk] + config: + - android/android_common.py + - android/androidarm_4_3.py + - android/android_pgo.py + fetches: + toolchain: + - linux64-clang + - linux64-minidump-stackwalk + + 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-win2012 + worker: + chain-of-trust: true + max-run-time: 1200 + 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-cl-2stage + - 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-win2012 + worker: + chain-of-trust: true + max-run-time: 1200 + 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-cl-2stage + - 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: macosx1014-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 diff --git a/taskcluster/ci/github-sync/kind.yml b/taskcluster/ci/github-sync/kind.yml new file mode 100644 index 0000000000..54b4c0c52b --- /dev/null +++ b/taskcluster/ci/github-sync/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: taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + - build + +transforms: + - taskgraph.transforms.github_sync:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +job-defaults: + attributes: + retrigger: true + run-on-projects: ['mozilla-central'] + worker-type: b-linux + 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: + wgpu: + description: Sync wgpu to github mirror + secret: gecko/gfx-github-sync/token + run: + command: '$GECKO_PATH/tools/github-sync/sync-to-github.sh wgpu gfx/wgpu gfx-rs/wgpu bors' + run-on-projects: [] + when: + files-changed: + - 'gfx/wgpu/**' + treeherder: + symbol: GhS(wgpu) + + 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..3bb865e899 --- /dev/null +++ b/taskcluster/ci/hazard/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: taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + +transforms: + - taskgraph.transforms.build_attrs:transforms + - taskgraph.transforms.build_lints:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +job-defaults: + attributes: + retrigger: true + treeherder: + kind: build + tier: 1 + worker-type: b-linux + worker: + max-run-time: 36000 + docker-image: {in-tree: debian8-amd64-build} + +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-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-lucetc + - wasi-sysroot + 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..ceed2ec239 --- /dev/null +++ b/taskcluster/ci/instrumented-build/kind.yml @@ -0,0 +1,265 @@ +# 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: taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + - fetch + +transforms: + - taskgraph.transforms.build:transforms + - taskgraph.transforms.build_attrs:transforms + - taskgraph.transforms.build_lints:transforms + - taskgraph.transforms.job:transforms + - 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 + 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 + worker: + docker-image: {in-tree: debian8-i386-build} + 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-binutils + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-nasm + - linux64-node + + 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 + run: + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + mozconfig-variant: profile-generate + tooltool-downloads: public + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + + 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 + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: instrumented + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-releng.manifest" + 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 + tooltool-downloads: internal + fetches: + toolchain: + - linux64-binutils + - linux64-cctools-port + - linux64-clang-macosx-cross + - linux64-hfsplus + - linux64-libdmg + - linux64-llvm-dsymutil + - linux64-rust-macos + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + + android-api-16-shippable/opt: + description: "Android 4.0 api-16+ PGO instrumented" + index: + product: mobile + job-name: instrumented-android-api-16 + shipping-product: fennec + treeherder: + platform: android-4-0-armv7-api16/pgo + worker-type: b-linux + 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_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 + run: + config: + - builds/releng_base_android_64_builds.py + custom-build-variant-cfg: api-16-profile-generate + tooltool-downloads: internal + fetches: + toolchain: + - android-gradle-dependencies + - android-ndk-linux + - android-sdk-linux + - linux64-clang-android-cross + - linux64-rust-android + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-nasm + - linux64-node + + 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 + worker: + docker-image: {in-tree: debian10-amd64-build} + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/releng.manifest" + run: + options: [append-env-variables-from-configs] + mozconfig-variant: profile-generate + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + tooltool-downloads: internal + extra-config: + stage_platform: win32 + mozconfig_platform: win32 + env: + LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so" + LOWERCASE_DIRS: "/builds/worker/checkouts/gecko/vs2017_15.8.4" + fetches: + toolchain: + - linux64-binutils + - linux64-clang-win-cross + - linux64-rust-cross + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-dump-syms + - linux64-wine + - linux64-liblowercase + - linux64-winchecksec + fetch: + - nsis-3.01-win + - 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 + worker: + docker-image: {in-tree: debian10-amd64-build} + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest" + run: + options: [append-env-variables-from-configs] + mozconfig-variant: profile-generate + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + tooltool-downloads: internal + extra-config: + stage_platform: win64 + mozconfig_platform: win64 + env: + LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so" + LOWERCASE_DIRS: "/builds/worker/checkouts/gecko/vs2017_15.8.4" + fetches: + toolchain: + - linux64-binutils + - linux64-clang-win-cross + - linux64-rust-cross + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-dump-syms + - linux64-wine + - linux64-liblowercase + - linux64-winchecksec + fetch: + - nsis-3.01-win + - upx-3.95-win diff --git a/taskcluster/ci/iris/kind.yml b/taskcluster/ci/iris/kind.yml new file mode 100644 index 0000000000..2f2c277393 --- /dev/null +++ b/taskcluster/ci/iris/kind.yml @@ -0,0 +1,207 @@ +# 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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.iris:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - build + - fetch + - toolchain + +# These are the platforms that will run iris tests +iris-build-platforms: + - linux64-shippable/opt + # This is disabled while we sort out bootstrapping issues + # - osx-shippable/opt + - windows10-64-shippable/opt + +job-defaults: + attributes: + retrigger: true + dependencies: + build: + by-platform: + linux64.*: build-linux64-shippable/opt + osx.*: build-macosx64-shippable/opt + windows10-64.*: build-win64-shippable/opt + description: Run the iris test suite's {} tests + notify: + email: + by-project: + mozilla-central: + subject: 'Iris Firefox {chunk} tests failed (mozilla-central)' + message: This calls for an action from the QA Automation team. Use the link to view it on Treeherder. + link: + text: Treeherder Job + href: '{th_root}jobs?repo={project}&revision={head_rev}{tiers}{filterstring}' + on-reasons: [failed] + emails: [iris@mozilla.com] + default: [] + fetches: + build: + by-platform: + linux64.*: + - target.tar.bz2 + osx.*: + - target.dmg + windows10-64.*: + - target.zip + fetch: + - iris-2.0 + run: + cwd: '{checkout}' + command: + by-platform: + linux64.*: >- + ./taskcluster/scripts/iris/run-iris-linux.sh + osx.*: >- + ./taskcluster/scripts/iris/run-iris-macos.sh + windows10-64.*: >- + ./taskcluster/scripts/iris/run-iris-windows.sh + using: run-task + tooltool-downloads: public + run-on-projects: [] + treeherder: + kind: test + platform: + by-platform: + linux64.*: linux64-shippable/opt + osx.*: macosx1014-64-shippable/opt + windows10-64.*: windows10-64-shippable/opt + tier: 3 + worker: + docker-image: + by-platform: + linux64.*: + in-tree: debian10-test-iris + default: null + artifacts: + by-platform: + linux64.*: + - type: file + name: public/runs.zip + path: /builds/worker/runs.zip + osx.*: + - type: file + name: public/runs.zip + path: runs.zip + windows10-64.*: + - type: file + name: public/runs.zip + path: runs.zip + env: + PATH: + by-platform: + windows10-64.*: "%PATH%;%USERPROFILE%\\scoop\\shims" + default: null + max-run-time: + by-name: + # Some chunks need longer to complete than others + bookmark.*: 10800 + download_manager.*: 7200 + history.*: 10800 + default: 5400 + worker-type: + by-platform: + linux64.*: t-linux-xlarge + osx.*: t-osx-1014 + windows10-64.*: t-win10-64 + +jobs: + anti_tracking: + name: anti_tracking + treeherder: + symbol: iris(at) + antivirus: + name: antivirus + treeherder: + symbol: iris(av) + awesomebar: + name: awesomebar + treeherder: + symbol: iris(ab) + bookmark: + name: bookmark + treeherder: + symbol: iris(bm) + ci_tests: + name: ci_tests + treeherder: + symbol: iris(ct) + content_scroll: + name: content_scroll + treeherder: + symbol: iris(cs) + download_manager: + name: download_manager + treeherder: + symbol: iris(dm) + drag_and_drop: + name: drag_and_drop + treeherder: + symbol: iris(dnd) + find_toolbar: + name: find_toolbar + treeherder: + symbol: iris(ft) + history: + name: history + treeherder: + symbol: iris(h) + in_browser_pdf: + name: in_browser_pdf + treeherder: + symbol: iris(ibp) + # Nightly is a special case running a subset of tests as a smoketest of the + # entire test suite. Giving it a capital initial as a symbol will make + # Treeherder sort it in front of the other chunks for visibility. + nightly: + name: nightly + treeherder: + symbol: iris(N) + plugin_compatibility: + name: plugin_compatibility + treeherder: + symbol: iris(pc) + prefs: + name: prefs + treeherder: + symbol: iris(p) + private_browsing: + name: private_browsing + treeherder: + symbol: iris(pb) + safe_browsing: + name: safe_browsing + treeherder: + symbol: iris(sb) + search_and_update: + name: search_and_update + treeherder: + symbol: iris(sau) + session_restore: + name: session_restore + treeherder: + symbol: iris(sr) + themes: + name: themes + treeherder: + symbol: iris(t) + toolbars_window_controls: + name: toolbars_window_controls + treeherder: + symbol: iris(twc) + unit_tests: + name: unit_tests + treeherder: + symbol: iris(ut) + zoom_indicator: + name: zoom_indicator + treeherder: + symbol: iris(zi) diff --git a/taskcluster/ci/l10n-bump/kind.yml b/taskcluster/ci/l10n-bump/kind.yml new file mode 100644 index 0000000000..7bd331c639 --- /dev/null +++ b/taskcluster/ci/l10n-bump/kind.yml @@ -0,0 +1,118 @@ +# 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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release_version_bump:transforms + - 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: false + push: + by-project: + mozilla-(central|beta): true + default: false + source-repo: + by-release-type: + beta: https://hg.mozilla.org/releases/mozilla-beta + default: https://hg.mozilla.org/mozilla-central + 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 + 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/kind.yml b/taskcluster/ci/l10n/kind.yml new file mode 100644 index 0000000000..3bfd84d6d8 --- /dev/null +++ b/taskcluster/ci/l10n/kind.yml @@ -0,0 +1,150 @@ +# 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: taskgraph.loader.multi_dep:loader + +group-by: platform + +transforms: + - taskgraph.transforms.l10n:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - build + - build-signing + - fetch + - repackage + - toolchain + +primary-dependency: build + +only-for-build-platforms: + - linux64-shippable/opt + - linux-shippable/opt + - macosx64-shippable/opt + - win32-shippable/opt + - win64-shippable/opt + +job-template: + description: Localization + 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 + - linux64-liblowercase + fetch: + by-build-platform: + default: [] + win.*: + - nsis-3.01-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 + docker-image: + by-build-platform: + linux.*: {in-tree: debian8-amd64-build} + default: {in-tree: debian10-amd64-build} + 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..e6522e9987 --- /dev/null +++ b/taskcluster/ci/mar-signing-autograph-stage/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.mar_signing:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - repackage + +only-for-build-platforms: + - linux64-shippable/opt + +job-template: + 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..1010899160 --- /dev/null +++ b/taskcluster/ci/mar-signing-l10n/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.mar_signing:transforms + - taskgraph.transforms.task:transforms + +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 + +job-template: + 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..fd512a5b39 --- /dev/null +++ b/taskcluster/ci/mar-signing/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.mar_signing:transforms + - taskgraph.transforms.task:transforms + +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 + +job-template: + 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..12e4be2f29 --- /dev/null +++ b/taskcluster/ci/maybe-release/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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.maybe_release:transforms + - taskgraph.transforms.task:transforms + +job-defaults: + description: Check recent releases and trigger a new ship-it phase if worthwhile. + worker-type: + by-release-level: + production: scriptworker-k8s/gecko-3-shipit + staging: scriptworker-k8s/gecko-1-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..af2d0b0f93 --- /dev/null +++ b/taskcluster/ci/merge-automation/kind.yml @@ -0,0 +1,71 @@ +# 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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.merge_automation:transforms + - 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: [] diff --git a/taskcluster/ci/openh264-plugin/kind.yml b/taskcluster/ci/openh264-plugin/kind.yml new file mode 100644 index 0000000000..eda4e591c7 --- /dev/null +++ b/taskcluster/ci/openh264-plugin/kind.yml @@ -0,0 +1,192 @@ +# 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: taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + +transforms: + - taskgraph.transforms.openh264:transforms + - taskgraph.transforms.job:transforms + - 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: '2e1774ab6dc6c43debb0b5b628bdf122a391d521' + worker: + chain-of-trust: true + +jobs: + linux32/opt: + attributes: + build_platform: linux32 + build_type: opt + treeherder: + platform: linux32/opt + worker-type: b-linux + 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 + linux64/opt: + attributes: + build_platform: linux64 + build_type: opt + treeherder: + platform: linux64/opt + worker-type: b-linux + 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 + macosx64/opt: + attributes: + build_platform: macosx64 + build_type: opt + treeherder: + platform: macosx64/opt + worker-type: b-linux + 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 + tooltool-downloads: internal + fetches: + toolchain: + - linux64-cctools-port + - linux64-clang + - linux64-dump-syms + macosx64-aarch64/opt: + attributes: + build_platform: macosx64-aarch64 + build_type: opt + treeherder: + platform: macosx64-aarch64/opt + worker-type: b-linux + 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-11.0 + win32/opt: + attributes: + build_platform: win32 + build_type: opt + treeherder: + platform: win32/opt + worker-type: b-win2012 + 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-cl + - win64-dump-syms + win64/opt: + attributes: + build_platform: win64 + build_type: opt + treeherder: + platform: win64/opt + worker-type: b-win2012 + 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-cl + - win64-dump-syms + win64-aarch64/opt: + attributes: + build_platform: win64-aarch64 + build_type: opt + treeherder: + platform: win64-aarch64/opt + worker-type: b-win2012 + 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-cl + - win64-dump-syms diff --git a/taskcluster/ci/openh264-signing/kind.yml b/taskcluster/ci/openh264-signing/kind.yml new file mode 100644 index 0000000000..fd4e5c4748 --- /dev/null +++ b/taskcluster/ci/openh264-signing/kind.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/. +--- +loader: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.openh264_signing:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - openh264-plugin diff --git a/taskcluster/ci/packages/kind.yml b/taskcluster/ci/packages/kind.yml new file mode 100644 index 0000000000..06439617c2 --- /dev/null +++ b/taskcluster/ci/packages/kind.yml @@ -0,0 +1,237 @@ +# 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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.try_job:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.cached_tasks:transforms + - taskgraph.transforms.task:transforms + +job-defaults: + treeherder: + kind: build + platform: packages/opt + tier: 1 + worker-type: b-linux + worker: + max-run-time: 1800 + run-on-projects: [] + run: + dist: jessie + snapshot: 20200422T205110Z + +jobs: + deb8-python3.6: + description: "Python 3.6 backport for Debian jessie" + treeherder: + symbol: Deb8(python3.6) + run: + using: debian-package + dsc: + url: http://snapshot.debian.org/archive/debian/20171205T222638Z/pool/main/p/python3.6/python3.6_3.6.3-2.dsc + sha256: d791dd2671127394ce5383e345b2fed9ab2481be65b6c420fa53b2ee18c240ca + patch: python3.6-jessie.diff + pre-build-command: debian/rules control-file + + deb8-python3-defaults: + description: "python3-defaults backport for Debian jessie" + treeherder: + symbol: Deb8(python3-defaults) + run: + using: debian-package + dsc: + # The last version that doesn't also require python 3.7 or a separate python3-distutils package. + url: http://snapshot.debian.org/archive/debian/20171026T221955Z/pool/main/p/python3-defaults/python3-defaults_3.6.3-2.dsc + sha256: df91831a9a307f5e7f3fabdda52f21eeffd2f683cbeca5a581c37c1c0912549d + packages: + - deb8-python3.6 + pre-build-command: debian/rules control-file + + deb8-python-setuptools: + description: "python-setuptools backport for Debian jessie" + treeherder: + symbol: Deb8(python-setuptools) + run: + using: debian-package + dsc: + url: http://snapshot.debian.org/archive/debian/20170413T152542Z/pool/main/p/python-setuptools/python-setuptools_33.1.1-1%7Ebpo8%2B1.dsc + sha256: e5a152e45151ee2d19959d8266e9bff09f5164ee04a0613aeb8f1d7a304fa073 + + deb8-cmake: + description: "Cmake backport for Debian jessie" + treeherder: + symbol: Deb8(cmake) + worker: + env: + DEB_BUILD_PROFILES: stage1 + run: + using: debian-package + dsc: + url: http://snapshot.debian.org/archive/debian/20200320T222820Z/pool/main/c/cmake/cmake_3.16.3-1%7Ebpo9%2B1.dsc + sha256: 714651ac6c974694eb3452f37a70624d3d786ac02fb8ea4eb8fddae44649105d + patch: cmake-jessie.diff + + deb10-cmake: + description: "Cmake backport for Debian buster" + treeherder: + symbol: Deb10(cmake) + run: + using: debian-package + dist: buster + dsc: + url: http://snapshot.debian.org/archive/debian/20200202T210747Z/pool/main/c/cmake/cmake_3.16.3-1.dsc + sha256: ecfa7cbc93dc6a9749022ccd9538843f4a0e2e77a14bb2f87e325aaf3c36b519 + pre-build-command: apt-get install debhelper/buster-backports + + deb8-ninja: + description: "Ninja backport for Debian jessie" + treeherder: + symbol: Deb8(ninja) + run: + using: debian-package + dsc: + url: http://snapshot.debian.org/archive/debian/20160209T042121Z/pool/main/n/ninja-build/ninja-build_1.6.0-1.dsc + sha256: 25cd62b011d669c31bcd51d36d454dd826bc50af6a3af8d87bcab8948ec21626 + + deb8-mercurial: + description: "Modern Mercurial for Debian jessie" + treeherder: + symbol: Deb8(hg) + run: + using: debian-package + tarball: + url: https://www.mercurial-scm.org/release/mercurial-4.8.1.tar.gz + sha256: 48a45f5cde9104fbc2daf310d710d4ebf286d879b89fa327d24b005434b0fa21 + pre-build-command: >- + cp -r contrib/packaging/debian debian && + sed -i -e "s/__VERSION__/$(awk -F\" '$2 {print $2}' mercurial/__version__.py)-1.deb8moz1/" \ + -e "s/__DATE__/$(date --rfc-2822)/" \ + -e "s/__CODENAME__/jessie/" debian/changelog + + deb10-mercurial: + description: "Modern Mercurial for Debian buster" + treeherder: + symbol: Deb10(hg) + run: + using: debian-package + dist: buster + tarball: + url: https://www.mercurial-scm.org/release/mercurial-4.8.1.tar.gz + sha256: 48a45f5cde9104fbc2daf310d710d4ebf286d879b89fa327d24b005434b0fa21 + pre-build-command: >- + cp -r contrib/packaging/debian debian && + sed -i -e "s/__VERSION__/$(awk -F\" '$2 {print $2}' mercurial/__version__.py)-1.deb10moz1/" \ + -e "s/__DATE__/$(date --rfc-2822)/" \ + -e "s/__CODENAME__/stretch/" debian/changelog + + deb8-git: + description: "Modern git for Debian jessie" + treeherder: + symbol: Deb8(git) + run: + using: debian-package + dsc: + url: http://snapshot.debian.org/archive/debian/20160317T100542Z/pool/main/g/git/git_2.8.0%7Erc3-1.dsc + sha256: 6e81a318fb4eb5cca0333b7b6ff0c70dd0097e9fe711b159d5eac4b9f47c6c27 + + deb8-valgrind: + description: "Valgrind for Debian jessie" + treeherder: + symbol: Deb8(valgrind) + run: + using: debian-package + dsc: + url: http://snapshot.debian.org/archive/debian/20200628T204444Z/pool/main/v/valgrind/valgrind_3.16.1-1.dsc + sha256: bd9b1bf5454da3d93d2dfab8de44df0c3aebe0371022c4f00aef6850aa0b4e07 + patch: valgrind-jessie.diff + + deb8-dh-python: + description: "dh-python for Debian jessie" + treeherder: + symbol: Deb8(dh-python) + run: + using: debian-package + dsc: + url: http://snapshot.debian.org/archive/debian/20170125T211752Z/pool/main/d/dh-python/dh-python_2.20170125.dsc + sha256: ef4f2951cea36ae4aac29126a1017505f98b595432fb5bdac0f21b4b4d72c1b4 + packages: + - deb8-python3.6 + - deb8-python3-defaults + + deb8-xz-utils: + description: "xz-utils for Debian jessie" + treeherder: + symbol: Deb8(xz) + run: + using: debian-package + dsc: + url: http://snapshot.debian.org/archive/debian/20161010T223637Z/pool/main/x/xz-utils/xz-utils_5.2.2-1.2.dsc + sha256: 13c8d8d0c243af78dc89b6e2cd670c8d8a2522379e1fcd196957c95d988d5961 + + deb8-32-xz-utils: + description: "xz-utils for Debian jessie 32-bits" + treeherder: + symbol: Deb8-32(xz) + run: + using: debian-package + dsc: + url: http://snapshot.debian.org/archive/debian/20161010T223637Z/pool/main/x/xz-utils/xz-utils_5.2.2-1.2.dsc + sha256: 13c8d8d0c243af78dc89b6e2cd670c8d8a2522379e1fcd196957c95d988d5961 + arch: i386 + + deb8-gdb: + description: "gdb for Debian jessie" + treeherder: + symbol: Deb8(gdb) + run: + using: debian-package + dsc: + url: http://snapshot.debian.org/archive/debian/20170119T152956Z/pool/main/g/gdb/gdb_7.12-6.dsc + sha256: 9727dcb3d6b655e4f2a92110f5db076a490aa50b739804be239905ecff3aacc8 + patch: gdb-jessie.diff + + deb8-python-psutil: + description: "python-psutil rebuild for python 3.6 in Debian jessie" + treeherder: + symbol: Deb8(python-psutil) + run: + using: debian-package + dsc: + url: http://snapshot.debian.org/archive/debian/20150815T034233Z/pool/main/p/python-psutil/python-psutil_2.2.1-3.dsc + sha256: b47d1fc92094dfd5525cff7d0af5855f7c5335ade9de4c0e738ed490aa5bee7c + packages: + - deb8-dh-python + - deb8-python3.6 + - deb8-python3-defaults + + deb8-python-zstandard: + description: "python-zstandard for Debian jessie" + treeherder: + symbol: Deb8(python-zstandard) + run: + using: debian-package + tarball: + url: https://github.com/indygreg/python-zstandard/archive/0.11.1.tar.gz + sha256: 2df90698e22f0da49cdd360438479f363e58eb8c3ac6e8bac84d831cf8e7baf4 + name: python-zstandard + patch: python-zstandard-jessie.diff + packages: + - deb8-dh-python + - deb8-python3.6 + - deb8-python3-defaults + + deb10-python-zstandard: + description: "python-zstandard for Debian buster" + treeherder: + symbol: Deb10(python-zstandard) + run: + using: debian-package + dist: buster + tarball: + url: https://github.com/indygreg/python-zstandard/archive/0.11.1.tar.gz + sha256: 2df90698e22f0da49cdd360438479f363e58eb8c3ac6e8bac84d831cf8e7baf4 + name: python-zstandard + pre-build-command: debchange -v 0.11.1-1.deb10moz --distribution buster "Mozilla backport for buster" diff --git a/taskcluster/ci/partials-signing/kind.yml b/taskcluster/ci/partials-signing/kind.yml new file mode 100644 index 0000000000..e9a651befc --- /dev/null +++ b/taskcluster/ci/partials-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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.mar_signing:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - partials + +job-template: + 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..fc9c90d1cc --- /dev/null +++ b/taskcluster/ci/partials/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.partials:transforms + - taskgraph.transforms.task:transforms + +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 + +job-template: + shipping-phase: promote diff --git a/taskcluster/ci/perftest/android.yml b/taskcluster/ci/perftest/android.yml new file mode 100644 index 0000000000..e27de64a6a --- /dev/null +++ b/taskcluster/ci/perftest/android.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/. +--- + +job-defaults: + fetches: + toolchain: + - linux64-node-10 + - linux64-geckodriver + run: + sparse-profile: perftest + checkout: true + command: >- + cd $GECKO_PATH && + python3 python/mozperftest/mozperftest/runner.py + --on-try + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --output $MOZ_FETCHES_DIR/../artifacts + +hw-g5: + worker-type: t-bitbar-gw-perf-g5 + description: Run ./mach perftest on a G5 + treeherder: + symbol: perftest-g5 + platform: android-hw-g5-7-0-arm7-api-16/opt + +hw-p2: + worker-type: t-bitbar-gw-perf-p2 + description: Run ./mach perftest on a Pixel 2 + treeherder: + symbol: perftest-p2 + platform: android-hw-p2-8-0-android-aarch64/opt + +hw-g5-view-fenix: + worker-type: t-bitbar-gw-perf-g5 + description: Run VIEW perftest on Fenix on a G5 + treeherder: + symbol: perftest(view-fenix) + platform: android-hw-g5-7-0-arm7-api-16/opt + attributes: + cron: true + batch: true + 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 + --perfherder-metrics name:processLaunchToNavStart,shouldAlert:True + --android-install-apk fenix_nightlysim_multicommit_armeabi_v7a + --hooks testing/performance/hooks_android_view.py + --perfherder + --perfherder-app fenix + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --browsertime-iterations 25 + --output $MOZ_FETCHES_DIR/../artifacts + testing/performance/perftest_android_view.js + +hw-p2-view-fenix: + worker-type: t-bitbar-gw-perf-p2 + description: Run VIEW perftest on Fenix on a Pixel2 + treeherder: + symbol: perftest(view-fenix) + platform: android-hw-p2-8-0-android-aarch64/opt + attributes: + cron: true + batch: true + 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 + --perfherder-metrics name:processLaunchToNavStart,shouldAlert:True + --android-install-apk fenix_nightlysim_multicommit_arm64_v8a + --android-activity org.mozilla.fenix.IntentReceiverActivity + --android-clear-logcat + --android-capture-logcat logcat + --android-perf-tuning + --hooks testing/performance/hooks_android_view.py + --perfherder + --perfherder-app fenix + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --browsertime-iterations 25 + --output $MOZ_FETCHES_DIR/../artifacts + testing/performance/perftest_android_view.js + +hw-g5-view-gv: + worker-type: t-bitbar-gw-perf-g5 + description: Run VIEW perftest on GV on a G5 + treeherder: + symbol: perftest(view-gv) + platform: android-hw-g5-7-0-arm7-api-16/opt + attributes: + cron: true + 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 + --perfherder-metrics processLaunchToNavStart + --android-install-apk gve_nightly_api16 + --hooks testing/performance/hooks_android_view.py + --perfherder + --perfherder-app geckoview + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --browsertime-iterations 14 + --output $MOZ_FETCHES_DIR/../artifacts + testing/performance/perftest_android_view.js + +hw-p2-view-gv: + worker-type: t-bitbar-gw-perf-p2 + description: Run VIEW perftest on GV on a Pixel 2 + treeherder: + symbol: perftest(view-gv) + platform: android-hw-p2-8-0-android-aarch64/opt + attributes: + cron: true + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $GECKO_PATH && + python3 python/mozperftest/mozperftest/runner.py + --flavor mobile-browser + --android + --android-clear-logcat + --android-capture-logcat logcat + --android-app-name org.mozilla.geckoview_example + --android-activity org.mozilla.geckoview_example.GeckoViewActivity + --android-perf-tuning + --perfherder-metrics processLaunchToNavStart + --android-install-apk gve_nightly_api16 + --hooks testing/performance/hooks_android_view.py + --perfherder + --perfherder-app geckoview + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --browsertime-iterations 14 + --output $MOZ_FETCHES_DIR/../artifacts + testing/performance/perftest_android_view.js + +hw-g5-main-fenix: + worker-type: t-bitbar-gw-perf-g5 + description: Run main (home activity) perftest on Fenix on a G5 + treeherder: + symbol: perftest(main-fenix) + platform: android-hw-g5-7-0-arm7-api-16/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 .App + --android-clear-logcat + --android-capture-logcat logcat + --androidlog + --androidlog-first-timestamp ".*Start proc.*org\.mozilla\..*\..*App.*" + --androidlog-second-timestamp ".*Fully drawn.*org\.mozilla\..*" + --androidlog-subtest-name "MAIN" + --android-install-apk fenix_nightly_armeabi_v7a + --hooks testing/performance/hooks_android_main.py + --perfherder + --perfherder-app fenix + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --output $MOZ_FETCHES_DIR/../artifacts + --browsertime-iterations 14 + testing/performance/perftest_android_main.js + +hw-p2-main-fenix: + worker-type: t-bitbar-gw-perf-p2 + description: Run main (home activity) perftest on Fenix on a Pixel 2 + treeherder: + symbol: perftest(main-fenix) + platform: android-hw-p2-8-0-android-aarch64/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 .App + --android-clear-logcat + --android-capture-logcat logcat + --android-perf-tuning + --androidlog + --androidlog-first-timestamp ".*Start proc.*org\.mozilla\..*\..*App.*" + --androidlog-second-timestamp ".*Fully drawn.*org\.mozilla\..*" + --androidlog-subtest-name "MAIN" + --android-install-apk fenix_nightly_arm64_v8a + --hooks testing/performance/hooks_android_main.py + --perfherder + --perfherder-app fenix + --browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver + --output $MOZ_FETCHES_DIR/../artifacts + --browsertime-iterations 14 + testing/performance/perftest_android_main.js diff --git a/taskcluster/ci/perftest/kind.yml b/taskcluster/ci/perftest/kind.yml new file mode 100644 index 0000000000..dd2cee31f9 --- /dev/null +++ b/taskcluster/ci/perftest/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: taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + - build + +transforms: + - taskgraph.transforms.perftest:transforms + - taskgraph.transforms.source_test:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +jobs-from: + - android.yml + - linux.yml + - macosx.yml + - windows.yml + +job-defaults: + run-on-projects: [] + treeherder: + kind: other + tier: 3 + worker: + taskcluster-proxy: true + max-run-time: 10800 + env: + USE_ARTIFACT: '1' + 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..e8183d9fb5 --- /dev/null +++ b/taskcluster/ci/perftest/linux.yml @@ -0,0 +1,210 @@ +# 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 + fetches: + toolchain: + - linux64-node-10 + - linux64-geckodriver + build: + - artifact: target.mozinfo.json + - artifact: target.common.tests.tar.gz + - artifact: target.perftests.tests.tar.gz + - artifact: target.xpcshell.tests.tar.gz + - artifact: target.tar.bz2 + platform: linux64-shippable/opt + require-build: + linux64-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.8 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 + +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.8 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.8 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 + +http3: + description: Run HTTP/3 test + treeherder: + symbol: perftest(http3) + attributes: + batch: false + cron: true + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3.8 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 + --verbose + +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] + - [fb-scroll, netwerk/test/perf/perftest_http3_facebook_scroll.js] + - [g-image, netwerk/test/perf/perftest_http3_google_image.js] + - [g-search, netwerk/test/perf/perftest_http3_google_search.js] + - [lq-fetch, netwerk/test/perf/perftest_http3_lucasquicfetch.js] + - [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: {} + fb-scroll: [navigationTiming, pageTimings, resources, firstPaint, timeToContentfulPaint, requestsPerSecond] + 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] + 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] + 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"] + 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.8 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: true + run: + command: >- + mkdir -p $MOZ_FETCHES_DIR/../artifacts && + cd $MOZ_FETCHES_DIR && + python3.8 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 diff --git a/taskcluster/ci/perftest/macosx.yml b/taskcluster/ci/perftest/macosx.yml new file mode 100644 index 0000000000..74aec57a3a --- /dev/null +++ b/taskcluster/ci/perftest/macosx.yml @@ -0,0 +1,221 @@ +# 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-1014 + fetches: + build: + - artifact: target.mozinfo.json + - artifact: target.common.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: macosx64-shippable/opt + require-build: + macosx64-shippable/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 + +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 + cron: true + 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 + --verbose + + +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] + - [fb-scroll, netwerk/test/perf/perftest_http3_facebook_scroll.js] + - [g-image, netwerk/test/perf/perftest_http3_google_image.js] + - [g-search, netwerk/test/perf/perftest_http3_google_search.js] + - [lq-fetch, netwerk/test/perf/perftest_http3_lucasquicfetch.js] + - [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: {} + fb-scroll: [navigationTiming, pageTimings, resources, firstPaint, timeToContentfulPaint, requestsPerSecond] + 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] + 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] + 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"] + 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: true + 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 diff --git a/taskcluster/ci/perftest/windows.yml b/taskcluster/ci/perftest/windows.yml new file mode 100644 index 0000000000..faa718d3d4 --- /dev/null +++ b/taskcluster/ci/perftest/windows.yml @@ -0,0 +1,170 @@ +# 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-hw + fetches: + build: + - artifact: target.perftests.tests.tar.gz + - artifact: target.zip + toolchain: + - win64-node-10 + - win64-geckodriver + platform: win64-shippable/opt + require-build: + win64-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 + +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] + - [fb-scroll, netwerk/test/perf/perftest_http3_facebook_scroll.js] + - [g-image, netwerk/test/perf/perftest_http3_google_image.js] + - [g-search, netwerk/test/perf/perftest_http3_google_search.js] + - [lq-fetch, netwerk/test/perf/perftest_http3_lucasquicfetch.js] + - [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: {} + fb-scroll: [navigationTiming, pageTimings, resources, firstPaint, timeToContentfulPaint, requestsPerSecond] + 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] + 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] + 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"] + 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: true + 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 diff --git a/taskcluster/ci/post-balrog-dummy/kind.yml b/taskcluster/ci/post-balrog-dummy/kind.yml new file mode 100644 index 0000000000..666e330842 --- /dev/null +++ b/taskcluster/ci/post-balrog-dummy/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.per_platform_dummy:transforms + - taskgraph.transforms.reverse_chunk_deps:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - balrog + +job-template: + description: Dummy task to deal with max_dependencies + run-on-projects: [] + shipping-phase: promote + worker-type: succeed + worker: + implementation: 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..6911632ba3 --- /dev/null +++ b/taskcluster/ci/post-beetmover-checksums-dummy/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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.reverse_chunk_deps:transforms + - 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 + worker: + implementation: 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 + worker: + implementation: 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..6fa01db9e1 --- /dev/null +++ b/taskcluster/ci/post-beetmover-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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.per_platform_dummy:transforms + - taskgraph.transforms.reverse_chunk_deps:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - beetmover-checksums + - beetmover-repackage + +job-template: + description: Dummy task to deal with max_dependencies + run-on-projects: [] + shipping-phase: promote + worker-type: succeed + worker: + implementation: 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..829e2c4452 --- /dev/null +++ b/taskcluster/ci/post-langpack-dummy/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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.reverse_chunk_deps:transforms + - 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 + worker: + implementation: 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 + worker: + implementation: 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..23ae10558f --- /dev/null +++ b/taskcluster/ci/post-update-verify-dummy/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.per_platform_dummy:transforms + - taskgraph.transforms.reverse_chunk_deps:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - release-update-verify + +job-template: + description: Dummy task to deal with max_dependencies + run-on-projects: [] + shipping-phase: promote + worker-type: succeed + worker: + implementation: succeed diff --git a/taskcluster/ci/python-dependency-update/kind.yml b/taskcluster/ci/python-dependency-update/kind.yml new file mode 100644 index 0000000000..80e9471313 --- /dev/null +++ b/taskcluster/ci/python-dependency-update/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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.python_update:transforms + - taskgraph.transforms.task:transforms + + +job-defaults: + name: python_dependency_update + description: Update requirements.txt + run-on-projects: [] + treeherder: + kind: build + platform: linux64/opt + tier: 1 + worker-type: b-linux + worker: + implementation: docker-worker + os: linux + docker-image: {in-tree: python-dependency-update} + taskcluster-proxy: true + max-run-time: 2400 + command: + - /runme.sh + artifacts: + - name: 'public/build/requirements.txt.diff' + path: '/home/worker/artifacts/requirements.txt.diff' + type: file + scopes: + - secrets:get:project/releng/gecko/build/level-{level}/arc-phabricator-token + + +jobs: + funsize-update-generator: + treeherder: + symbol: pydep(fug) + worker: + env: + REQUIREMENTS_FILE: "taskcluster/docker/funsize-update-generator/requirements.in" + PYTHON3: "1" + REVIEWERS: "sfraser, bhearsum" diff --git a/taskcluster/ci/release-balrog-scheduling/kind.yml b/taskcluster/ci/release-balrog-scheduling/kind.yml new file mode 100644 index 0000000000..3f89e2141a --- /dev/null +++ b/taskcluster/ci/release-balrog-scheduling/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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release:run_on_releases + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.scriptworker:add_balrog_scopes + - 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] + esr78: [3820] + default: [] + staging: + by-release-type: + beta: [32] + release: [145] + esr78: [887] + 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 + 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 + 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..06dbc314cc --- /dev/null +++ b/taskcluster/ci/release-balrog-submit-toplevel/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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release:run_on_releases + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.scriptworker:add_balrog_scopes + - taskgraph.transforms.balrog_toplevel:transforms + - 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: bouncer-bouncer-releng.stage.mozaws.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"] + esr78: ["firefox-esr78-cdntest", "firefox-esr78-localtest"] + 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"] + 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..b234818294 --- /dev/null +++ b/taskcluster/ci/release-beetmover-push-to-release/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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.beetmover_push_to_release:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - release-generate-checksums-beetmover + - post-update-verify-dummy + +job-defaults: + run-on-projects: [] + shipping-phase: push + +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..04c2cf80b0 --- /dev/null +++ b/taskcluster/ci/release-beetmover-signed-langpacks-checksums/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.beetmover_langpack_checksums:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - release-beetmover-signed-langpacks + +job-template: + shipping-phase: promote + attributes: + artifact_prefix: public + artifact_map: taskcluster/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..8a2a69e37c --- /dev/null +++ b/taskcluster/ci/release-beetmover-signed-langpacks/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.release_beetmover_signed_addons:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - build-signing + - shippable-l10n-signing + +only-for-attributes: + - nightly + - shippable + +only-for-build-platforms: + - linux64-shippable/opt + - linux64-devedition/opt + +job-template: + description: Beetmover submission for platform-independent langpacks {locales} in {platform} directory + 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/taskgraph/manifests/firefox_candidates.yml + default: taskcluster/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..a759038d20 --- /dev/null +++ b/taskcluster/ci/release-beetmover-source-checksums/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.beetmover_source_checksums:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - release-source-checksums-signing + +job-template: + shipping-phase: promote + attributes: + artifact_prefix: public + artifact_map: taskcluster/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..b403405abc --- /dev/null +++ b/taskcluster/ci/release-bouncer-aliases/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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.bouncer_aliases:transforms + - 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 + shipping-product: devedition + treeherder: + platform: devedition-release/opt + + firefox: + bouncer-products-per-alias: + by-project: + mozilla-beta: + firefox-beta-latest-ssl: installer-ssl + firefox-beta-latest: installer + firefox-beta-stub: stub-installer + firefox-beta-msi-latest-ssl: msi + firefox-beta-pkg-latest-ssl: pkg + mozilla-release: + firefox-latest-ssl: installer-ssl + firefox-latest: installer + firefox-stub: stub-installer + firefox-msi-latest-ssl: msi + firefox-pkg-latest-ssl: pkg + mozilla-esr78: + # 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-pkg-latest-ssl: pkg + # mozilla-esrXX: XXX - to uncomment when we branch next ESR + # ... these point to the newer branch + firefox-esr-next-latest-ssl: installer-ssl + firefox-esr-next-latest: installer + firefox-esr-next-msi-latest-ssl: msi + firefox-esr-next-pkg-latest-ssl: pkg + birch: + firefox-latest-ssl: installer-ssl + firefox-latest: installer + firefox-stub: stub-installer + jamun: + firefox-esr-latest-ssl: installer-ssl + firefox-esr-latest: installer + maple: + firefox-beta-latest-ssl: installer-ssl + firefox-beta-latest: installer + firefox-beta-stub: stub-installer + default: {} + partner-bouncer-products-per-alias: + by-project: + mozilla-beta: + partner-firefox-beta-PARTNER-latest: installer + partner-firefox-beta-PARTNER-stub: stub-installer + mozilla-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..1c5e929f26 --- /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: taskgraph.loader.transform:loader + +kind-dependencies: + - release-beetmover-push-to-release + +transforms: + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.bouncer_check:transforms + - taskgraph.transforms.job:transforms + - 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 + 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://bouncer-bouncer-releng.stage.mozaws.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..e33d9f3a1b --- /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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release:run_on_releases + - taskgraph.transforms.bouncer_submission:transforms + - 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'] + 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', 'pkg'] + esr78: ['complete-mar', 'installer', 'installer-ssl', 'partial-mar', 'msi', 'pkg'] + 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..de20280382 --- /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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.release_version_bump:transforms + - 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..7d64666b30 --- /dev/null +++ b/taskcluster/ci/release-eme-free-repack-beetmover-checksums/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.beetmover_emefree_checksums:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - release-eme-free-repack-beetmover + +only-for-build-platforms: + - macosx64-shippable/opt + - win32-shippable/opt + - win64-shippable/opt + +job-template: + 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..b13d5b8395 --- /dev/null +++ b/taskcluster/ci/release-eme-free-repack-beetmover/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.beetmover_repackage_partner:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - release-eme-free-repack-repackage-signing + +only-for-build-platforms: + - macosx64-shippable/opt + - win32-shippable/opt + - win64-shippable/opt + +job-template: + shipping-phase: promote + partner-bucket-scope: + by-release-level: + production: beetmover:bucket:partner + staging: beetmover:bucket:dep-partner + partner-private-path: null + partner-public-path: "{platform}-EME-free/{locale}" diff --git a/taskcluster/ci/release-eme-free-repack-notarization-part-1/kind.yml b/taskcluster/ci/release-eme-free-repack-notarization-part-1/kind.yml new file mode 100644 index 0000000000..12b8c1808d --- /dev/null +++ b/taskcluster/ci/release-eme-free-repack-notarization-part-1/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: taskgraph.loader.multi_dep:loader + +group-by: partner-repack-ids + +transforms: + - taskgraph.transforms.chunk_partners:transforms + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.partner_signing:transforms + - taskgraph.transforms.signing:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - release-eme-free-repack + +only-for-build-platforms: + - macosx64-shippable/opt + +job-template: + shipping-product: firefox + shipping-phase: promote + repacks-per-chunk: 5 diff --git a/taskcluster/ci/release-eme-free-repack-notarization-poller/kind.yml b/taskcluster/ci/release-eme-free-repack-notarization-poller/kind.yml new file mode 100644 index 0000000000..5a2640eda0 --- /dev/null +++ b/taskcluster/ci/release-eme-free-repack-notarization-poller/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.chunk_partners:transforms + - taskgraph.transforms.mac_notarization_poller:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - release-eme-free-repack-notarization-part-1 + +job-template: + description-suffix: 'Mac Notarization Poller' + worker: + implementation: notarization-poller + copy-repack-ids: true 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..c456277764 --- /dev/null +++ b/taskcluster/ci/release-eme-free-repack-repackage-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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.repackage_signing_partner:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - release-eme-free-repack-repackage + +only-for-build-platforms: + - win32-shippable/opt + - win64-shippable/opt + - macosx64-shippable/opt 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..95f0c15ad2 --- /dev/null +++ b/taskcluster/ci/release-eme-free-repack-repackage/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.chunk_partners:transforms + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.repackage_partner:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - release-eme-free-repack + - release-eme-free-repack-signing + - toolchain + +only-for-build-platforms: + - macosx64-shippable/opt + - win32-shippable/opt + - win64-shippable/opt + +job-template: + 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-signing/kind.yml b/taskcluster/ci/release-eme-free-repack-signing/kind.yml new file mode 100644 index 0000000000..253aa51c5e --- /dev/null +++ b/taskcluster/ci/release-eme-free-repack-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: taskgraph.loader.multi_dep:loader + +group-by: partner-repack-ids + +transforms: + - taskgraph.transforms.chunk_partners:transforms + - taskgraph.transforms.partner_signing:transforms + - taskgraph.transforms.signing:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - release-eme-free-repack-notarization-part-1 + - release-eme-free-repack-notarization-poller + +primary-dependency: release-eme-free-repack-notarization-part-1 + +only-for-build-platforms: + - macosx64-shippable/opt + +job-template: + shipping-product: firefox + shipping-phase: promote + max-run-time: 3600 + copy-repack-ids: true 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..0675b8cbb8 --- /dev/null +++ b/taskcluster/ci/release-eme-free-repack/kind.yml @@ -0,0 +1,78 @@ +# 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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.partner_repack:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - build-signing + - shippable-l10n-signing + +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 + 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 + need-xvfb: false + 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..7ae31caa6d --- /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: taskgraph.loader.transform:loader + +kind-dependencies: + - release-bouncer-check + - release-update-verify-config + +transforms: + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.final_verify:transforms + - taskgraph.transforms.job:transforms + - 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 + 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..0db91aae3b --- /dev/null +++ b/taskcluster/ci/release-flatpak-push/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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.release_flatpak_push:transforms + - 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 + 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 + 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..aec4aa0526 --- /dev/null +++ b/taskcluster/ci/release-flatpak-repackage/kind.yml @@ -0,0 +1,64 @@ +# 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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.release_flatpak_repackage:transforms + - 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 + shipping-phase: promote + scopes: [] + treeherder: + platform: linux64-shippable/opt + kind: build + tier: 2 + worker-type: b-linux + 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://net-mozaws-stage-delivery-firefox.s3.amazonaws.com/pub/{task[shipping-product]}/candidates + production: + https://net-mozaws-prod-delivery-firefox.s3.amazonaws.com/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..7f8f34eceb --- /dev/null +++ b/taskcluster/ci/release-generate-checksums-beetmover/kind.yml @@ -0,0 +1,17 @@ +# 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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.release_generate_checksums_beetmover:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - release-generate-checksums-signing + +job-template: + shipping-phase: promote + attributes: + artifact_map: taskcluster/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..8d7fffd8f3 --- /dev/null +++ b/taskcluster/ci/release-generate-checksums-signing/kind.yml @@ -0,0 +1,15 @@ +# 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: taskgraph.loader.single_dep:loader + +kind-dependencies: + - release-generate-checksums + +transforms: + - taskgraph.transforms.release_generate_checksums_signing:transforms + - taskgraph.transforms.task:transforms + +job-template: + 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..480d1abb8c --- /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: taskgraph.loader.transform:loader + +kind-dependencies: + - beetmover-source + - post-beetmover-checksums-dummy + - release-beetmover-signed-langpacks + +transforms: + - taskgraph.transforms.build:transforms + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.release_generate_checksums:transforms + - taskgraph.transforms.job:transforms + - 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 + 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: "net-mozaws-prod-delivery-firefox" + staging: + stage_product: "firefox" + bucket_name: "net-mozaws-stage-delivery-firefox" + 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: "net-mozaws-prod-delivery-archive" + staging: + stage_product: "devedition" + bucket_name: "net-mozaws-stage-delivery-archive" + 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..e5e11ea32e --- /dev/null +++ b/taskcluster/ci/release-mark-as-shipped/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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.release_mark_as_shipped:transforms + - 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: + by-release-level: + production: scriptworker-k8s/gecko-3-shipit + staging: scriptworker-k8s/gecko-1-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-notify-av-announce/kind.yml b/taskcluster/ci/release-notify-av-announce/kind.yml new file mode 100644 index 0000000000..216578fd7b --- /dev/null +++ b/taskcluster/ci/release-notify-av-announce/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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.release_notifications:transforms + - 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 + worker: + implementation: 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..177d9633b9 --- /dev/null +++ b/taskcluster/ci/release-notify-promote/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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.release_notifications:transforms + - 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 + worker: + implementation: 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..0a7eacaa78 --- /dev/null +++ b/taskcluster/ci/release-notify-push/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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.release_notifications:transforms + - 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 + worker: + implementation: 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..ce7855292c --- /dev/null +++ b/taskcluster/ci/release-notify-ship/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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.release_notifications:transforms + - 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 + worker: + implementation: 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..8884b4a039 --- /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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.release_started:transforms + - taskgraph.transforms.job:transforms + - 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 + worker: + docker-image: {in-tree: "debian10-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..2bf4b8f453 --- /dev/null +++ b/taskcluster/ci/release-partner-attribution-beetmover/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.partner_attribution_beetmover:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - release-partner-attribution + +job-template: + shipping-product: firefox + shipping-phase: promote + partner-bucket-scope: + by-release-level: + production: beetmover:bucket:partner + staging: beetmover:bucket:dep-partner + partner-public-path: "partner-repacks/{partner}/{subpartner}/v{release_partner_build_number}/{platform}/{locale}" + partner-private-path: "{partner}/{version}-{build_number}/{subpartner}/{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..56c8dd6844 --- /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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.partner_attribution:transforms + - taskgraph.transforms.job:transforms + - 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 + worker: + docker-image: + in-tree: "partner-repack" + chain-of-trust: true + max-run-time: 1800 + run: + using: mach + mach: python python/mozrelease/mozrelease/partner_attribution.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..d989eb5737 --- /dev/null +++ b/taskcluster/ci/release-partner-repack-beetmover/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.chunk_partners:transforms + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.beetmover_repackage_partner:transforms + - taskgraph.transforms.task:transforms + +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 + +job-template: + shipping-phase: promote + partner-bucket-scope: + by-release-level: + production: beetmover:bucket:partner + staging: beetmover:bucket:dep-partner + partner-public-path: "partner-repacks/{partner}/{subpartner}/v{release_partner_build_number}/{platform}/{locale}" + partner-private-path: "{partner}/{version}-{build_number}/{subpartner}/{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..4a12ebfcd3 --- /dev/null +++ b/taskcluster/ci/release-partner-repack-bouncer-sub/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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release:run_on_releases + - taskgraph.transforms.bouncer_submission_partners:transforms + - 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..fb9b049c98 --- /dev/null +++ b/taskcluster/ci/release-partner-repack-chunking-dummy/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.chunk_partners:transforms + - taskgraph.transforms.name_sanity:transforms + # This transform sets build_platform to the same thing as the upstream task. + # We'd do it here, except single_dep doesn't pay attention to any + # per platform things that we set. + - taskgraph.transforms.copy_attributes_from_dependent_task:transforms + # This transform is needed because task.py doesn't allow "primary-dependency" to be + # set, but the single_dep loader sets it (and we need it for chunk_partners, + # name_sanity, and copy_build_platform_from_dependent_task to work). + - taskgraph.transforms.strip_dependent_task:transforms + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - release-partner-repack + +only-for-build-platforms: + - linux-shippable/opt + - linux64-shippable/opt + +job-template: + 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 + worker: + implementation: succeed diff --git a/taskcluster/ci/release-partner-repack-notarization-part-1/kind.yml b/taskcluster/ci/release-partner-repack-notarization-part-1/kind.yml new file mode 100644 index 0000000000..7067863049 --- /dev/null +++ b/taskcluster/ci/release-partner-repack-notarization-part-1/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: taskgraph.loader.multi_dep:loader + +group-by: partner-repack-ids + +transforms: + - taskgraph.transforms.chunk_partners:transforms + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.partner_signing:transforms + - taskgraph.transforms.signing:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - release-partner-repack + +only-for-build-platforms: + - macosx64-shippable/opt + +job-template: + shipping-product: firefox + shipping-phase: promote + repacks-per-chunk: 5 diff --git a/taskcluster/ci/release-partner-repack-notarization-poller/kind.yml b/taskcluster/ci/release-partner-repack-notarization-poller/kind.yml new file mode 100644 index 0000000000..3784e3ea28 --- /dev/null +++ b/taskcluster/ci/release-partner-repack-notarization-poller/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.chunk_partners:transforms + - taskgraph.transforms.mac_notarization_poller:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - release-partner-repack-notarization-part-1 + +job-template: + description-suffix: 'Mac Notarization Poller' + worker: + implementation: notarization-poller + copy-repack-ids: true 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..0a0722fb50 --- /dev/null +++ b/taskcluster/ci/release-partner-repack-repackage-signing/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.chunk_partners:transforms + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.repackage_signing_partner:transforms + - taskgraph.transforms.task:transforms + +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 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..d6dfdb8f73 --- /dev/null +++ b/taskcluster/ci/release-partner-repack-repackage/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.chunk_partners:transforms + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.repackage_partner:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - release-partner-repack + - release-partner-repack-signing + - toolchain + +only-for-build-platforms: + - macosx64-shippable/opt + - win32-shippable/opt + - win64-shippable/opt + - win64-aarch64-shippable/opt + +job-template: + 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-signing/kind.yml b/taskcluster/ci/release-partner-repack-signing/kind.yml new file mode 100644 index 0000000000..598f4b9b93 --- /dev/null +++ b/taskcluster/ci/release-partner-repack-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: taskgraph.loader.multi_dep:loader + +group-by: partner-repack-ids + +transforms: + - taskgraph.transforms.chunk_partners:transforms + - taskgraph.transforms.partner_signing:transforms + - taskgraph.transforms.signing:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - release-partner-repack-notarization-part-1 + - release-partner-repack-notarization-poller + +primary-dependency: release-partner-repack-notarization-part-1 + +only-for-build-platforms: + - macosx64-shippable/opt + +job-template: + shipping-product: firefox + shipping-phase: promote + max-run-time: 3600 + copy-repack-ids: true diff --git a/taskcluster/ci/release-partner-repack/kind.yml b/taskcluster/ci/release-partner-repack/kind.yml new file mode 100644 index 0000000000..e58a4d868c --- /dev/null +++ b/taskcluster/ci/release-partner-repack/kind.yml @@ -0,0 +1,84 @@ +# 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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.partner_repack:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - build-signing + - shippable-l10n-signing + +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 + 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 + need-xvfb: false + 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..97b6f29cc7 --- /dev/null +++ b/taskcluster/ci/release-push-langpacks/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.release_sign_and_push_langpacks:transforms + - taskgraph.transforms.task:transforms + +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 + + +job-template: + description: Sends {locales} XPIs for platform to addons.mozilla.org + worker-type: + by-release-level: + production: scriptworker-k8s/gecko-3-addon + staging: scriptworker-k8s/gecko-1-addon + worker: + implementation: push-addons + 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..a31020871e --- /dev/null +++ b/taskcluster/ci/release-secondary-balrog-scheduling/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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.scriptworker:add_balrog_scopes + - 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"] + 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..d6ac7ed988 --- /dev/null +++ b/taskcluster/ci/release-secondary-balrog-submit-toplevel/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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.scriptworker:add_balrog_scopes + - taskgraph.transforms.balrog_toplevel:transforms + - 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: bouncer-bouncer-releng.stage.mozaws.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"] + 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..99cc58b492 --- /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: taskgraph.loader.transform:loader + +kind-dependencies: + - post-balrog-dummy + - post-beetmover-dummy + - release-secondary-balrog-submit-toplevel + - release-secondary-update-verify-config + +transforms: + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.final_verify:transforms + - taskgraph.transforms.job:transforms + - 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 + 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..d49ee941e2 --- /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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.release_flatpak_push:transforms + - 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 + 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: + by-release-type: + release-rc: "beta" + default: "mock" + +jobs: + firefox-rc: + shipping-product: 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..1e11d26a75 --- /dev/null +++ b/taskcluster/ci/release-secondary-notify-ship/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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.release_notifications:transforms + - 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 + worker: + implementation: 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]} 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-secondary-snap-push/kind.yml b/taskcluster/ci/release-secondary-snap-push/kind.yml new file mode 100644 index 0000000000..cefd21c646 --- /dev/null +++ b/taskcluster/ci/release-secondary-snap-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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.release_snap_push:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - release-snap-repackage + +job-defaults: + description: Pushes (Ubuntu) Snaps onto Snap Store + run-on-projects: [] # to make sure this never runs as part of CI + shipping-phase: ship # ship-rc phase + treeherder: + platform: linux64/opt + kind: build + tier: 2 + worker-type: + by-release-level: + production: scriptworker-k8s/gecko-3-pushsnap + staging: scriptworker-k8s/gecko-1-pushsnap + worker: + implementation: push-snap + channel: + by-release-type: + release-rc: "beta" + default: "mock" + +jobs: + firefox-rc: + shipping-product: firefox + treeherder: + symbol: Snap(push-beta) 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..25b68a18ea --- /dev/null +++ b/taskcluster/ci/release-secondary-update-verify-config/kind.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/. +--- +loader: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.update_verify_config:transforms + - taskgraph.transforms.job:transforms + - 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 + 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: + by-platform: + win64-aarch64.*: "67.0b2" + default: "56.0b3" + 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..d2c7a8d4c5 --- /dev/null +++ b/taskcluster/ci/release-secondary-update-verify/kind.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/. +--- +loader: taskgraph.loader.transform:loader + +kind-dependencies: + - post-balrog-dummy + - post-beetmover-dummy + - release-secondary-balrog-submit-toplevel + - release-secondary-update-verify-config + +transforms: + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.update_verify:transforms + - taskgraph.transforms.job:transforms + - 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 + 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: 12 + +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 diff --git a/taskcluster/ci/release-snap-push/kind.yml b/taskcluster/ci/release-snap-push/kind.yml new file mode 100644 index 0000000000..131698c59c --- /dev/null +++ b/taskcluster/ci/release-snap-push/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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.release_snap_push:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - release-snap-repackage + +job-defaults: + description: Pushes (Ubuntu) Snaps onto Snap Store + run-on-projects: [] # to make sure this never runs as part of CI + shipping-phase: push + treeherder: + platform: linux64/opt + kind: build + tier: 2 + worker-type: + by-release-level: + production: scriptworker-k8s/gecko-3-pushsnap + staging: scriptworker-k8s/gecko-1-pushsnap + worker: + implementation: push-snap + channel: + by-release-type: + beta: beta + release: candidate + esr78: esr/stable + # esrXX: esr/candidate + default: mock + +jobs: + firefox: + shipping-product: firefox + treeherder: + symbol: Snap(push) diff --git a/taskcluster/ci/release-snap-repackage/kind.yml b/taskcluster/ci/release-snap-repackage/kind.yml new file mode 100644 index 0000000000..653278282a --- /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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.release_snap_repackage:transforms + - 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 + 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://net-mozaws-stage-delivery-firefox.s3.amazonaws.com/pub/{task[shipping-product]}/candidates + production: + https://net-mozaws-prod-delivery-firefox.s3.amazonaws.com/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..74b2b052f1 --- /dev/null +++ b/taskcluster/ci/release-source-checksums-signing/kind.yml @@ -0,0 +1,16 @@ +# 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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.source_checksums_signing:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - beetmover-source + +job-template: + shipping-phase: promote diff --git a/taskcluster/ci/release-source-signing/kind.yml b/taskcluster/ci/release-source-signing/kind.yml new file mode 100644 index 0000000000..7122a4ba84 --- /dev/null +++ b/taskcluster/ci/release-source-signing/kind.yml @@ -0,0 +1,17 @@ +# 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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.build_signing:transforms + - taskgraph.transforms.signing:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - release-source + +job-template: + 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..9faa31c8c7 --- /dev/null +++ b/taskcluster/ci/release-source/kind.yml @@ -0,0 +1,55 @@ +# 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: taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + +transforms: + - taskgraph.transforms.build:transforms + - taskgraph.transforms.build_attrs:transforms + - taskgraph.transforms.build_lints:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + + +job-defaults: + shipping-phase: promote + treeherder: + symbol: Src + worker-type: b-linux + 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 + need-xvfb: false + 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..60143eca36 --- /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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release:run_on_releases + - taskgraph.transforms.update_verify_config:transforms + - taskgraph.transforms.job:transforms + - 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: [esr78] + shipping-phase: promote + worker-type: b-linux + 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: esr78-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..46f22e8abb --- /dev/null +++ b/taskcluster/ci/release-update-verify-config/kind.yml @@ -0,0 +1,306 @@ +# 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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.update_verify_config:transforms + - taskgraph.transforms.job:transforms + - 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 + 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 + # This is overridden for devedition to exclude 58.0b1 + # because of the special case added by + # https://bugzilla.mozilla.org/show_bug.cgi?id=1419189 + # The devedition override can be removed after 58.0b1 + # is behind a watershed + include-version: + by-release-type: + beta: beta + release(-rc)?: nonbeta + esr.*: esr + default: beta + last-watershed: + by-release-type: + beta: + by-platform: + win64-aarch64.*: "67.0b2" + default: "56.0b3" + release(-rc)?: "72.0.2" + esr78: "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" + include-version: devedition_hack + + 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" + include-version: devedition_hack + + 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" + include-version: devedition_hack + + 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" + include-version: devedition_hack + + 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" + include-version: devedition_hack + + 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" + include-version: devedition_hack 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..dadca76f7c --- /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: taskgraph.loader.transform:loader + +kind-dependencies: + - post-balrog-dummy + - post-beetmover-dummy + - release-balrog-submit-toplevel + - release-update-verify-config-next + +transforms: + - taskgraph.transforms.release:run_on_releases + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.update_verify:transforms + - taskgraph.transforms.job:transforms + - 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: [esr78] + shipping-phase: promote + worker-type: b-linux + 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: UV(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..40ae9e0b46 --- /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: taskgraph.loader.transform:loader + +kind-dependencies: + - post-balrog-dummy + - post-beetmover-dummy + - release-balrog-submit-toplevel + - release-update-verify-config + +transforms: + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.update_verify:transforms + - taskgraph.transforms.job:transforms + - 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 + 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(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..f581ad99f7 --- /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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release_deps:transforms + - taskgraph.transforms.release_version_bump:transforms + - 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-l10n/kind.yml b/taskcluster/ci/repackage-l10n/kind.yml new file mode 100644 index 0000000000..1efc0948a6 --- /dev/null +++ b/taskcluster/ci/repackage-l10n/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.repackage_l10n:transforms + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.repackage:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - shippable-l10n-signing + - 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 + +job-template: + worker-type: 'b-linux' + worker: + docker-image: {"in-tree": "debian8-amd64-build"} + 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-release-type: + esr.*: + by-build-platform: + linux.*: [mar] + linux4\b.*: [mar] + macosx64\b.*: [mar, dmg] + win32\b.*: [mar, installer] + win64\b.*: [mar, installer] + default: + by-build-platform: + linux.*: [mar] + linux4\b.*: [mar] + macosx64\b.*: [mar, dmg] + win32\b.*: [mar, installer] + win64\b.*: [mar, installer] + fetches: + toolchain: + - linux64-mar-tools + - linux64-upx diff --git a/taskcluster/ci/repackage-msi/kind.yml b/taskcluster/ci/repackage-msi/kind.yml new file mode 100644 index 0000000000..8575333858 --- /dev/null +++ b/taskcluster/ci/repackage-msi/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.repackage:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - repackage-signing + - repackage-signing-l10n + - fetch + +only-for-build-platforms: + - win32-shippable/opt + - win64-shippable/opt + - win32-devedition/opt + - win64-devedition/opt + +job-template: + worker-type: 'b-win2012' + 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-signing-l10n/kind.yml b/taskcluster/ci/repackage-signing-l10n/kind.yml new file mode 100644 index 0000000000..6010a9797e --- /dev/null +++ b/taskcluster/ci/repackage-signing-l10n/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.repackage_signing:transforms + - taskgraph.transforms.repackage_routes:transforms + - taskgraph.transforms.task:transforms + +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 diff --git a/taskcluster/ci/repackage-signing-msi/kind.yml b/taskcluster/ci/repackage-signing-msi/kind.yml new file mode 100644 index 0000000000..fa84b7c119 --- /dev/null +++ b/taskcluster/ci/repackage-signing-msi/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.repackage_signing:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - repackage-msi + +only-for-build-platforms: + - win32-shippable/opt + - win32-devedition/opt + - win32/opt + - win64-shippable/opt + - win64-devedition/opt + - win64/opt diff --git a/taskcluster/ci/repackage-signing/kind.yml b/taskcluster/ci/repackage-signing/kind.yml new file mode 100644 index 0000000000..25ce11746e --- /dev/null +++ b/taskcluster/ci/repackage-signing/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.repackage_signing:transforms + - taskgraph.transforms.repackage_routes:transforms + - taskgraph.transforms.task:transforms + +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 diff --git a/taskcluster/ci/repackage/kind.yml b/taskcluster/ci/repackage/kind.yml new file mode 100644 index 0000000000..e06ca483b6 --- /dev/null +++ b/taskcluster/ci/repackage/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.repackage:transforms + - taskgraph.transforms.repackage_routes:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - build-signing + - 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 + - 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 + +job-template: + worker-type: 'b-linux' + worker: + docker-image: {"in-tree": "debian8-amd64-build"} + 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-release-type: + esr.*: + by-build-platform: + linux.*: [mar] + linux4\b.*: [mar] + macosx64\b.*: [mar, dmg] + win32\b.*: [mar, installer] + win64\b.*: [mar, installer] + default: + by-build-platform: + linux.*: [mar] + linux4\b.*: [mar] + macosx64\b.*: [mar, dmg] + 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..0131589a6c --- /dev/null +++ b/taskcluster/ci/repo-update/kind.yml @@ -0,0 +1,70 @@ +# 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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.repo_update:transforms + - 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: "" + 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 + worker: + implementation: docker-worker + os: linux + docker-image: {in-tree: periodic-updates} + max-run-time: 18000 # Takes 4+ hours + env: + PRODUCT: firefox + REVIEWERS: "ryanvm" + 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 + 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..5b3735a8d7 --- /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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.scriptworker_canary:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +job-defaults: + treeherder: + platform: firefox-release/opt + tier: 1 + kind: build + worker-type: b-linux + 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..45afdf8008 --- /dev/null +++ b/taskcluster/ci/searchfox/kind.yml @@ -0,0 +1,193 @@ +# 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: taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + - fetch + +transforms: + - taskgraph.transforms.build:transforms + - taskgraph.transforms.build_attrs:transforms + - taskgraph.transforms.build_lints:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +job-defaults: + index: + product: firefox + treeherder: + symbol: Searchfox(idx) + kind: build + tier: 2 + run-on-projects: [] + optimization: null + +jobs: + linux64-searchfox/debug: + description: "Linux64 Debug Searchfox" + index: + job-name: linux64-searchfox-debug + treeherder: + platform: linux64/debug + worker-type: b-linux + worker: + max-run-time: 36000 + env: + PERFHERDER_EXTRA_OPTIONS: searchfox + RUSTC_BOOTSTRAP: "1" + 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-binutils + - linux64-clang + - linux64-nasm + - linux64-node + - linux64-rust + - linux64-cbindgen + - linux64-dump-syms + - linux64-lucetc + - wasi-sysroot + + 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 + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 36000 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-releng.manifest" + PERFHERDER_EXTRA_OPTIONS: searchfox + RUSTC_BOOTSTRAP: "1" + 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 + tooltool-downloads: internal + keep-artifacts: false + fetches: + toolchain: + - linux64-binutils + - linux64-cctools-port + - linux64-clang-macosx-cross + - linux64-hfsplus + - linux64-libdmg + - linux64-llvm-dsymutil + - linux64-nasm + - linux64-node + - linux64-rust-macos + - linux64-cbindgen + - linux64-dump-syms + - linux64-lucetc + - wasi-sysroot + + win64-searchfox/debug: + description: "Win64 Searchfox Debug (clang-cl)" + index: + job-name: win64-searchfox-debug + treeherder: + platform: windows2012-64/debug + worker-type: b-linux + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 36000 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest" + PERFHERDER_EXTRA_OPTIONS: searchfox + RUSTC_BOOTSTRAP: "1" + 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 + tooltool-downloads: internal + extra-config: + mozconfig_platform: win64 + env: + LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so" + LOWERCASE_DIRS: "/builds/worker/checkouts/gecko/vs2017_15.8.4" + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang-win-cross + - linux64-rust-cross + - linux64-rust-size + - linux64-nasm + - linux64-node + - linux64-cbindgen + - linux64-sccache + - linux64-dump-syms + - linux64-wine + - linux64-liblowercase + - linux64-winchecksec + fetch: + - nsis-3.01-win + - upx-3.95-win + + android-armv7-searchfox/debug: + description: "Android ARMv7 Debug Searchfox" + index: + job-name: android-armv7-searchfox-debug + treeherder: + platform: android-4-0-armv7-api16/debug + worker-type: b-linux + worker: + docker-image: {in-tree: android-build} + max-run-time: 36000 + env: + PERFHERDER_EXTRA_OPTIONS: searchfox + RUSTC_BOOTSTRAP: "1" + 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: api-16-debug-searchfox + tooltool-downloads: internal + use-sccache: true + fetches: + toolchain: + - android-gradle-dependencies + - android-ndk-linux + - android-sdk-linux + - linux64-clang + - linux64-rust-android + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + - linux64-sccache + - linux64-nasm + - linux64-node diff --git a/taskcluster/ci/shippable-l10n-notarization-part-1/kind.yml b/taskcluster/ci/shippable-l10n-notarization-part-1/kind.yml new file mode 100644 index 0000000000..7902ece383 --- /dev/null +++ b/taskcluster/ci/shippable-l10n-notarization-part-1/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: taskgraph.loader.multi_dep:loader + +group-by: chunk-locales + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.shippable_l10n_signing:transforms + - taskgraph.transforms.signing:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - shippable-l10n + +only-for-build-platforms: + - macosx64-shippable/opt + - macosx64-devedition/opt + +job-template: + treeherder: + symbol: BN + attributes: + shipping_phase: promote diff --git a/taskcluster/ci/shippable-l10n-notarization-poller/kind.yml b/taskcluster/ci/shippable-l10n-notarization-poller/kind.yml new file mode 100644 index 0000000000..2ad47a06f7 --- /dev/null +++ b/taskcluster/ci/shippable-l10n-notarization-poller/kind.yml @@ -0,0 +1,17 @@ +# 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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.mac_notarization_poller:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - shippable-l10n-notarization-part-1 + +job-template: + description-suffix: 'Mac Notarization Poller' + worker: + implementation: notarization-poller diff --git a/taskcluster/ci/shippable-l10n-signing/kind.yml b/taskcluster/ci/shippable-l10n-signing/kind.yml new file mode 100644 index 0000000000..a57c4c19e6 --- /dev/null +++ b/taskcluster/ci/shippable-l10n-signing/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: taskgraph.loader.multi_dep:loader + +group-by: chunk-locales + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.upstream_artifact_task:transforms + - taskgraph.transforms.shippable_l10n_signing:transforms + - taskgraph.transforms.signing:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - shippable-l10n + - shippable-l10n-notarization-part-1 + - shippable-l10n-notarization-poller + +primary-dependency: + - shippable-l10n + +only-for-attributes: + - shippable + - nightly diff --git a/taskcluster/ci/shippable-l10n/kind.yml b/taskcluster/ci/shippable-l10n/kind.yml new file mode 100644 index 0000000000..9aab453f1d --- /dev/null +++ b/taskcluster/ci/shippable-l10n/kind.yml @@ -0,0 +1,207 @@ +# 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: taskgraph.loader.multi_dep:loader + +group-by: platform + +transforms: + - taskgraph.transforms.l10n:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - build + - build-signing + - fetch + - repackage + - toolchain + +primary-dependency: build + +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 + +job-template: + description: Localization + 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: + by-build-platform: + default: 900 + win.*: 1800 + fetches: + toolchain: + by-build-platform: + default: [] + macosx64.*: + - linux64-libdmg + - linux64-hfsplus + win.*: + - linux64-wine + - linux64-liblowercase + fetch: + by-build-platform: + default: [] + win.*: + - nsis-3.01-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 + docker-image: + by-build-platform: + linux.*: {in-tree: debian8-amd64-build} + default: {in-tree: debian10-amd64-build} + 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/source-test/clang.yml b/taskcluster/ci/source-test/clang.yml new file mode 100644 index 0000000000..f390bc472e --- /dev/null +++ b/taskcluster/ci/source-test/clang.yml @@ -0,0 +1,118 @@ +# 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 only on try and code-review tasks + # to avoid running clang tools on the whole codebase + run-on-projects: [] + platform: linux64/opt + attributes: + code-review: true + worker-type: + by-platform: + linux64.*: t-linux-xlarge-source + 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-clang + - linux64-rust + - linux64-cbindgen + - linux64-nasm + - linux64-node + when: + # Extension list from https://hg.mozilla.org/mozilla-central/file/default/python/mozbuild/mozbuild/mach_commands.py#l1664 + files-changed: + - '**/*.c' + - '**/*.cpp' + - '**/*.cc' + - '**/*.cxx' + - '**/*.m' + - '**/*.mm' + - '**/*.h' + - '**/*.hh' + - '**/*.hpp' + - '**/*.hxx' + +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-tidy + 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: + 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-tidy + 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-tidy-external + worker: + artifacts: + - type: file + name: public/code-review/clang-tidy.json + path: /builds/worker/clang-tidy.json + +non-unified: + description: Run syntax test for non-unified build on C/C++ files. + treeherder: + symbol: cpp(non-unified) + tier: 1 + attributes: + code-review: false + run-on-projects: ['integration'] + run: + cwd: '{checkout}' + command: >- + source taskcluster/scripts/misc/source-test-clang-setup.sh && + taskcluster/scripts/misc/source-test-clang-non-unified.sh + fetches: + toolchain: + - linux64-clang-tidy diff --git a/taskcluster/ci/source-test/codeql.yml b/taskcluster/ci/source-test/codeql.yml new file mode 100644 index 0000000000..92843560be --- /dev/null +++ b/taskcluster/ci/source-test/codeql.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/. +--- +javascript: + description: Builds a JavaScript codeql database + platform: codeql/all + treeherder: + kind: other + symbol: linux64-js + tier: 2 + worker-type: b-linux-xlarge + expires-after: 4 days + worker: + docker-image: {in-tree: debian8-amd64-build} + max-run-time: 86400 + artifacts: + - type: file + name: public/codeql/codeql-db-javascript.tar.xz + path: /builds/worker/codeql-db-javascript.tar.xz + run: + using: run-task + cwd: '{checkout}' + command: >- + taskcluster/scripts/misc/generate-codeql-db-javascript.sh + run-on-projects: [] + shipping-phase: ship + shipping-product: firefox + fetches: + fetch: + - codeql-2.0.3 + toolchain: + - linux64-node + notifications: + subject: '{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]} linux64 codeql-javascript status' + message: '{task[shipping-product]} {release_config[version]} build{release_config[build_number]}/{config[params][project]} linux64 codeql-javascript status' + status-types: + - on-completed + - on-failed + - on-exception + emails: + by-project: + mozilla-release: ["tom@mozilla.com", "freddy@mozilla.com"] + try: ["{config[params][owner]}"] + default: [] diff --git a/taskcluster/ci/source-test/coverity.yml b/taskcluster/ci/source-test/coverity.yml new file mode 100644 index 0000000000..3e1d91305c --- /dev/null +++ b/taskcluster/ci/source-test/coverity.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: + # Run only on try and code-review tasks + # to avoid running Coverity SA on the whole codebase + run-on-projects: [] + platform: linux64/opt + worker-type: + by-platform: + linux64.*: b-linux + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 5400 + treeherder: + kind: other + tier: 2 + run: + using: run-task + tooltool-downloads: public + fetches: + toolchain: + - linux64-clang-10 + - linux64-rust + - linux64-cbindgen + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + when: + # Extension list from https://hg.mozilla.org/mozilla-central/file/default/python/mozbuild/mozbuild/mach_commands.py#l1664 + files-changed: + - '**/*.c' + - '**/*.cpp' + - '**/*.cc' + - '**/*.cxx' + - '**/*.m' + - '**/*.mm' + - '**/*.h' + - '**/*.hh' + - '**/*.hpp' + - '**/*.hxx' + +coverity: + description: Run static-analysis (Coverity) on C/C++ patches + attributes: + code-review: true + treeherder: + symbol: cpp(coverity) + run: + cwd: '{checkout}' + command: >- + source taskcluster/scripts/misc/source-test-clang-setup.sh && + ./mach --log-no-times static-analysis check-coverity --outgoing --output $HOME/coverity.json + scopes: + - secrets:get:project/relman/coverity + worker: + artifacts: + - type: file + name: public/code-review/coverity.json + path: /builds/worker/coverity.json + - type: file + name: public/code-review/coverity-orig.json + path: /builds/worker/workspace/coverity/cov-results.json + +coverity-full-analysis: + description: Run Coverity based static-analysis on the entire Gecko repo + treeherder: + symbol: Static-Analysis(coverity-full-analysis) + worker-type: + by-platform: + linux64.*: b-linux-xlarge + run-on-projects: [] + run: + cwd: '{checkout}' + command: >- + source taskcluster/scripts/misc/source-test-clang-setup.sh && + ./mach --log-no-times static-analysis check-coverity --full-build + scopes: + - secrets:get:project/relman/coverity + worker: + max-run-time: 14400 + when: + files-changed: + - '**/*.c' + - '**/*.cpp' + - '**/*.cc' + - '**/*.cxx' + - '**/*.m' + - '**/*.mm' + - '**/*.h' + - '**/*.hh' + - '**/*.hpp' + - '**/*.hxx' + - '**/*.py' + - '**/*.js' 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..0c87b5d23d --- /dev/null +++ b/taskcluster/ci/source-test/doc.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/. +--- +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 + artifacts: + - type: file + name: public/docs.tar.gz + path: /builds/worker/checkouts/gecko/docs-out/main.tar.gz + run: + using: mach + mach: doc --outdir docs-out --no-open --no-serve --archive + 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] + worker-type: t-linux-xlarge-source + worker: + docker-image: {in-tree: "lint"} + max-run-time: 1800 + taskcluster-proxy: true + artifacts: + - type: file + name: public/firefox-source-docs-url.txt + path: /builds/worker/firefox-source-docs-url.txt + run: + using: mach + mach: doc --upload --no-open --no-serve --write-url /builds/worker/firefox-source-docs-url.txt + 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..d6063f742c --- /dev/null +++ b/taskcluster/ci/source-test/file-metadata.yml @@ -0,0 +1,144 @@ +# 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 + index: + product: source + job-name: source-bugzilla-info + run: + mach: file-info bugzilla-automation /builds/worker/artifacts + worker: + max-run-time: 2700 + run-on-projects: ['mozilla-central'] + when: + files-changed: + - "**" + +test-info-fission: + description: Generate test manifest metadata for tests disabled on fission + treeherder: + symbol: test-info(fission) + tier: 2 + index: + product: source + job-name: test-info-fission + worker: + docker-image: {in-tree: debian8-amd64-build} + run-on-projects: ['mozilla-central'] + fetches: + toolchain: + - linux64-clang + - linux64-clang-tidy + - linux64-rust + - linux64-cbindgen + - linux64-nasm + - linux64-node + 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='(?<!!)fission' --output-file /builds/worker/artifacts/test-info-fission.json + +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: debian8-amd64-build} + run-on-projects: ['mozilla-central'] + fetches: + toolchain: + - linux64-clang + - linux64-clang-tidy + - linux64-rust + - linux64-cbindgen + - linux64-nasm + - linux64-node + 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: debian8-amd64-build} + run-on-projects: ['mozilla-central'] + fetches: + toolchain: + - linux64-clang + - linux64-clang-tidy + - linux64-rust + - linux64-cbindgen + - linux64-nasm + - linux64-node + 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: debian8-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 + run: + using: run-task + cwd: '{checkout}' + command: >- + source taskcluster/scripts/misc/source-test-common.sh && + ./mach test-info report --show-tests --show-summary --show-activedata --verbose --output-file /builds/worker/artifacts/test-info-all-tests.json && + ./mach test-info report --show-annotations --output-file /builds/worker/artifacts/test-info-manifest-conditions.json diff --git a/taskcluster/ci/source-test/infer.yml b/taskcluster/ci/source-test/infer.yml new file mode 100644 index 0000000000..17924c190d --- /dev/null +++ b/taskcluster/ci/source-test/infer.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: + # Run only on try and code-review tasks + # to avoid running infer on the whole codebase + run-on-projects: [] + platform: linux64/opt + attributes: + code-review: true + worker-type: + by-platform: + linux64.*: t-linux-xlarge-source + worker: + docker-image: {in-tree: android-build} + max-run-time: 5400 + treeherder: + kind: other + tier: 2 + run: + using: run-task + tooltool-downloads: public + fetches: + toolchain: + - linux64-infer + - linux64-android-sdk-linux-repack + - linux64-android-ndk-linux-repack + - linux64-rust-android + - linux64-clang + - linux64-cbindgen + - linux64-nasm + - linux64-node + when: + files-changed: + - 'mobile/**/*.java' + +infer: + description: Run static-analysis (infer) on Java patches + treeherder: + symbol: java(infer) + run: + cwd: '{checkout}' + command: >- + source taskcluster/scripts/misc/source-test-infer-setup.sh && + ./mach --log-no-times configure && + ./mach --log-no-times static-analysis check-java --outgoing --output $HOME/infer.json + + worker: + artifacts: + - type: file + name: public/code-review/infer.json + path: /builds/worker/infer.json diff --git a/taskcluster/ci/source-test/jsshell.yml b/taskcluster/ci/source-test/jsshell.yml new file mode 100644 index 0000000000..5c48390a9f --- /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 + 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..943c147b72 --- /dev/null +++ b/taskcluster/ci/source-test/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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.try_job:transforms + - taskgraph.transforms.source_test:transforms + - taskgraph.transforms.release_notifications:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - fetch + - toolchain + - build + +jobs-from: + - clang.yml + - codeql.yml + - coverity.yml + - cram.yml + - doc.yml + - file-metadata.yml + - infer.yml + - jsshell.yml + - mozlint.yml + - mozlint-android.yml + - node.yml + - python.yml + - remote.yml + - shadow-scheduler.yml + - webidl.yml + - wpt-manifest.yml + - wpt-metadata.yml + +job-defaults: + attributes: + retrigger: true diff --git a/taskcluster/ci/source-test/mozlint-android.yml b/taskcluster/ci/source-test/mozlint-android.yml new file mode 100644 index 0000000000..600d211a54 --- /dev/null +++ b/taskcluster/ci/source-test/mozlint-android.yml @@ -0,0 +1,100 @@ +# 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-api-16/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/compileWithGeckoBinariesDebugJavaWithJavac/classes/api.txt + type: file + - name: public/android/geckoview/apilint-result.json + path: /builds/worker/checkouts/gecko/obj-firefox/gradle/build/mobile/android/geckoview/intermediates/javac/withGeckoBinariesDebug/compileWithGeckoBinariesDebugJavaWithJavac/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 && + ./mach --log-no-times lint -f treeherder -f json:/builds/worker/mozlint.json + --linter android-api-lint + --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-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..7f2cd207ed --- /dev/null +++ b/taskcluster/ci/source-test/mozlint.yml @@ -0,0 +1,465 @@ +# 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 + env: + RUSTFMT: /build/rust/bin/rustfmt + RUSTUP_HOME: /build/rust + CARGO_HOME: /build/rust + CLANG_FORMAT: /builds/worker/fetches/clang-tidy/bin/clang-format + 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' + - '**/*.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' + - '**/*.xml' + - '**/*.html' + - '**/*.xhtml' + - '**/*.cpp' + - '**/*.c' + - '**/*.h' + - '**/*.configure' + - '**/*.py' + - '**/*.properties' + - '**/*.rst' + - '**/*.ftl' + - 'tools/lint/rejected-words.yml' + +cpp-virtual-final: + description: lint C++ virtual function declarations + treeherder: + symbol: cpp(Cvf) + run: + mach: lint -v -l cpp-virtual-final -f treeherder -f json:/builds/worker/mozlint.json * + when: + files-changed: + - '**/*.cpp' + - '**/*.h' + - '**/*.mm' + - 'tools/lint/cpp-virtual-final.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 && + 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 * + when: + files-changed: + # Files that are likely audited. + - '**/*.js' + - '**/*.jsm' + - '**/*.jsx' + - '**/*.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/**' + +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' + - '**/*.js' + - '**/*.jsm' + - '**/*.jsx' + - '**/*.m' + - '**/*.mm' + - '**/*.properties' + - '**/*.py' + - '**/*.rs' + - '**/*.svg' + - '**/*.xhtml' + - '**/*.xml' + - '**/*.xul' + - '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' + - 'mobile/android/app/mobile.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' + +py-compat: + description: lint for python 2/3 compatibility issues + treeherder: + symbol: py(py-compat) + run: + mach: lint -v -l py2 -l py3 -f treeherder -f json:/builds/worker/mozlint.json * + when: + files-changed: + - '**/*.py' + - '**/.flake8' + - 'tools/lint/py2.yml' + - 'tools/lint/py3.yml' + +py-flake8: + description: flake8 run over the gecko codebase + treeherder: + symbol: py(f8) + run: + mach: lint -v -l flake8 -f treeherder -f json:/builds/worker/mozlint.json * + when: + files-changed: + - '**/*.py' + - '**/.flake8' + - 'tools/lint/flake8.yml' + # moz.configure files are also Python files. + - '**/*.configure' + +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/flake8.yml' + +py-pylint: + description: pylint run over the gecko codebase + treeherder: + symbol: py(pylint) + run: + mach: lint -v -l pylint -f treeherder -f json:/builds/worker/mozlint.json * + when: + files-changed: + - '**/*.py' + - 'tools/lint/pylint.yml' + # moz.configure files are also Python files + # However, pylint has some hard time dealing with it + +test-manifest: + description: lint test manifests + treeherder: + symbol: misc(tm) + run: + mach: lint -v -l test-disable -f treeherder -f json:/builds/worker/mozlint.json * + when: + files-changed: + - '**/*.ini' + - '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: text(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: text(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' + fetches: + toolchain: + - linux64-clang-tidy + + +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' + + +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 * + when: + files-changed: + - '**/*.rs' + - '**/Cargo.toml' + - 'tools/lint/clippy.yml' + + +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' + - '**/*.ftl' + - '**/*.h' + - '**/*.html' + - '**/*.properties' + - '**/*.py' + - '**/*.rs' + - '**/*.xhtml' + - 'tools/lint/file-whitespace.yml' + + +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: + - '**/*.c' + - '**/*.cc' + - '**/*.cpp' + - '**/*.h' + - '**/*.html' + - '**/*.js' + - '**/*.jsm' + - '**/*.jsx' + - '**/*.m' + - '**/*.mm' + - '**/*.rs' + - '**/*.xhtml' + - '**/*.xml' + - '**/*.xul' + - 'tools/lint/file-perm.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/ + when: + files-changed: + - '**/perftest.ini' + - 'python/mozperftest/**' + - 'testing/**/*.ini' + - 'testing/**/*.yml' + - 'testing/**/*.rst' + - 'tools/lint/perfdocs.yml' diff --git a/taskcluster/ci/source-test/node.yml b/taskcluster/ci/source-test/node.yml new file mode 100644 index 0000000000..fb0b216b39 --- /dev/null +++ b/taskcluster/ci/source-test/node.yml @@ -0,0 +1,116 @@ +# 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/browser/components/newtab && + npm install && + node bin/try-runner.js + when: + files-changed: + - "browser/components/newtab/**" + +debugger-tests: + description: devtools debugger unit tests and flow type checks + platform: linux1804-64/opt + attributes: + code-review: true + treeherder: + symbol: node(debugger) + 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}' + command: > + npm install && + cd devtools/client/debugger/ && + yarn && + node bin/try-runner.js + when: + files-changed: + - 'devtools/client/debugger/**' + +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 + run: + using: run-task + cache-dotcache: true + cwd: '{checkout}' + command: > + npm install && + cd devtools/client/bin/ && + node devtools-node-test-runner.js --suite=aboutdebugging && + node devtools-node-test-runner.js --suite=accessibility && + node devtools-node-test-runner.js --suite=application && + node devtools-node-test-runner.js --suite=compatibility && + node devtools-node-test-runner.js --suite=framework && + node devtools-node-test-runner.js --suite=netmonitor && + node devtools-node-test-runner.js --suite=performance && + node devtools-node-test-runner.js --suite=shared_components && + node devtools-node-test-runner.js --suite=webconsole + when: + files-changed: + - 'devtools/client/**' + - 'devtools/shared/**' + +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/python.yml b/taskcluster/ci/source-test/python.yml new file mode 100644 index 0000000000..fb2848e7fd --- /dev/null +++ b/taskcluster/ci/source-test/python.yml @@ -0,0 +1,553 @@ +# 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: true + worker-type: + by-platform: + linux1804-64.*: t-linux-xlarge-source + macosx1014-64.*: t-osx-1014 + windows10-64.*: t-win10-64-source + worker: + by-platform: + linux1804-64.*: + docker-image: {in-tree: "lint"} + max-run-time: 3600 + env: + RUSTFMT: /build/rust/bin/rustfmt + RUSTUP_HOME: /build/rust + CARGO_HOME: /build/rust + CLANG_FORMAT: /builds/worker/fetches/clang-tidy/bin/clang-format + default: + max-run-time: 3600 + treeherder: + kind: test + tier: 2 + run: + using: mach + when: + files-changed: + - 'config/mozunit/**' + - 'python/mach_commands.py' + +firefox-ci: + description: taskcluster/taskgraph unit tests + python-version: [3] + treeherder: + symbol: ci + run: + using: python-test + subsuite: ci + when: + files-changed: + - 'taskcluster/ci/**' + - 'taskcluster/**/*.py' + - 'tools/tryselect/selectors/auto.py' + +fog: + description: Python unit tests for Firefox on Glean + platform: + - linux1804-64/opt + - macosx1014-64/opt + - windows10-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 + - macosx1014-64/opt + - windows10-64/opt + python-version: [2, 3] + treeherder: + symbol: mach + run: + using: python-test + subsuite: mach + when: + files-changed: + - 'python/mach/**' + +marionette-harness: + description: testing/marionette/harness unit tests + platform: + - linux1804-64/opt + - windows10-64/opt + python-version: [2] + 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' + - 'testing/mozbase/packages.txt' + +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: py2(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 && + python2 ./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 + - macosx1014-64/opt + - windows10-64/opt + python-version: [2, 3] + treeherder: + symbol: mb + run: + using: python-test + subsuite: mozbase + when: + files-changed: + - 'testing/mozbase/**' + +mozharness: + description: mozharness integration tests + treeherder: + symbol: py2(mh) + run: + using: run-task + cache-dotcache: true + cwd: '{checkout}/testing/mozharness' + command: > + /usr/local/bin/tox -e py27-hg5.2 + when: + files-changed: + - 'testing/mozharness/**' + +mozharness-py3: + 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 py36-hg5.2 + when: + files-changed: + - 'testing/mozharness/**' + +mozlint: + description: python/mozlint unit tests + platform: + - linux1804-64/opt + - macosx1014-64/opt + - windows10-64/opt + python-version: [3] + treeherder: + symbol: mozlint + run: + using: python-test + subsuite: mozlint + fetches: + toolchain: + by-platform: + linux1804-64/opt: + - linux64-clang-tidy + - linux64-node + macosx1014-64/opt: + - macosx64-clang-tidy + - macosx64-node + windows10-64/opt: + - win64-clang-tidy + - win64-node + when: + files-changed: + - 'python/mozlint/**' + - 'tools/lint/**' + +mozrelease: + description: python/mozrelease unit tests + python-version: [2, 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 + - windows10-64/opt + python-version: [2, 3] + treeherder: + symbol: term + run: + using: python-test + subsuite: mozterm + when: + files-changed: + - 'python/mozterm/**' + +mozversioncontrol: + description: python/mozversioncontrol unit tests + python-version: [2, 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 + - macosx1014-64/opt + - windows10-64/opt + python-version: [2, 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: py2(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 && + python2 ./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/taskgraph unit tests + python-version: [2, 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 + - windows10-64/opt + python-version: [3] + treeherder: + symbol: try + run: + using: python-test + subsuite: try + when: + files-changed: + - 'taskcluster/ci/test/**' + - 'taskcluster/taskgraph/transforms/**' + - 'tools/tryselect/**' + +mozbuild: + description: mozbuild unit tests + platform: + - linux1804-64/opt + - macosx1014-64/opt + - windows10-64/opt + python-version: [2, 3] + treeherder: + symbol: mbu + run: + using: python-test + subsuite: mozbuild + fetches: + toolchain: + by-platform: + linux1804-64/opt: + - linux64-node-10 + macosx1014-64/opt: + - macosx64-node-10 + windows10-64/opt: + - win64-node-10 + 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 + - macosx1014-64/opt + - windows10-64/opt + treeherder: + symbol: mpu + run: + mach: perftest-test + fetches: + toolchain: + by-platform: + linux1804-64/opt: + - linux64-node-10 + macosx1014-64/opt: + - macosx64-node-10 + windows10-64/opt: + - win64-node-10 + when: + files-changed: + - 'testing/performance/**' + - 'python/mozperftest/**' + +condprof: + description: testing/condprofile unit tests + platform: + - linux1804-64/opt + - macosx1014-64/opt + - windows10-64/opt + python-version: [2] + 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 + - windows10-64/opt + python-version: [2, 3] + treeherder: + symbol: fg + run: + using: python-test + subsuite: featuregates + fetches: + toolchain: + by-platform: + linux1804-64/opt: + - linux64-node-10 + windows10-64/opt: + - win64-node-10 + when: + files-changed: + - 'toolkit/components/featuregates/**' + +talos: + description: testing/talos unit tests + platform: windows10-64/opt + python-version: [2] + 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 && + python2 ./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 + - macosx1014-64/opt + - windows10-64/opt + python-version: [2] + treeherder: + symbol: tp + run: + using: python-test + subsuite: telemetry-python + fetches: + toolchain: + by-platform: + linux1804-64/opt: + - linux64-node-10 + macosx1014-64/opt: + - macosx64-node-10 + windows10-64/opt: + - win64-node-10 + when: + files-changed: + - 'toolkit/components/telemetry/**' + +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/ds/tools/**' + - 'xpcom/ds/test/**' + - 'xpcom/idl-parser/**' diff --git a/taskcluster/ci/source-test/remote.yml b/taskcluster/ci/source-test/remote.yml new file mode 100644 index 0000000000..1d6882cd60 --- /dev/null +++ b/taskcluster/ci/source-test/remote.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/. +--- +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: 2 + worker-type: t-linux-xlarge-source + worker: + docker-image: {in-tree: ubuntu1804-test} + max-run-time: 1800 + artifacts: + - type: file + name: public/remote/results.json + path: /builds/worker/results.json + - type: file + name: public/remote/pup_errorsummary.json + path: /builds/worker/pup_errorsummary.json + - type: file + name: public/remote/pup_raw.log + path: /builds/worker/pup_raw.log + optimization: + skip-unless-expanded: null + +puppeteer: + description: Puppeteer tests against Firefox CDP-based remote protocol + run-on-projects: ["trunk"] + treeherder: + symbol: remote(pup) + run: + using: run-task + command: > + cd $GECKO_PATH/ && + $MOZ_FETCHES_DIR/firefox/firefox --screenshot http://example.org && + ./mach puppeteer-test -vv --binary $MOZ_FETCHES_DIR/firefox/firefox --headless --write-results /builds/worker/results.json --log-tbpl - --log-errorsummary /builds/worker/pup_errorsummary.json --log-raw /builds/worker/pup_raw.log + +puppeteer-fis: + description: Puppeteer tests against Firefox CDP-based remote protocol with Fission (site isolation) turned on + run-on-projects: [] + treeherder: + symbol: remote(pup-fis) + run: + using: run-task + command: > + cd $GECKO_PATH/ && + ./mach puppeteer-test -vv --binary $MOZ_FETCHES_DIR/firefox/firefox --headless --enable-fission --write-results /builds/worker/results.json --log-tbpl - --log-errorsummary /builds/worker/pup_errorsummary.json --log-raw /builds/worker/pup_raw.log diff --git a/taskcluster/ci/source-test/shadow-scheduler.yml b/taskcluster/ci/source-test/shadow-scheduler.yml new file mode 100644 index 0000000000..702c869afe --- /dev/null +++ b/taskcluster/ci/source-test/shadow-scheduler.yml @@ -0,0 +1,167 @@ +# 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'] + 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: 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: 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: 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: 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: 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: 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: taskgraph.optimize:experimental.bugbug_disperse_reduced_medium + +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: 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: 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: 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: 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: 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: taskgraph.optimize:experimental.bugbug_reduced_high 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..3d2a02218a --- /dev/null +++ b/taskcluster/ci/source-test/wpt-metadata.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/. +--- +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' diff --git a/taskcluster/ci/spidermonkey/kind.yml b/taskcluster/ci/spidermonkey/kind.yml new file mode 100644 index 0000000000..59f2e89397 --- /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: taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + +transforms: + - taskgraph.transforms.spidermonkey:transforms + - taskgraph.transforms.build_attrs:transforms + - taskgraph.transforms.build_lints:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +job-defaults: + attributes: + retrigger: true + treeherder: + kind: build + tier: 1 + index: + product: firefox + worker-type: b-linux + 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/rust/** + - 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-win2012: + - win64-clang-cl + - win64-rust + default: + - linux64-clang + - linux64-gcc + - linux64-rust + - linux64-dump-syms + +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..805fa99be2 --- /dev/null +++ b/taskcluster/ci/spidermonkey/linux.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: + max-run-time: 36000 + docker-image: {in-tree: debian8-amd64-build} + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/linux64/jsshell.manifest" + MOZ_AUTOMATION_UPLOAD: "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 + +sm-mozjs-sys-linux64/debug: + description: "Build js/src as the mozjs_sys Rust crate" + index: + job-name: sm-mozjs-sys-linux64-debug + treeherder: + platform: linux64/debug + symbol: SM(mozjs-crate) + run: + using: spidermonkey-mozjs-crate + spidermonkey-variant: plaindebug + run-on-projects: ['integration', 'release'] + +sm-rust-bindings-linux64/debug: + description: "Build and test the Rust bindings for SpiderMonkey" + index: + job-name: sm-rust-bindings-linux64-debug + treeherder: + symbol: SM(rust) + tier: 2 + platform: linux64/debug + worker: + docker-image: {in-tree: debian8-mozjs-rust-build} + run: + using: spidermonkey-rust-bindings + spidermonkey-variant: plaindebug + run-on-projects: ['integration', 'release'] + +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 + +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 + +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 + fetches: + toolchain: + - linux64-clang + - linux64-gcc + - linux64-rust + - linux64-cbindgen + - linux64-dump-syms + run-on-projects: ['mozilla-central'] + +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 + fetches: + toolchain: + - linux64-clang + - linux64-gcc + - linux64-rust + - linux64-cbindgen + - linux64-dump-syms + run-on-projects: ['mozilla-central'] + +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 + +sm-arm-sim-linux32/debug: + description: "Spidermonkey ARM sim" + index: + job-name: sm-arm-sim-linux32-debug + treeherder: + platform: linux32/debug + symbol: SM(arm) + worker: + docker-image: {in-tree: debian8-i386-build} + run: + spidermonkey-variant: arm-sim + +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 + +sm-arm64-sim-cranelift-linux64/debug: + description: "Spidermonkey ARM64 sim with Cranelift Wasm backend" + index: + job-name: sm-arm64-sim-cranelift-linux64-debug + treeherder: + platform: linux64/debug + symbol: SM(arm64cl) + run: + spidermonkey-variant: arm64-cranelift-sim + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-gcc + - linux64-rust + - linux64-rust-size + - linux64-cbindgen + - linux64-dump-syms + run-on-projects: ['mozilla-central'] + +sm-asan-linux64/opt: + description: "Spidermonkey Address Sanitizer" + index: + job-name: sm-asan-linux64-opt + treeherder: + symbol: SM(asan) + platform: linux64/opt + worker: + env: + MOZ_AUTOMATION_UPLOAD: "1" + run: + spidermonkey-variant: asan + fetches: + toolchain: + - linux64-clang + - linux64-gcc + - linux64-rust + - linux64-dump-syms + - linux64-llvm-symbolizer + +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 + +sm-msan-linux64/opt: + description: "Spidermonkey Memory Sanitizer" + index: + job-name: sm-msan-linux64-opt + treeherder: + symbol: SM(msan) + platform: linux64/opt + tier: 3 + worker: + env: + MOZ_AUTOMATION_UPLOAD: "1" + run: + spidermonkey-variant: msan + # Disable by default by allow try pushes to explicitly request. + run-on-projects: [] + +sm-tsan-linux64/opt: + description: "Spidermonkey Thread Sanitizer" + index: + job-name: sm-tsan-linux64-opt + treeherder: + symbol: SM(tsan) + platform: linux64/opt + worker: + env: + MOZ_AUTOMATION_UPLOAD: "1" + run: + spidermonkey-variant: tsan + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-rust-nightly + - linux64-dump-syms + - linux64-llvm-symbolizer + +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 + +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-gcc + - linux64-rust + - linux64-cbindgen + - linux64-dump-syms + +sm-fuzzing-linux64/opt: + description: "Spidermonkey Fuzzing" + index: + job-name: sm-fuzzing-linux64 + treeherder: + platform: linux64/opt + symbol: SM(f) + worker: + env: + MOZ_AUTOMATION_UPLOAD: "1" + run: + spidermonkey-variant: fuzzing + fetches: + toolchain: + - linux64-clang + - linux64-gcc + - linux64-rust + - linux64-dump-syms + - linux64-llvm-symbolizer + +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 diff --git a/taskcluster/ci/spidermonkey/windows.yml b/taskcluster/ci/spidermonkey/windows.yml new file mode 100644 index 0000000000..51c522a176 --- /dev/null +++ b/taskcluster/ci/spidermonkey/windows.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: + worker-type: b-win2012 + worker: + max-run-time: 36000 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest" + run: + tooltool-downloads: internal + +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-clang-cl + - win64-rust + +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-clang-cl + - win64-rust + worker: + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/releng.manifest" + +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-clang-cl + - win64-rust + +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-clang-cl + - win64-rust + worker: + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/releng.manifest" + +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-clang-cl + - win64-rust + +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-clang-cl + - win64-rust + worker: + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/releng.manifest" diff --git a/taskcluster/ci/static-analysis-autotest/kind.yml b/taskcluster/ci/static-analysis-autotest/kind.yml new file mode 100644 index 0000000000..52c78390c9 --- /dev/null +++ b/taskcluster/ci/static-analysis-autotest/kind.yml @@ -0,0 +1,102 @@ +# 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: taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + +transforms: + - taskgraph.transforms.build_attrs:transforms + - taskgraph.transforms.build_lints:transforms + - taskgraph.transforms.job:transforms + - 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 + 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-infer + - linux64-rust + - linux64-sccache + - linux64-cbindgen + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + + 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-win2012 + worker: + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest" + run: + config: + - builds/releng_base_firefox.py + - builds/taskcluster_base_windows.py + - builds/taskcluster_base_win64.py + - builds/taskcluster_sub_win64/debug.py + tooltool-downloads: internal + extra-config: + mozconfig_variant: debug + use-sccache: true + fetches: + toolchain: + - win64-clang-cl + - win64-rust + - win64-sccache + - win64-cbindgen + - win64-clang-tidy + - win64-nasm + - win64-node + - win64-dump-syms + - win64-winchecksec diff --git a/taskcluster/ci/system-symbols-upload/kind.yml b/taskcluster/ci/system-symbols-upload/kind.yml new file mode 100644 index 0000000000..301297f6a9 --- /dev/null +++ b/taskcluster/ci/system-symbols-upload/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.upload_symbols:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - system-symbols + +job-template: + description: Upload Symbols + attributes: + cron: true + worker-type: b-linux + worker: + docker-image: {in-tree: "lint"} + max-run-time: 900 + 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 <build/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..a7a92bff08 --- /dev/null +++ b/taskcluster/ci/system-symbols/kind.yml @@ -0,0 +1,70 @@ +# 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: taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + - fetch + +transforms: + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +job-defaults: + attributes: + cron: true + # This enables uploading symbols. + enable-full-crashsymbols: true + treeherder: + platform: symbols/opt + kind: other + tier: 2 + worker-type: b-linux + +jobs: + mac: + description: Extract macOS system symbols found in crashreports + 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 + win: + description: Extract windows system symbols found in crashreports + 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 + fetches: + toolchain: + - linux64-dump-syms diff --git a/taskcluster/ci/test/awsy.yml b/taskcluster/ci/test/awsy.yml new file mode 100644 index 0000000000..ea50703abb --- /dev/null +++ b/taskcluster/ci/test/awsy.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/. +--- +job-defaults: + suite: awsy + max-run-time: 7200 + instance-size: xlarge + virtualization: + by-test-platform: + windows10-64(?:-shippable)?-qr/.*: virtual-with-gpu + windows10-64/.*: 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 + fission-tier: + by-test-platform: + linux1804-64(?!-shippable).*: 3 + windows10-64(-qr)?/opt: 3 + default: 2 + run-on-projects: + by-test-platform: + .*-devedition/.*: [] # don't run on devedition + windows7-32.*/opt: [] + (linux|windows10|mac)(?!.*shippable).*/opt: [] + default: ['integration', 'mozilla-central', 'mozilla-beta', 'mozilla-release'] + test-manifest-loader: null # don't load tests in the taskgraph + fission-run-on-projects: + by-test-platform: + linux1804-64-shippable-qr/opt: ['mozilla-central'] + windows10-64-shippable-qr/opt: ['mozilla-central'] + default: [] + + +awsy: + description: "Are we slim yet" + treeherder-symbol: SY(sy) + +awsy-tp6: + description: "Are we slim yet - tp6 pageset" + variants: ["fission"] + treeherder-symbol: SY(sy-tp6) + run-on-projects: + by-test-platform: + .*-ccov.*/.*: [] # don't run on coverage + .*-devedition/.*: [] # don't run on devedition + windows7-32.*/opt: [] + (linux|windows10|mac)(?!.*shippable)(?!.*ccov).*/opt: [] + default: ['integration', 'mozilla-central', 'mozilla-beta', 'mozilla-release'] + 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) + 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..1111f85168 --- /dev/null +++ b/taskcluster/ci/test/browsertime-desktop.yml @@ -0,0 +1,151 @@ +# 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 + .*-ref-hw-2017/.*: 3600 + default: 1800 + suite: raptor + run-on-projects: + by-test-platform: + linux.*shippable[^-qr].*: ['mozilla-central'] + default: [] + test-manifest-loader: null # don't load tests in the taskgraph + tier: 3 + fission-tier: 3 + virtualization: + by-test-platform: + windows10-64-ccov.*/.*: virtual + default: hardware + mozharness: + script: raptor_script.py + config: + by-test-platform: + macosx.*: + - raptor/mac_config.py + windows.*: + - raptor/windows_config.py + windows10-64-ccov.*/.*: + - raptor/windows_vm_config.py + linux64-ccov.*/.*: + - raptor/linux64_config_taskcluster.py + default: + - raptor/linux_config.py + extra-options: + - --browsertime + - --no-conditioned-profile + fission-run-on-projects: [] + +browsertime-tp6: + description: "Raptor (browsertime) tp6 page-load tests" + raptor-test: tp6 + raptor-subtests: + - amazon + - apple + - [bing-search, bing] + - ebay + - [facebook, fb] + - [facebook-redesign, fbr] + - fandom + - [google-docs, gdocs] + - [google-mail, gmail] + - [google-search, gsearch] + - [google-sheets, gsheets] + - [google-slides, gslides] + - imdb + - imgur + - instagram + - linkedin + - microsoft + - netflix + - office + - outlook + - paypal + - pinterest + - reddit + - tumblr + - twitch + - twitter + - wikipedia + - yahoo-mail + - yahoo-news + - yandex + - youtube + tier: + by-app: + firefox: + by-subtest: + amazon: 1 + google-mail: 1 + google-slides: 1 + imgur: 1 + tumblr: 1 + twitch: 1 + twitter: 1 + default: 2 + default: 3 + apps: ['firefox', 'chrome', 'chromium'] + variants: + by-app: + firefox: ['fission'] + default: [] + pageload: cold + fission-tier: 2 + fission-run-on-projects: ["mozilla-central"] + run-on-projects: + by-app: + firefox: + by-test-platform: + (linux|windows|macos)(?!.*shippable).*: [] + linux.*shippable.*: ["trunk", "mozilla-beta"] + macos.*shippable.*: ["trunk", "mozilla-beta"] + default: [] + default: [] + limit-platforms: + by-app: + chrome: + - linux.*shippable[^-qr].* + - macosx1014-64-shippable-qr/opt + chromium: + # Run on non-QR shippable, but test-platforms.yml doesn't have + # any more non-QR macosx shippable things. So for macosx we want + # to run it on shippable-qr, otherwise there's nothing running + # this on macosx at all. + - .*shippable[^-qr].* + - macosx1014-64-shippable-qr/opt + default: [] + treeherder-symbol: Btime(tp6) + max-run-time: 4000 + run-visual-metrics: true + mozharness: + extra-options: + - --chimera + +browsertime-speedometer: + description: "Raptor (browsertime) Speedometer on Firefox" + raptor-test: speedometer + variants: ["fission"] + apps: ["firefox"] + treeherder-symbol: Btime(sp) + +browsertime-ares6: + description: "Raptor (browsertime) ares6 on Firefox" + raptor-test: raptor-ares6 + variants: ["fission"] + apps: ["firefox"] + treeherder-symbol: Btime(ares6) + +browsertime-tp6-profiling: + description: "Raptor (browsertime) tp6 page-load tests with Gecko Profiling" + raptor-test: tp6 + raptor-subtests: ['amazon'] + apps: ['firefox'] + pageload: 'both' + treeherder-symbol: Btime-Prof(tp6) + max-run-time: 4000 + mozharness: + extra-options: + - --gecko-profile diff --git a/taskcluster/ci/test/browsertime-mobile.yml b/taskcluster/ci/test/browsertime-mobile.yml new file mode 100644 index 0000000000..3a1440d810 --- /dev/null +++ b/taskcluster/ci/test/browsertime-mobile.yml @@ -0,0 +1,426 @@ +# 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 + run-on-projects: + by-app: + refbrow: [] + fennec: [] + default: + by-test-platform: + android-hw-p2-.*aarch64.*/pgo: ["mozilla-central"] + android-hw-p2-.*aarch64-shippable/opt: ["mozilla-central"] + default: [] + webrender-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.v2.fenix.nightly.latest.arm64-v8a + name: build/arm64-v8a/target.apk + default: + index: mobile.v2.fenix.nightly.latest.armeabi-v7a + name: build/armeabi-v7a/target.apk + fennec: + by-test-platform: + android-hw-p2-8-0-android-aarch64.*: + index: gecko.v2.mozilla-esr68.signed-nightly.nightly.latest.mobile.android-aarch64-release-opt + name: build/target.apk + default: + index: gecko.v2.mozilla-esr68.signed-nightly.nightly.latest.mobile.android-api-16-release-opt + name: build/target.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 + e10s: true + virtualization: hardware + activity: + by-app: + fenix: org.mozilla.fenix.IntentReceiverActivity + geckoview: org.mozilla.geckoview_example.GeckoViewActivity + fennec: org.mozilla.gecko.BrowserApp + refbrow: org.mozilla.reference.browser.BrowserTestActivity + default: None + binary-path: + by-app: + fenix: org.mozilla.fenix + geckoview: org.mozilla.geckoview_example + fennec: org.mozilla.firefox + refbrow: org.mozilla.reference.browser.raptor + default: None + mozharness: + script: raptor_script.py + config: + - raptor/android_hw_config.py + extra-options: + - --browsertime + # Bug 1635749, disable window recorder temporarily + - --browsertime-no-ffwindowrecorder + - --no-conditioned-profile + optimization: + skip-unless-backstop: null + variants: + by-app: + chrome-m: [] + fennec: [] + default: ["webrender"] + +browsertime-tp6m: + description: "Raptor (browsertime) tp6 page-load tests on android" + raptor-test: tp6m + raptor-subtests: + by-app: + chrome-m: + - amazon + - youtube + default: + - allrecipes + - amazon + - [amazon-search, amazon-s] + - bbc + - bing + - [bing-search-restaurants, bing-s-r] + - booking + - cnn + - [cnn-ampstories, cnn-amp] + - [ebay-kleinanzeigen, ebay-k] + - [ebay-kleinanzeigen-search, ebay-k-s] + - espn + - facebook + - [facebook-cristiano, fb-cris] + - google + - [google-maps, gmaps] + - [google-search-restaurants, gsearch-r] + - instagram + - imdb + - jianshu + - [microsoft-support, micros-sup] + - reddit + - [stackoverflow, stacko] + - web-de + - wikipedia + - youtube + - [youtube-watch, youtube-w] + apps: ["geckoview", "fenix", "fennec", "chrome-m", "refbrow"] + tier: + by-raptor-test: + amazon: + by-app: + fenix: 1 + geckoview: 1 + refbrow: 2 + fennec: 2 + default: 3 + default: + by-app: + geckoview: 1 + refbrow: 2 + fennec: 2 + default: 3 + webrender-run-on-projects: + by-raptor-test: + amazon: + by-app: + fenix: [] + chrome-m: [] + fennec: [] + geckoview: + by-pageload: + cold: + by-test-platform: + &android-cold-settings + android-hw-g5-7-0-arm7-api-16-shippable/opt: ['trunk', 'mozilla-beta'] + android-hw-p2-8-0-android-aarch64-shippable/opt: ['trunk', 'mozilla-beta'] + default: [] + warm: + by-test-platform: + &android-warm-settings + android-hw-g5-7-0-arm7-api-16-shippable/opt: ['mozilla-central'] + android-hw-p2-8-0-android-aarch64-shippable/opt: ['mozilla-central'] + default: [] + default: + by-test-platform: + android-hw-p2-.*aarch64-shippable/opt: ["mozilla-central"] + default: [] + youtube: + by-app: + fenix: [] + chrome-m: [] + refbrow: [] + fennec: [] + geckoview: + by-pageload: + cold: + by-test-platform: *android-cold-settings + warm: + by-test-platform: *android-warm-settings + default: + by-test-platform: + android-hw-p2-.*aarch64-shippable/opt: ["mozilla-central", "try"] + default: [] + default: + by-pageload: + cold: + by-app: + geckoview: + by-test-platform: *android-cold-settings + default: [] + warm: + by-app: + geckoview: + by-test-platform: *android-warm-settings + default: [] + run-on-projects: + by-app: + geckoview: + by-subtest: + allrecipes: + by-pageload: + cold: + by-test-platform: *android-cold-settings + warm: + by-test-platform: *android-warm-settings + amazon-search: + by-pageload: + cold: + by-test-platform: *android-cold-settings + warm: + by-test-platform: *android-warm-settings + espn: + by-pageload: + cold: + by-test-platform: *android-cold-settings + warm: + by-test-platform: *android-warm-settings + facebook: + by-pageload: + cold: + by-test-platform: *android-cold-settings + warm: + by-test-platform: *android-warm-settings + google: + by-pageload: + cold: + by-test-platform: *android-cold-settings + warm: + by-test-platform: *android-warm-settings + microsoft-support: + by-pageload: + cold: + by-test-platform: *android-cold-settings + warm: + by-test-platform: *android-warm-settings + youtube-watch: + by-pageload: + cold: + by-test-platform: *android-cold-settings + warm: + by-test-platform: *android-warm-settings + default: [] + default: [] + pageload: cold + run-visual-metrics: true + treeherder-symbol: Btime(tp6m) + mozharness: + extra-options: + - --chimera + +browsertime-youtube-playback-mobile: + description: "Browsertime YouTube Playback on Android" + treeherder-symbol: Btime(ytp) + raptor-subtests: + by-test-platform: + android-hw-g5.*: + - [youtube-playback-h264-sfr, ytp-h264-sfr] + - [youtube-playback-hfr, ytp-hfr] + - [youtube-playback-widevine-h264-sfr, ytp-widevine-h264-sfr] + - [youtube-playback-widevine-hfr, ytp-widevine-hfr] + android-hw-p2.*: + - [youtube-playback-h264-sfr, ytp-h264-sfr] + - [youtube-playback-hfr, ytp-hfr] + - [youtube-playback-vp9-sfr, ytp-vp9-sfr] + - [youtube-playback-widevine-h264-sfr, ytp-widevine-h264-sfr] + - [youtube-playback-widevine-hfr, ytp-widevine-hfr] + - [youtube-playback-widevine-vp9-sfr, ytp-widevine-vp9-sfr] + apps: ["fenix", "geckoview", "refbrow"] + webrender-run-on-projects: + by-app: + geckoview: + by-test-platform: + android-hw-g5-7-0-arm7-api-16-shippable/opt: ["mozilla-central"] + android-hw-p2-8-0-android-aarch64-shippable/opt: ["mozilla-central"] + default: [] + default: [] + 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-g5.*: # 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" + android-hw-p2.*: # remove AV1(51-74) tests + "exclude=1,2, + 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-g5.*: # 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: "" + max-run-time: 3600 + +browsertime-tp6m-live: + description: "Raptor (browsertime) tp6 live site page-load tests on android" + raptor-test: tp6m + raptor-subtests: + by-app: + geckoview: + - [cnn-ampstories, cnn-amp] + default: + - allrecipes + - amazon + - [amazon-search, amazon-s] + - bbc + - bing + - [bing-search-restaurants, bing-s-r] + - booking + - booking-sf + - cnn + - [cnn-ampstories, cnn-amp] + - 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] + - jianshu + - [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] + apps: ["fenix", "chrome-m", "geckoview"] + run-on-projects: [] + webrender-run-on-projects: + by-app: + geckoview: + by-test-platform: + android-hw-g5-7-0-arm7-api-16-shippable/opt: ["autoland"] + android-hw-p2-8-0-android-aarch64-shippable/opt: ["autoland"] + default: [] + default: [] + pageload: cold + run-visual-metrics: true + treeherder-symbol: Btime-live(tp6m) + mozharness: + extra-options: + - --live-sites + - --chimera + +browsertime-tp6m-profiling: + description: "Raptor (browsertime) tp6 page-load tests on android with Gecko profiling" + raptor-test: tp6m + raptor-subtests: ["amazon", "youtube"] + apps: ["geckoview"] + pageload: cold + treeherder-symbol: Btime-Prof(tp6m) + mozharness: + script: raptor_script.py + config: + - raptor/android_hw_config.py + extra-options: + - --browsertime + - --gecko-profile + +browsertime-speedometer-mobile: + description: "Browsertime Speedometer on Android" + apps: ["geckoview", "fenix", "fennec", "chrome-m"] + tier: + by-app: + fenix: 1 + default: 3 + webrender-run-on-projects: + by-app: + geckoview: + by-test-platform: + android-hw-g5-7-0-arm7-api-16-shippable/opt: ['trunk', 'mozilla-beta'] + android-hw-p2-8-0-android-aarch64-shippable/opt: ['trunk', 'mozilla-beta'] + default: [] + default: [] + treeherder-symbol: Btime(sp) + mozharness: + extra-options: + - --browsertime + - --test=speedometer + +browsertime-unity-webgl-mobile: + description: "Browsertime Unity WebGL on Android" + apps: ["geckoview", "refbrow", "fenix", "chrome-m"] + treeherder-symbol: Btime(ugl) + webrender-run-on-projects: + by-app: + geckoview: + by-test-platform: + android-hw-g5-7-0-arm7-api-16-shippable/opt: ['trunk', 'mozilla-beta'] + android-hw-p2-8-0-android-aarch64-shippable/opt: ['trunk', 'mozilla-beta'] + default: [] + default: [] + max-run-time: 900 + mozharness: + extra-options: + - --test=unity-webgl + fetches: + fetch: + - unity-webgl + +browsertime-power: + description: "Browsertime Power Usage Tests on Android" + apps: ["geckoview", "fenix", "refbrow"] + tier: 2 + raptor-subtests: + - idle + - idle-bg + - [speedometer, sp] + variants: ["webrender"] + 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..aa4e803747 --- /dev/null +++ b/taskcluster/ci/test/compiled.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/. +--- +job-defaults: + e10s: false + test-manifest-loader: null # don't load tests in the taskgraph + virtualization: + by-test-platform: + windows10-64.*: hardware + default: 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/androidx86_7_0.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 + python-3: true + +cppunit: + description: "CPP Unit Tests" + suite: cppunittest + treeherder-symbol: cppunit + target: + by-test-platform: + android-em-7.*: geckoview-androidTest.apk + default: null + tier: default + run-on-projects: built-projects + +gtest: + description: "GTests run" + suite: gtest + treeherder-symbol: GTest + instance-size: xlarge + run-on-projects: + by-test-platform: + windows.*-shippable/.*: [] # permafails on shippable + windows.*-nightly/.*: [] # permafails on nightly too + .*-devedition/.*: [] # don't run on devedition + default: built-projects + target: + by-test-platform: + android-em-7.*: geckoview-androidTest.apk + default: null + tier: + by-test-platform: + windows7-32-shippable.*: 3 + windows10-64-shippable.*: 3 + windows10-64-asan.*: 3 + linux.*64-ccov.*/opt: 3 + default: default + +jittest: + description: "JIT Test run" + suite: jittest + treeherder-symbol: Jit + run-on-projects: + by-test-platform: + android-hw-.*-aarch64/debug: ['mozilla-central', 'release'] + android-hw-.*-api-16(?:-shippable)?/.*: ['mozilla-central', 'release'] + default: built-projects + chunks: + by-test-platform: + windows.*: 1 + windows10-64-ccov-qr/opt: 8 + macosx.*/opt: 1 + macosx.*/debug: 3 + android.*: 10 + default: 6 + max-run-time: + by-test-platform: + windows10-64-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-androidTest.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..4d911fa0a2 --- /dev/null +++ b/taskcluster/ci/test/firefox-ui.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: + suite: + category: firefox-ui + max-run-time: 5400 + test-manifest-loader: null # don't load tests in the taskgraph + mozharness: + script: firefox_ui_tests/functional.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-local: + description: "Firefox-ui-tests functional run" + treeherder-symbol: Fxfn-l(en-US) + mozharness: + extra-options: + - "--tag" + - "local" + +firefox-ui-functional-remote: + description: "Firefox-ui-tests functional run" + treeherder-symbol: Fxfn-r(en-US) + mozharness: + extra-options: + - "--tag" + - "remote" + tier: 2 diff --git a/taskcluster/ci/test/kind.yml b/taskcluster/ci/test/kind.yml new file mode 100644 index 0000000000..507baf080f --- /dev/null +++ b/taskcluster/ci/test/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: taskgraph.loader.test:loader + +kind-dependencies: + - build + - build-signing + - fetch + - toolchain + +transforms: + - taskgraph.transforms.tests:transforms + - taskgraph.transforms.job:transforms + - 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/taskgraph/transforms/tests.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 + - raptor.yml + - raptor-chrome.yml + - raptor-chromium.yml + - raptor-gve.yml + - raptor-refbrow.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 + fetches: + toolchain: + by-test-platform: + win.*: + - win32-minidump-stackwalk + - win32-fix-stacks + macosx.*: + - macosx64-minidump-stackwalk + - macosx64-fix-stacks + android-em-7.*: + - 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..65fcbcc0df --- /dev/null +++ b/taskcluster/ci/test/marionette.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/. +--- +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 + extra-options: + - --setpref=toolkit.asyncshutdown.log=true + + run-on-projects: built-projects + test-manifest-loader: null # don't load tests in the taskgraph + tier: default + fission-run-on-projects: + by-test-platform: + linux.*64/.*: ['autoland'] + linux.*64-shippable/.*: ['mozilla-central'] + windows10-64/.*: ['autoland'] + windows10-64-shippable/.*: ['mozilla-central'] + default: [] + fission-tier: 2 + variants: ["fission"] + virtualization: + by-test-platform: + windows10-64.*: hardware + default: virtual + +marionette: + description: "Marionette unittest run" + treeherder-symbol: Mn + max-run-time: 5400 + instance-size: default + chunks: 1 + +marionette-framescript: + description: "Marionette unittest run with its JSWindowActors disabled" + treeherder-symbol: MnFr + max-run-time: 5400 + instance-size: default + tier: 2 + run-on-projects: + # Platforms for which we release geckodriver + by-test-platform: + (linux|windows|macos)(?!.*shippable).*: built-projects + default: [] + mozharness: + extra-options: + - --disable-actors + +marionette-headless: + description: "Marionette headless unittest run" + treeherder-symbol: MnH + max-run-time: 5400 + instance-size: default + tier: 2 + mozharness: + extra-options: + - --headless diff --git a/taskcluster/ci/test/misc.yml b/taskcluster/ci/test/misc.yml new file mode 100644 index 0000000000..8c11fbe247 --- /dev/null +++ b/taskcluster/ci/test/misc.yml @@ -0,0 +1,254 @@ +# 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-e10s-single", "geckoview-fission"] + treeherder-symbol: gv-junit + loopback-video: true + e10s: true + target: geckoview-androidTest.apk + max-run-time: 3600 + tier: default + fission-run-on-projects: ['trunk'] + mozharness: + script: android_emulator_unittest.py + config: + by-test-platform: + android-em-7.*: + - android/android_common.py + - android/androidx86_7_0.py + extra-options: + - --test-suite=geckoview-junit + +telemetry-tests-client: + description: "Telemetry tests client run" + suite: telemetry-tests-client + treeherder-symbol: tt(c) + 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 + run-on-projects: + by-test-platform: + # do not run on ccov or asan + .*-ccov.*/.*: [] + .*-asan/.*: [] + .*shippable.*: [] + # do not run on mozilla-central, beta or release: usually just confirms earlier results + default: ['integration'] + built-projects-only: true + target: + by-test-platform: + android-em-7.*: geckoview-androidTest.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/androidx86_7_0.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.*aarch64.*: + - win32-node + - win32-minidump-stackwalk + win.*-64.*: + - win64-node + - win32-minidump-stackwalk + - win32-fix-stacks + win.*32.*: + - win32-node + - win32-minidump-stackwalk + - win32-fix-stacks + android-em-7.*: + - android-sdk-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 + .*-ccov.*/.*: [] + .*-asan/.*: [] + .*shippable.*: [] + # do not run on mozilla-central, beta or release: usually just confirms earlier results + default: ['integration'] + 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/androidx86_7_0.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/androidx86_7_0.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.*aarch64.*: + - win32-node + - win32-minidump-stackwalk + win.*-64.*: + - win64-node + - win32-minidump-stackwalk + - win32-fix-stacks + win.*32.*: + - win32-node + - win32-minidump-stackwalk + - win32-fix-stacks + android-em-7.*: + - android-sdk-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: + windows10-64-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/androidx86_7_0.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..7906d8b626 --- /dev/null +++ b/taskcluster/ci/test/mochitest.yml @@ -0,0 +1,607 @@ +# 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-androidTest.apk + android-hw.*: geckoview-androidTest.apk + default: null + variants: + by-test-platform: + linux.*64/debug: ['fission'] + default: ['fission'] + run-on-projects: + by-test-platform: + .*-tsan/opt: ['trunk'] + default: built-projects + fission-run-on-projects: + by-test-platform: + linux.*64-qr/debug: ['trunk'] + linux.*64-shippable-qr/opt: ['mozilla-central'] + linux.*64-shippable/.*: ['mozilla-central'] + linux.*64/debug: ['mozilla-central'] + windows10-64-shippable(-qr)?/opt: ['mozilla-central'] + default: [] + fission-tier: + by-test-platform: + linux.*64.*-qr/debug: 1 + default: 2 + 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/androidx86_7_0.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 + tier: default + virtualization: + by-test-platform: + windows10-64.*: hardware + default: virtual + variants: + by-test-platform: + linux1804-64/opt: ['fission-xorigin'] + linux1804-64/debug: ['fission-xorigin'] + default: ['fission'] + chunks: + by-test-platform: + android-em-7.*: 4 + linux.*/debug: 16 + linux.*64-asan/opt: 10 + linux.*64-tsan/opt: 20 + linux.*64-.*cov/opt: 10 + windows10-64-ccov.*/.*: 10 + macosx.*64-ccov.*/.*: 10 + default: 5 + instance-size: + by-test-platform: + linux.*64-tsan/opt: xlarge # runs out of memory on default/m3.large + default: default + e10s: true + max-run-time: 5400 + 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 + +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 + tier: default + e10s: false + run-on-projects: 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: + by-test-platform: + linux.*64(-shippable)?/opt: ['fission', 'a11y-checks'] + default: ['fission'] + fission-run-on-projects: + by-test-platform: + linux.*64(-qr)?/debug: ['trunk'] + linux.*64-shippable(-qr)?/opt: ['mozilla-central'] + windows10-64-shippable(-qr)?/opt: ['mozilla-central'] + default: [] + tier: default + fission-tier: + by-test-platform: + linux.*64/debug: 1 + default: 2 + chunks: + by-test-platform: + linux.*/debug: 16 + linux.*64-asan/opt: 16 + linux.*64-tsan/opt: 32 + macosx.*64/debug: 16 + windows10-64-ccov.*/.*: 14 + windows10.*-asan/opt: 9 + default: 7 + max-run-time: + by-test-platform: + linux.*64-ccov.*/.*: 9000 + windows7-32/debug: 5400 + windows10-64/debug: 5400 + macosx.*64(-qr)?/debug: 5400 + windows10-64-ccov.*/.*: 10800 + macosx.*64-ccov.*/.*: 10800 + linux.*/debug: 5400 + windows10-64-qr/debug: 5400 + linux.*64-tsan/opt: 9000 + default: 3600 + mozharness: + mochitest-flavor: browser + chunked: true + # Bug 1281241: migrating to m3.large instances + instance-size: + by-test-platform: + linux.*64-tsan/opt: xlarge # runs out of memory on default/m3.large + default: default + allow-software-gl-layers: false + +browser-screenshots: + description: "Browser Screenshots" + suite: + name: mochitest-browser-chrome-screenshots + treeherder-symbol: M(ss) + loopback-video: true + test-manifest-loader: null # don't load tests in the taskgraph + run-on-projects: + by-test-platform: + windows7-32(?:-shippable)(?:-qr)?/opt: ['mozilla-central'] + windows10-64(?:-shippable)(?:-qr)?/opt: ['mozilla-central'] + (?:windows10-64|windows7-32|linux1804-64|macosx1014-64)(?:-qr)?/opt: ['integration'] + linux1804-64-(?:shippable)(?:-qr)?/opt: ['mozilla-central'] + macosx.*64-shippable/opt: ['mozilla-central'] + default: [] + fission-run-on-projects: [] + fission-tier: 2 + 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 + tier: default + chunks: + by-test-platform: + .*(-ccov|-qr).*/.*: 3 + windows10-64-ccov-qr/opt: 3 + .*-asan/opt: 3 + .*-tsan/opt: 6 + (linux.*64|windows.*-..|macosx10..)/debug: 3 + default: 2 + max-run-time: 3600 + e10s: false + mozharness: + mochitest-flavor: chrome + chunked: true + instance-size: + by-test-platform: + linux.*64-tsan/opt: xlarge # runs out of memory on default/m3.large + 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: + by-test-platform: + linux.*64(-shippable)?/opt: ['fission', 'a11y-checks'] + default: ['fission'] + fission-run-on-projects: + by-test-platform: + linux.*64(-qr)?/debug: ['trunk'] + linux.*64-shippable(-qr)?/opt: ['trunk'] + windows10-64-shippable(-qr)?/opt: ['trunk'] + default: [] + tier: default + fission-tier: + by-test-platform: + linux.*64(-qr)?/debug: 1 + linux.*64-shippable(-qr)?/opt: 1 + windows10-64-shippable(-qr)?/opt: 1 + default: 2 + max-run-time: + by-test-platform: + windows10-64-ccov.*/.*: 10800 + macosx.*64-ccov.*/.*: 9000 + linux.*64-ccov.*/.*: 7200 + linux.*64-tsan/opt: 7200 + default: 5400 + chunks: + by-test-platform: + .*-ccov.*/.*: 16 + linux.*64/debug: 12 + macosx.*64/debug: 8 + .*-asan/opt: 8 + .*-tsan/opt: 16 + default: 5 + mozharness: + mochitest-flavor: chrome + chunked: true + instance-size: + by-test-platform: + linux.*64-[at]san/opt: xlarge # runs out of memory on default/m3.large + default: default + # Bug 1296086: high number of intermittents observed with software GL and large instances + 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 + fission-run-on-projects: [] + fission-tier: 2 + tier: default + virtualization: + by-test-platform: + windows10-64.*: hardware + default: virtual-with-gpu + e10s: true + 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/opt: xlarge # runs out of memory on default/m3.large + default: default + +mochitest-chrome-gpu: + description: "Mochitest chrome GPU run" + suite: + name: mochitest-chrome-gpu + treeherder-symbol: M(gpu-c) + loopback-video: true + fission-run-on-projects: [] + fission-tier: 2 + tier: default + virtualization: + by-test-platform: + windows10-64.*: hardware + default: virtual-with-gpu + e10s: true + run-on-projects: + by-test-platform: + .*-tsan/opt: ['trunk'] + android.*/.*: [] + default: built-projects + 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/opt: xlarge # runs out of memory on default/m3.large + default: default + +mochitest-media: + description: "Mochitest media run" + treeherder-symbol: M(mda) + schedules-component: mochitest-plain + max-run-time: + by-test-platform: + windows10-64-ccov.*/.*: 7200 + macosx.*64-ccov.*/.*: 7200 + linux.*64-tsan/opt: 7200 + default: 5400 + run-on-projects: + by-test-platform: + .*-tsan/opt: ['trunk'] + android-hw-.*(?<!-shippable)(-qr)?/opt: ['autoland'] + android-hw-.*-api-16(-qr)?/(?:debug)?: ['trunk', 'mozilla-beta', 'mozilla-release'] + android-hw-.*-api-16-shippable(-qr)?/opt: ['trunk', 'mozilla-beta', 'mozilla-release'] + windows10-aarch64/.*: ['mozilla-central', 'mozilla-beta', 'mozilla-release'] + default: built-projects + variants: + by-test-platform: + .*-ccov.*/.*: [] + android.*: ['socketprocess'] + default: ['fission', 'socketprocess', 'webgl-ipc'] + loopback-video: true + instance-size: + by-test-platform: + linux.*64-tsan/opt: xlarge # runs out of memory on default/m3.large + default: large + chunks: + by-test-platform: + android-em-7.*: 1 + windows10-64.*: 1 + macosx.*64.*/.*: 2 + windows10-aarch64/.*: 1 + windows7-32-shippable/.*: 2 + linux1804-64(-shippable|-devedition|-.*qr)/opt: 2 + linux.*64-tsan/opt: 4 + default: 3 + mozharness: + mochitest-flavor: plain + chunked: + by-test-platform: + android.*: false + macosx.*64.*: false + windows10-64.*: false + default: true + extra-options: + - --setpref=webgl.out-of-process=false + tier: + by-test-platform: + android-em.*: 1 + windows10-aarch64.*: 2 + android-hw.*: 1 + default: default + +mochitest-plain-headless: + description: "Mochitest plain headless run" + suite: + name: mochitest-plain + treeherder-symbol: M(h) + loopback-video: true + chunks: + by-test-platform: + linux.*/debug: 16 + default: 5 + e10s: true + max-run-time: 5400 + allow-software-gl-layers: false + tier: 2 + run-on-projects: ['mozilla-central'] + mozharness: + mochitest-flavor: plain + chunked: true + extra-options: + - --headless + +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 + # We could re-enable e10s later. + # There's no intrinsic reason not to use it. + e10s: false + variants: [] + 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 + variants: + by-test-platform: + .*-ccov.*/.*: [] + android.*: [] + default: ['webgl-ipc'] + e10s: true + test-manifest-loader: null # don't load tests in the taskgraph + loopback-video: true + tier: default + max-run-time: + by-test-platform: + macosx.*64-ccov.*/.*: 7200 + default: 1800 + run-on-projects: + by-test-platform: + .*-tsan/opt: ['trunk'] + android-hw-.*(?<!-shippable)(-qr)?/opt: ['mozilla-central', 'mozilla-beta', 'mozilla-release'] + android-hw.*aarch.*-shippable/opt: ['mozilla-central'] + 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 + +mochitest-webgl1-ext: + description: "Mochitest webgl1-ext run" + treeherder-symbol: M(gl1e) + schedules-component: mochitest-plain + virtualization: virtual-with-gpu + variants: + by-test-platform: + .*-ccov.*/.*: [] + android.*: [] + default: ['webgl-ipc'] + chunks: + by-test-platform: + android.*: 2 + default: 1 + e10s: true + test-manifest-loader: null # don't load tests in the taskgraph + loopback-video: true + tier: default + max-run-time: 2700 + run-on-projects: + by-test-platform: + .*-tsan/opt: ['trunk'] + android-hw-.*(?<!-shippable)(-qr)?/opt: ['mozilla-central', 'mozilla-beta', 'mozilla-release'] + android-hw.*aarch.*-shippable/opt: ['mozilla-central'] + 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 + +mochitest-webgl2-core: + description: "Mochitest webgl2-core run" + treeherder-symbol: M(gl2c) + schedules-component: mochitest-plain + virtualization: virtual-with-gpu + variants: + by-test-platform: + .*-ccov.*/.*: [] + android.*: [] + default: ['webgl-ipc'] + chunks: + by-test-platform: + android.*: 2 + default: 1 + e10s: true + test-manifest-loader: null # don't load tests in the taskgraph + loopback-video: true + tier: default + max-run-time: 1800 + run-on-projects: + by-test-platform: + .*-tsan/opt: ['trunk'] + android-hw-.*(?<!-shippable)(-qr)?/opt: ['mozilla-central', 'mozilla-beta', 'mozilla-release'] + android-hw.*aarch.*-shippable/opt: ['mozilla-central'] + 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: + by-test-platform: + .*-ccov.*/.*: [] + android.*: [] + default: ['webgl-ipc'] + chunks: 4 + e10s: true + test-manifest-loader: null # don't load tests in the taskgraph + loopback-video: true + tier: default + 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 + +mochitest-webgl2-deqp: + description: "Mochitest webgl2-deqp run" + treeherder-symbol: M(gl2d) + schedules-component: mochitest-plain + run-on-projects: [] # Don't run this for now. + virtualization: virtual-with-gpu + variants: + by-test-platform: + .*-ccov.*/.*: [] + android.*: [] + default: ['webgl-ipc'] + chunks: 4 + e10s: true + loopback-video: true + tier: default + 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 + +mochitest-webgpu: + description: "Mochitest webgpu run" + treeherder-symbol: M(webgpu) + schedules-component: mochitest-plain + virtualization: + by-test-platform: + windows10-64.*: hardware + default: virtual-with-gpu + e10s: true + loopback-video: true + run-on-projects: + by-test-platform: + .*mingw.*: ["release"] + .*shippable.*: ["mozilla-central"] + (!-shippable).*-qr.*: ["trunk"] + default: [] + tier: default + 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 + run-on-projects: + by-test-platform: + .*shippable.*: ["mozilla-central"] + (linux1804-64|windows7-32|windows10-64|macosx1014-64)(?:-qr)?/opt: ['integration'] + default: ["trunk"] + fission-run-on-projects: [] + fission-tier: 2 + max-run-time: 5400 + mozharness: + mochitest-flavor: browser + extra-options: + - --setpref=remote.log.level=Trace + virtualization: + by-test-platform: + windows10-64.*: hardware + default: virtual diff --git a/taskcluster/ci/test/raptor-chrome.yml b/taskcluster/ci/test/raptor-chrome.yml new file mode 100644 index 0000000000..cb2503842a --- /dev/null +++ b/taskcluster/ci/test/raptor-chrome.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: + max-run-time: + by-test-platform: + .*-qr/.*: 2400 + .*-ux/.*: 2400 + default: 1800 + suite: raptor + run-on-projects: [] + test-manifest-loader: null # don't load tests in the taskgraph + tier: 2 + virtualization: + by-test-platform: + windows10-64-ccov.*/.*: virtual + default: hardware + mozharness: + script: raptor_script.py + config: + by-test-platform: + macosx.*: + - raptor/mac_config.py + windows.*: + - raptor/windows_config.py + windows10-64-ccov.*/.*: + - raptor/windows_vm_config.py + linux64-ccov.*/.*: + - raptor/linux64_config_taskcluster.py + default: + - raptor/linux_config.py + +raptor-speedometer-chrome: + description: "Raptor Speedometer on Chrome" + try-name: raptor-speedometer-chrome + treeherder-symbol: Rap-ChR(sp) + mozharness: + extra-options: + - --test=raptor-speedometer + - --app=chrome + +raptor-stylebench-chrome: + description: "Raptor StyleBench on Chrome" + try-name: raptor-stylebench-chrome + treeherder-symbol: Rap-ChR(sb) + mozharness: + extra-options: + - --test=raptor-stylebench + - --app=chrome + +raptor-motionmark-htmlsuite-chrome: + description: "Raptor MotionMark HtmlSuite on Chrome" + try-name: raptor-motionmark-htmlsuite-chrome + treeherder-symbol: Rap-ChR(mm-h) + mozharness: + extra-options: + - --test=raptor-motionmark-htmlsuite + - --app=chrome + +raptor-motionmark-animometer-chrome: + description: "Raptor MotionMark Animometer on Chrome" + try-name: raptor-motionmark-animometer-chrome + treeherder-symbol: Rap-ChR(mm-a) + mozharness: + extra-options: + - --test=raptor-motionmark-animometer + - --app=chrome + +raptor-webaudio-chrome: + description: "Raptor WebAudio on Chrome" + try-name: raptor-webaudio-chrome + treeherder-symbol: Rap-ChR(wa) + mozharness: + extra-options: + - --test=raptor-webaudio + - --app=chrome + +raptor-sunspider-chrome: + description: "Raptor SunSpider on Chrome" + try-name: raptor-sunspider-chrome + treeherder-symbol: Rap-ChR(ss) + mozharness: + extra-options: + - --test=raptor-sunspider + - --app=chrome + +raptor-unity-webgl-chrome: + description: "Raptor Unity WebGL on Chrome" + try-name: raptor-unity-webgl-chrome + treeherder-symbol: Rap-ChR(ugl) + tier: 3 + mozharness: + extra-options: + - --test=raptor-unity-webgl + - --app=chrome + fetches: + fetch: + - unity-webgl + +raptor-wasm-misc-chrome: + description: "Raptor WASM Misc on Chrome" + try-name: raptor-wasm-misc-chrome + treeherder-symbol: Rap-ChR(wm) + mozharness: + extra-options: + - --test=raptor-wasm-misc + - --app=chrome + fetches: + fetch: + - wasm-misc + +raptor-assorted-dom-chrome: + description: "Raptor Assorted-Dom on Chrome" + try-name: raptor-assorted-dom-chrome + treeherder-symbol: Rap-ChR(dom) + max-run-time: 1500 + mozharness: + extra-options: + - --test=raptor-assorted-dom + - --app=chrome + fetches: + fetch: + - assorted-dom + +raptor-wasm-godot-chrome: + description: "Raptor Wasm Godot on Chrome" + try-name: raptor-wasm-godot-chrome + treeherder-symbol: Rap-ChR(godot) + max-run-time: 1500 + mozharness: + extra-options: + - --test=raptor-wasm-godot + - --app=chrome + +raptor-ares6-chrome: + description: "Raptor Ares6 on Chrome" + try-name: raptor-ares6-chrome + treeherder-symbol: Rap-ChR(ares6) + max-run-time: 2500 + tier: 3 + mozharness: + extra-options: + - --test=raptor-ares6 + - --app=chrome + +raptor-jetstream2-chrome: + description: "Raptor Jetstream2 on Chrome" + try-name: raptor-jetstream2-chrome + treeherder-symbol: Rap-ChR(js2) + max-run-time: 8000 + tier: 3 + mozharness: + extra-options: + - --test=raptor-jetstream2 + - --app=chrome + fetches: + fetch: + - jetstream2 + +raptor-youtube-playback-av1-sfr-chrome: + description: "Raptor YouTube Playback AV1 SFR on Chrome" + try-name: raptor-youtube-playback-av1-sfr-chrome + treeherder-symbol: Rap-ChR(ytp-av1-sfr) + max-run-time: 3600 + mozharness: + extra-options: + - --test=raptor-youtube-playback-av1-sfr + - --app=chrome + +raptor-youtube-playback-h264-sfr-chrome: + description: "Raptor YouTube Playback H264 SFR on Chrome" + try-name: raptor-youtube-playback-h264-sfr-chrome + treeherder-symbol: Rap-ChR(ytp-h264-sfr) + max-run-time: + by-test-platform: + windows10-aarch64/opt: 3600 + default: 2700 + mozharness: + extra-options: + - --test=raptor-youtube-playback-h264-sfr + - --app=chrome + +raptor-youtube-playback-hfr-chrome: + description: "Raptor YouTube Playback HFR on Chrome" + try-name: raptor-youtube-playback-hfr-chrome + treeherder-symbol: Rap-ChR(ytp-hfr) + max-run-time: + by-test-platform: + windows10-aarch64/opt: 3600 + default: 2700 + mozharness: + extra-options: + - --test=raptor-youtube-playback-hfr + - --app=chrome + +raptor-youtube-playback-vp9-sfr-chrome: + description: "Raptor YouTube Playback VP9 SFR on Chrome" + try-name: raptor-youtube-playback-vp9-sfr-chrome + treeherder-symbol: Rap-ChR(ytp-vp9-sfr) + max-run-time: + by-test-platform: + windows10-aarch64/opt: 3600 + default: 2700 + mozharness: + extra-options: + - --test=raptor-youtube-playback-vp9-sfr + - --app=chrome + +raptor-youtube-playback-widevine-hfr-chrome: + description: "Raptor YouTube Playback Widevine HFR on Chrome" + try-name: raptor-youtube-playback-widevine-hfr-chrome + treeherder-symbol: Rap-ChR(ytp-widevine-hfr) + max-run-time: + by-test-platform: + windows10-aarch64/opt: 3600 + default: 2700 + mozharness: + extra-options: + - --test=raptor-youtube-playback-widevine-hfr + - --app=chrome + +raptor-youtube-playback-widevine-h264-sfr-chrome: + description: "Raptor YouTube Playback Widevine H264 SFR on Chrome" + try-name: raptor-youtube-playback-widevine-h264-sfr-chrome + treeherder-symbol: Rap-ChR(ytp-widevine-h264-sfr) + max-run-time: + by-test-platform: + windows10-aarch64/opt: 3600 + default: 2700 + mozharness: + extra-options: + - --test=raptor-youtube-playback-widevine-h264-sfr + - --app=chrome + +raptor-youtube-playback-widevine-vp9-sfr-chrome: + description: "Raptor YouTube Playback Widevine VP9 SFR on Chrome" + try-name: raptor-youtube-playback-widevine-vp9-sfr-chrome + treeherder-symbol: Rap-ChR(ytp-widevine-vp9-sfr) + max-run-time: + by-test-platform: + windows10-aarch64/opt: 3600 + default: 2700 + mozharness: + extra-options: + - --test=raptor-youtube-playback-widevine-vp9-sfr + - --app=chrome diff --git a/taskcluster/ci/test/raptor-chromium.yml b/taskcluster/ci/test/raptor-chromium.yml new file mode 100644 index 0000000000..4fd37aab93 --- /dev/null +++ b/taskcluster/ci/test/raptor-chromium.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: + max-run-time: + by-test-platform: + .*-qr/.*: 2400 + .*-ux/.*: 2400 + default: 1800 + suite: raptor + run-on-projects: [] + tier: 2 + virtualization: + by-test-platform: + windows10-64-ccov.*/.*: virtual + default: hardware + test-manifest-loader: null # don't load tests in the taskgraph + mozharness: + script: raptor_script.py + config: + by-test-platform: + macosx.*: + - raptor/mac_config.py + windows.*: + - raptor/windows_config.py + windows10-64-ccov.*/.*: + - raptor/windows_vm_config.py + linux64-ccov.*/.*: + - raptor/linux64_config_taskcluster.py + default: + - raptor/linux_config.py + fetches: + fetch: + by-test-platform: + win.*64.*: + - win64-chromium + win.*32.*: + - win32-chromium + macosx.*: + - mac-chromium + default: + - linux64-chromium + +raptor-speedometer-chromium: + description: "Raptor Speedometer on Chromium" + try-name: raptor-speedometer-chromium + treeherder-symbol: Rap-Cr(sp) + max-run-time: 1500 + mozharness: + extra-options: + - --test=raptor-speedometer + - --app=chromium + +raptor-stylebench-chromium: + description: "Raptor StyleBench on Chromium" + try-name: raptor-stylebench-chromium + treeherder-symbol: Rap-Cr(sb) + mozharness: + extra-options: + - --test=raptor-stylebench + - --app=chromium + +raptor-motionmark-htmlsuite-chromium: + description: "Raptor MotionMark HtmlSuite on Chromium" + try-name: raptor-motionmark-htmlsuite-chromium + treeherder-symbol: Rap-Cr(mm-h) + mozharness: + extra-options: + - --test=raptor-motionmark-htmlsuite + - --app=chromium + +raptor-motionmark-animometer-chromium: + description: "Raptor MotionMark Animometer on Chromium" + try-name: raptor-motionmark-animometer-chromium + treeherder-symbol: Rap-Cr(mm-a) + mozharness: + extra-options: + - --test=raptor-motionmark-animometer + - --app=chromium + +raptor-webaudio-chromium: + description: "Raptor WebAudio on Chromium" + try-name: raptor-webaudio-chromium + treeherder-symbol: Rap-Cr(wa) + mozharness: + extra-options: + - --test=raptor-webaudio + - --app=chromium + +raptor-sunspider-chromium: + description: "Raptor SunSpider on Chromium" + try-name: raptor-sunspider-chromium + treeherder-symbol: Rap-Cr(ss) + mozharness: + extra-options: + - --test=raptor-sunspider + - --app=chromium + +raptor-unity-webgl-chromium: + description: "Raptor Unity WebGL on Chromium" + try-name: raptor-unity-webgl-chromium + treeherder-symbol: Rap-Cr(ugl) + tier: 3 + mozharness: + extra-options: + - --test=raptor-unity-webgl + - --app=chromium + fetches: + fetch: + by-test-platform: + win.*64.*: + - win64-chromium + - unity-webgl + win.*32.*: + - win32-chromium + - unity-webgl + macosx.*: + - mac-chromium + - unity-webgl + default: + - linux64-chromium + - unity-webgl + +raptor-wasm-misc-chromium: + description: "Raptor WASM Misc on Chromium" + try-name: raptor-wasm-misc-chromium + treeherder-symbol: Rap-Cr(wm) + mozharness: + extra-options: + - --test=raptor-wasm-misc + - --app=chromium + fetches: + fetch: + by-test-platform: + win.*64.*: + - win64-chromium + - wasm-misc + win.*32.*: + - win32-chromium + - wasm-misc + macosx.*: + - mac-chromium + - wasm-misc + default: + - linux64-chromium + - wasm-misc + +raptor-assorted-dom-chromium: + description: "Raptor Assorted-Dom on Chromium" + try-name: raptor-assorted-dom-chromium + treeherder-symbol: Rap-Cr(dom) + max-run-time: 1500 + mozharness: + extra-options: + - --test=raptor-assorted-dom + - --app=chromium + fetches: + fetch: + by-test-platform: + win.*64.*: + - win64-chromium + - assorted-dom + win.*32.*: + - win32-chromium + - assorted-dom + macosx.*: + - mac-chromium + - assorted-dom + default: + - linux64-chromium + - assorted-dom + +raptor-wasm-godot-chromium: + description: "Raptor Wasm Godot on Chromium" + try-name: raptor-wasm-godot-chromium + treeherder-symbol: Rap-Cr(godot) + max-run-time: 1500 + mozharness: + extra-options: + - --test=raptor-wasm-godot + - --app=chromium + +raptor-ares6-chromium: + description: "Raptor Ares6 on Chromium" + try-name: raptor-ares6-chromium + treeherder-symbol: Rap-Cr(ares6) + max-run-time: 2500 + tier: 3 + mozharness: + extra-options: + - --test=raptor-ares6 + - --app=chromium + +raptor-jetstream2-chromium: + description: "Raptor Jetstream2 on Chromium" + try-name: raptor-jetstream2-chromium + treeherder-symbol: Rap-Cr(js2) + tier: 3 + max-run-time: 8000 + mozharness: + extra-options: + - --test=raptor-jetstream2 + - --app=chromium + fetches: + fetch: + by-test-platform: + win.*64.*: + - win64-chromium + - jetstream2 + win.*32.*: + - win32-chromium + - jetstream2 + macosx.*: + - mac-chromium + - jetstream2 + default: + - linux64-chromium + - jetstream2 diff --git a/taskcluster/ci/test/raptor-gve.yml b/taskcluster/ci/test/raptor-gve.yml new file mode 100644 index 0000000000..76cfaf8c66 --- /dev/null +++ b/taskcluster/ci/test/raptor-gve.yml @@ -0,0 +1,120 @@ +# 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: 1800 + suite: raptor + webrender-run-on-projects: [] + variants: ["webrender"] + run-on-projects: + by-test-platform: + android-hw-p2-.*-api-16/(?!opt).*: [] + android-hw-p2-.*-api-16-shippable/opt: [] + android-hw(?!-p2).*(?<!-api-16-shippable)/opt.*: [] + default: ['mozilla-central'] + target: geckoview_example.apk + test-manifest-loader: null # don't load tests in the taskgraph + tier: 1 + virtualization: hardware + mozharness: + script: raptor_script.py + config: + - raptor/android_hw_config.py + extra-options: + - --no-conditioned-profile + optimization: + skip-unless-backstop: null + +raptor-speedometer-geckoview-cpu-memory: + description: "Raptor Speedometer cpu/memory on GeckoView" + try-name: raptor-speedometer-geckoview-cpu-memory + treeherder-symbol: Rap(sp-cm) + target: geckoview_example.apk + run-on-projects: [] + max-run-time: 1800 + mozharness: + extra-options: + - --test=raptor-speedometer + - --app=geckoview + - --binary=org.mozilla.geckoview_example + - --cpu-test + - --memory-test + - --page-cycles 5 + - --activity=org.mozilla.geckoview_example.GeckoViewActivity + +raptor-speedometer-geckoview-cpu-memory-power: + description: "Raptor Speedometer cpu/memory/power on GeckoView" + try-name: raptor-speedometer-geckoview-cpu-memory-power + treeherder-symbol: Rap(sp-cmp) + target: geckoview_example.apk + run-on-projects: [] + max-run-time: 1800 + mozharness: + extra-options: + - --test=raptor-speedometer + - --app=geckoview + - --binary=org.mozilla.geckoview_example + - --cpu-test + - --memory-test + - --power-test + - --page-cycles 5 + - --activity=org.mozilla.geckoview_example.GeckoViewActivity + +raptor-scn-cpu-memory-idle-geckoview: + description: "Raptor idle-browser cpu/memory on GeckoView" + try-name: raptor-scn-cpu-memory-idle-geckoview + treeherder-symbol: Rap(idl-cm) + run-on-projects: [] + mozharness: + extra-options: + - --test=raptor-scn-power-idle + - --app=geckoview + - --binary=org.mozilla.geckoview_example + - --cpu-test + - --memory-test + - --activity=org.mozilla.geckoview_example.GeckoViewActivity + +raptor-scn-cpu-memory-power-idle-geckoview: + description: "Raptor idle-browser cpu/memory/power on GeckoView" + try-name: raptor-scn-cpu-memory-power-idle-geckoview + treeherder-symbol: Rap(idl-cmp) + run-on-projects: [] + mozharness: + extra-options: + - --test=raptor-scn-power-idle + - --app=geckoview + - --binary=org.mozilla.geckoview_example + - --cpu-test + - --memory-test + - --power-test + - --activity=org.mozilla.geckoview_example.GeckoViewActivity + +raptor-scn-cpu-memory-idle-bg-geckoview: + description: "Raptor idle-browser (backgrounded) cpu/memory on GeckoView" + try-name: raptor-scn-cpu-memory-idle-bg-geckoview + treeherder-symbol: Rap(idlbg-cm) + run-on-projects: [] + mozharness: + extra-options: + - --test=raptor-scn-power-idle-bg + - --app=geckoview + - --binary=org.mozilla.geckoview_example + - --cpu-test + - --memory-test + - --activity=org.mozilla.geckoview_example.GeckoViewActivity + +raptor-scn-cpu-memory-power-idle-bg-geckoview: + description: "Raptor idle-browser (backgrounded) cpu/memory/power on GeckoView" + try-name: raptor-scn-cpu-memory-power-idle-bg-geckoview + treeherder-symbol: Rap(idlbg-cmp) + run-on-projects: [] + mozharness: + extra-options: + - --test=raptor-scn-power-idle-bg + - --app=geckoview + - --binary=org.mozilla.geckoview_example + - --cpu-test + - --memory-test + - --power-test + - --activity=org.mozilla.geckoview_example.GeckoViewActivity diff --git a/taskcluster/ci/test/raptor-refbrow.yml b/taskcluster/ci/test/raptor-refbrow.yml new file mode 100644 index 0000000000..fa8edd1a8d --- /dev/null +++ b/taskcluster/ci/test/raptor-refbrow.yml @@ -0,0 +1,86 @@ +# 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: 1800 + suite: raptor + webrender-run-on-projects: [] + variants: ["webrender"] + run-on-projects: [] + tier: 2 + test-manifest-loader: null # don't load tests in the taskgraph + target: + 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 + virtualization: hardware + mozharness: + script: raptor_script.py + config: + - raptor/android_hw_config.py + +raptor-scn-cpu-memory-idle-refbrow: + description: "Raptor idle-browser cpu/memory on Reference Browser" + try-name: raptor-scn-cpu-memory-idle-refbrow + treeherder-symbol: Rap-refbrow(idl-cm) + tier: 3 + max-run-time: 1800 + mozharness: + extra-options: + - --test=raptor-scn-power-idle + - --app=refbrow + - --binary-path=org.mozilla.reference.browser.raptor + - --cpu-test + - --memory-test + - --activity=org.mozilla.reference.browser.BrowserTestActivity + +raptor-scn-cpu-memory-power-idle-refbrow: + description: "Raptor idle-browser cpu/memory/power on Reference Browser" + try-name: raptor-scn-cpu-memory-power-idle-refbrow + treeherder-symbol: Rap-refbrow(idl-cmp) + tier: 3 + max-run-time: 1800 + mozharness: + extra-options: + - --test=raptor-scn-power-idle + - --app=refbrow + - --binary-path=org.mozilla.reference.browser.raptor + - --cpu-test + - --memory-test + - --power-test + - --activity=org.mozilla.reference.browser.BrowserTestActivity + +raptor-scn-cpu-memory-idle-bg-refbrow: + description: "Raptor idle-browser (backgrounded) cpu/memory on Reference Browser" + try-name: raptor-scn-cpu-memory-idle-bg-refbrow + treeherder-symbol: Rap-refbrow(idlbg-cm) + tier: 3 + max-run-time: 1800 + mozharness: + extra-options: + - --test=raptor-scn-power-idle-bg + - --app=refbrow + - --binary-path=org.mozilla.reference.browser.raptor + - --cpu-test + - --memory-test + - --activity=org.mozilla.reference.browser.BrowserTestActivity + +raptor-scn-cpu-memory-power-idle-bg-refbrow: + description: "Raptor idle-browser (backgrounded) cpu/memory/power on Reference Browser" + try-name: raptor-scn-cpu-memory-power-idle-bg-refbrow + treeherder-symbol: Rap-refbrow(idlbg-cmp) + tier: 3 + max-run-time: 1800 + mozharness: + extra-options: + - --test=raptor-scn-power-idle-bg + - --app=refbrow + - --binary-path=org.mozilla.reference.browser.raptor + - --cpu-test + - --memory-test + - --power-test + - --activity=org.mozilla.reference.browser.BrowserTestActivity diff --git a/taskcluster/ci/test/raptor.yml b/taskcluster/ci/test/raptor.yml new file mode 100644 index 0000000000..fc57f43a14 --- /dev/null +++ b/taskcluster/ci/test/raptor.yml @@ -0,0 +1,784 @@ +# 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-app: + firefox: + by-test-platform: + .*-qr/.*: 2400 + .*-ref-hw-2017/.*: 3600 + default: 1800 + default: + by-test-platform: + .*-qr/.*: 2400 + .*-ux/.*: 2400 + default: 1800 + suite: raptor + test-manifest-loader: null # don't load tests in the taskgraph + run-on-projects: + by-app: + firefox: + by-test-name: + raptor-tp6-firefox: + by-pageload: + warm: + by-test-platform: + windows7-32.*/opt: [] + (linux|windows10|macos)(?!.*shippable).*: [] + linux.*shippable.*: [] + macos.*shippable.*: [] + default: ["mozilla-central"] + cold: + by-test-platform: + windows7-32.*/opt: [] + macosx.*64(?:-qr)?/opt: ["mozilla-central"] + (linux|windows10|macos)(?!.*shippable).*: [] + linux.*shippable.*: [] + macos.*shippable.*: [] + default: ["trunk", "mozilla-beta"] + default: + by-test-platform: + windows7-32.*/opt: [] + macosx.*64(?:-qr)?/opt: ["mozilla-central"] + (linux|windows10|macos)(?!.*shippable).*: [] + default: ["trunk", "mozilla-beta"] + chrome: [] + chromium: [] + default: # tests that dont have "apps: []" + by-test-name: + raptor-.*-profiling.*: + by-test-platform: + windows7-32.*/opt: [] + (linux|windows10|macos)(?!.*shippable).*: [] + default: ["mozilla-central"] + default: + by-test-platform: + windows7-32.*/opt: [] + macosx.*64(?:-qr)?/opt: ["mozilla-central"] + (linux|windows10|macos)(?!.*shippable).*: [] + default: ["trunk", "mozilla-beta"] + limit-platforms: + by-app: + chrome: + - linux64-shippable/opt + - windows7-32-shippable/opt + - windows10-64-shippable/opt + - macosx1014-64-shippable/opt + chromium: + - linux64-shippable/opt + - windows7-32-shippable/opt + - windows10-64-shippable/opt + - macosx1014-64-shippable/opt + default: + - .* + tier: + by-app: + firefox: + by-test-platform: + windows10-64-ref-hw-2017/opt: 2 + windows10-64-ccov.*/.*: 3 + linux64-ccov.*/.*: 3 + default: 2 + default: 2 + fission-tier: 2 + virtualization: + by-test-platform: + windows10-64-ccov.*/.*: virtual + default: hardware + mozharness: + script: raptor_script.py + config: + by-test-platform: + macosx.*: + - raptor/mac_config.py + windows.*: + - raptor/windows_config.py + windows10-64-ccov.*/.*: + - raptor/windows_vm_config.py + linux64-ccov.*/.*: + - raptor/linux64_config_taskcluster.py + default: + - raptor/linux_config.py + extra-options: + # Bug 1626522: Temporarily enable extension logging for + # an easier investigation of intermittents on mobile devices + - --setpref=extensions.logging.enabled=true + # Bug 1663449: Disable conditioned profiles for raptor tests because of test failures + - --no-conditioned-profile + fission-run-on-projects: + by-app: + chrome: [] + chromium: [] + default: + by-test-platform: + linux64-shippable-qr/opt: ["mozilla-central"] + windows10-64-shippable-qr/opt: ["mozilla-central"] + default: [] + fetches: + fetch: + by-app: + chromium: + by-test-platform: + win.*64.*: + - win64-chromium + win.*32.*: + - win32-chromium + macosx.*: + - mac-chromium + default: + - linux64-chromium + default: [] + +raptor-tp6: + description: "Raptor (webextension) tp6" + apps: ["firefox", "chrome", "chromium"] + variants: + # Used for defining webrender and fission build variant tests, + by-app: + firefox: + by-subtest: + yahoo-mail: [] + wikipedia: [] + default: ["fission"] + chrome: [] + chromium: [] + default: [] + pageload: + by-app: + firefox: "both" + chrome: "both" + chromium: "both" + default: "cold" + limit-platforms: + by-app: + chrome: + # Run on non-QR shippable, but test-platforms.yml doesn't have + # any more non-QR macosx shippable things. So for macosx we want + # to run it on shippable-qr, otherwise there's nothing running + # this on macosx at all. + - .*shippable[^-qr].* + - macosx1014-64-shippable-qr/opt + chromium: + # Ditto as for chrome + - .*shippable[^-qr].* + - macosx1014-64-shippable-qr/opt + default: [] + treeherder-symbol: Rap(tp6) + max-run-time: 4000 + raptor-test: tp6 + raptor-subtests: + - amazon + - apple + - bing + - ebay + - [facebook, fb] + - [facebook-redesign, fb-r] + - fandom + - [docs, gdoc] + - google + - [google-mail, gmail] + - [sheets, gsheets] + - [slides, gslides] + - imdb + - imgur + - instagram + - linkedin + - microsoft + - netflix + - office + - outlook + - paypal + - pinterest + - reddit + - tumblr + - twitch + - twitter + - wikipedia + - yahoo-mail + - yahoo-news + - yandex + - youtube + tier: + by-app: + firefox: + by-subtest: + amazon: 1 + .*gmail.*: 1 + .*gslides.*: 1 + imgur: 1 + tumblr: 1 + twitch: 1 + twitter: 1 + default: 2 + default: 2 + +raptor-tp6-live: + description: "Raptor (webextension) tp6 on live-sites" + apps: ["firefox"] + variants: [] + pageload: "both" + treeherder-symbol: Rap-live(tp6) + raptor-test: tp6 + raptor-subtests: + - [cnn-ampstories, cnn-amp] + run-on-projects: + by-pageload: + warm: + by-test-platform: + windows7-32.*/opt: [] + (linux|windows10|macos)(?!.*shippable).*: [] + default: ["mozilla-central"] + cold: + by-test-platform: + windows7-32.*/opt: [] + macosx.*64(?:-qr)?/opt: ["mozilla-central"] + (linux|windows10|macos)(?!.*shippable).*: [] + default: ["mozilla-central", "autoland"] + tier: 2 + mozharness: + extra-options: + - --no-conditioned-profile + - --live-sites + +raptor-speedometer-firefox: + description: "Raptor Speedometer on Firefox" + variants: ["fission"] + try-name: raptor-speedometer-firefox + treeherder-symbol: Rap(sp) + mozharness: + extra-options: + - --test=raptor-speedometer + +raptor-speedometer-firefox-profiling: + description: "Raptor Speedometer on Firefox with Gecko Profiling" + try-name: raptor-speedometer-firefox-profiling + treeherder-symbol: Rap-Prof(sp) + max-run-time: 900 + mozharness: + extra-options: + - --test=raptor-speedometer + - --gecko-profile + +raptor-stylebench-firefox: + description: "Raptor StyleBench on Firefox" + variants: ["fission"] + try-name: raptor-stylebench-firefox + treeherder-symbol: Rap(sb) + mozharness: + extra-options: + - --test=raptor-stylebench + +raptor-stylebench-firefox-profiling: + description: "Raptor StyleBench on Firefox with Gecko Profiling" + try-name: raptor-stylebench-firefox-profiling + treeherder-symbol: Rap-Prof(sb) + max-run-time: 900 + mozharness: + extra-options: + - --test=raptor-stylebench + - --gecko-profile + +raptor-motionmark-htmlsuite-firefox: + description: "Raptor MotionMark HtmlSuite on Firefox" + variants: ["fission"] + try-name: raptor-motionmark-htmlsuite-firefox + treeherder-symbol: Rap(mm-h) + mozharness: + extra-options: + - --test=raptor-motionmark-htmlsuite + +raptor-motionmark-htmlsuite-firefox-profiling: + description: "Raptor MotionMark HtmlSuite on Firefox with Gecko Profiling" + try-name: raptor-motionmark-htmlsuite-firefox-profiling + treeherder-symbol: Rap-Prof(mm-h) + mozharness: + extra-options: + - --test=raptor-motionmark-htmlsuite + - --gecko-profile + +raptor-motionmark-animometer-firefox: + description: "Raptor MotionMark Animometer on Firefox" + variants: ["fission"] + try-name: raptor-motionmark-animometer-firefox + treeherder-symbol: Rap(mm-a) + tier: 1 + mozharness: + extra-options: + - --test=raptor-motionmark-animometer + +raptor-motionmark-animometer-firefox-profiling: + description: "Raptor MotionMark Animometer on Firefox with Gecko Profiling" + try-name: raptor-motionmark-animometer-firefox-profiling + treeherder-symbol: Rap-Prof(mm-a) + max-run-time: 900 + mozharness: + extra-options: + - --test=raptor-motionmark-animometer + - --gecko-profile + +raptor-webaudio-firefox: + description: "Raptor WebAudio on Firefox" + variants: ["fission"] + try-name: raptor-webaudio-firefox + treeherder-symbol: Rap(wa) + tier: 1 + mozharness: + extra-options: + - --test=raptor-webaudio + +raptor-webaudio-firefox-profiling: + description: "Raptor WebAudio on Firefox with Gecko Profiling" + try-name: raptor-webaudio-firefox + treeherder-symbol: Rap-Prof(wa) + max-run-time: 900 + mozharness: + extra-options: + - --test=raptor-webaudio + - --gecko-profile + +raptor-sunspider-firefox: + description: "Raptor SunSpider on Firefox" + variants: ["fission"] + try-name: raptor-sunspider-firefox + treeherder-symbol: Rap(ss) + mozharness: + extra-options: + - --test=raptor-sunspider + +raptor-sunspider-firefox-profiling: + description: "Raptor SunSpider on Firefox with Gecko Profiling" + try-name: raptor-sunspider-firefox-profiling + treeherder-symbol: Rap-Prof(ss) + max-run-time: 900 + mozharness: + extra-options: + - --test=raptor-sunspider + - --gecko-profile + +raptor-unity-webgl-firefox: + description: "Raptor Unity WebGL on Firefox" + variants: ["fission"] + try-name: raptor-unity-webgl-firefox + treeherder-symbol: Rap(ugl) + run-on-projects: + by-test-platform: + (linux|windows|macos)(?!.*shippable).*: [] + default: ["autoland"] + tier: 3 + mozharness: + extra-options: + - --test=raptor-unity-webgl + fetches: + fetch: + - unity-webgl + +raptor-unity-webgl-firefox-profiling: + description: "Raptor Unity WebGL on Firefox with Gecko Profiling" + try-name: raptor-unity-webgl-firefox-profiling + treeherder-symbol: Rap-Prof(ugl) + mozharness: + extra-options: + - --test=raptor-unity-webgl + - --gecko-profile + fetches: + fetch: + - unity-webgl + +raptor-wasm-misc-firefox: + description: "Raptor WASM Misc on Firefox" + variants: ["fission"] + try-name: raptor-wasm-misc-firefox + treeherder-symbol: Rap(wm) + mozharness: + extra-options: + - --test=raptor-wasm-misc + fetches: + fetch: + - wasm-misc + +raptor-wasm-misc-firefox-profiling: + description: "Raptor WASM Misc on Firefox with Gecko Profiling" + try-name: raptor-wasm-misc-firefox-profiling + treeherder-symbol: Rap-Prof(wm) + max-run-time: 900 + mozharness: + extra-options: + - --test=raptor-wasm-misc + - --gecko-profile + fetches: + fetch: + - wasm-misc + +raptor-wasm-misc-baseline-firefox: + description: "Raptor WASM Misc on Firefox with baseline JIT" + variants: ["fission"] + try-name: raptor-wasm-misc-baseline-firefox + treeherder-symbol: Rap(wm-b) + mozharness: + extra-options: + - --test=raptor-wasm-misc-baseline + fetches: + fetch: + - wasm-misc + +raptor-wasm-misc-baseline-firefox-profiling: + description: "Raptor WASM Misc on Firefox with baseline JIT and Gecko Profiling" + try-name: raptor-wasm-misc-baseline-firefox-profiling + treeherder-symbol: Rap-Prof(wm-b) + max-run-time: 900 + mozharness: + extra-options: + - --test=raptor-wasm-misc-baseline + - --gecko-profile + fetches: + fetch: + - wasm-misc + +raptor-wasm-misc-optimizing-firefox: + description: "Raptor WASM Misc on Firefox with optimizing JIT" + variants: ["fission"] + try-name: raptor-wasm-misc-optimizing-firefox + treeherder-symbol: Rap(wm-i) + mozharness: + extra-options: + - --test=raptor-wasm-misc-optimizing + fetches: + fetch: + - wasm-misc + +raptor-wasm-misc-optimizing-firefox-profiling: + description: "Raptor WASM Misc on Firefox with optimizing JIT and Gecko Profiling" + try-name: raptor-wasm-misc-optimizing-firefox-profiling + treeherder-symbol: Rap-Prof(wm-i) + max-run-time: 900 + mozharness: + extra-options: + - --test=raptor-wasm-misc-optimizing + - --gecko-profile + fetches: + fetch: + - wasm-misc + +raptor-assorted-dom-firefox: + description: "Raptor Assorted-Dom on Firefox" + variants: ["fission"] + try-name: raptor-assorted-dom-firefox + treeherder-symbol: Rap(dom) + max-run-time: + by-test-platform: + .*-qr/.*: 2100 + .*-ref-hw-2017/.*: 2100 + default: 1500 + mozharness: + extra-options: + - --test=raptor-assorted-dom + fetches: + fetch: + - assorted-dom + +raptor-assorted-dom-firefox-profiling: + description: "Raptor Assorted-Dom on Firefox with Gecko Profiling" + try-name: raptor-assorted-dom-firefox-profiling + treeherder-symbol: Rap-Prof(dom) + max-run-time: 900 + mozharness: + extra-options: + - --test=raptor-assorted-dom + - --gecko-profile + fetches: + fetch: + - assorted-dom + +raptor-wasm-godot-firefox: + description: "Raptor Wasm Godot on Firefox" + variants: ["fission"] + try-name: raptor-wasm-godot-firefox + treeherder-symbol: Rap(godot) + max-run-time: + by-test-platform: + .*-qr/.*: 2100 + .*-ref-hw-2017/.*: 2100 + default: 1500 + mozharness: + extra-options: + - --test=raptor-wasm-godot + +raptor-wasm-godot-firefox-profiling: + description: "Raptor Wasm Godot on Firefox with Gecko Profiling" + try-name: raptor-wasm-godot-firefox-profiling + treeherder-symbol: Rap-Prof(godot) + max-run-time: 900 + mozharness: + extra-options: + - --test=raptor-wasm-godot + - --gecko-profile + +raptor-wasm-godot-baseline-firefox: + description: "Raptor Wasm Godot on Firefox with baseline JIT" + variants: ["fission"] + try-name: raptor-wasm-godot-baseline-firefox + treeherder-symbol: Rap(godot-b) + max-run-time: + by-test-platform: + .*-qr/.*: 2100 + .*-ref-hw-2017/.*: 2100 + default: 1500 + mozharness: + extra-options: + - --test=raptor-wasm-godot-baseline + +raptor-wasm-godot-baseline-firefox-profiling: + description: "Raptor Wasm Godot on Firefox with baseline JIT and Gecko Profiling" + try-name: raptor-wasm-godot-baseline-firefox-profiling + treeherder-symbol: Rap-Prof(godot-b) + max-run-time: 900 + mozharness: + extra-options: + - --test=raptor-wasm-godot-baseline + - --gecko-profile + +raptor-wasm-godot-optimizing-firefox: + description: "Raptor WASM godot on Firefox with optimizing JIT" + variants: ["fission"] + try-name: raptor-wasm-godot-optimizing-firefox + treeherder-symbol: Rap(godot-i) + max-run-time: + by-test-platform: + .*-qr/.*: 2100 + .*-ref-hw-2017/.*: 2100 + default: 1500 + mozharness: + extra-options: + - --test=raptor-wasm-godot-optimizing + +raptor-wasm-godot-optimizing-firefox-profiling: + description: "Raptor WASM godot on Firefox with optimizing JIT and Gecko Profiling" + try-name: raptor-wasm-godot-optimizing-firefox-profiling + treeherder-symbol: Rap-Prof(godot-i) + max-run-time: 900 + mozharness: + extra-options: + - --test=raptor-wasm-godot-optimizing + - --gecko-profile + +raptor-youtube-playback-v9-power-firefox: + description: "Raptor V9 YouTube Playback on Firefox with Power Testing" + try-name: raptor-youtube-playback-v9-power-firefox + treeherder-symbol: Rap(ytp-v9-p) + run-on-projects: + by-test-platform: + (linux|windows|macos)(?!.*shippable).*: [] + default: ["mozilla-central"] + max-run-time: 2700 + tier: 3 + mozharness: + extra-options: + - --test=raptor-youtube-playback-v9 + - --power-test + +raptor-youtube-playback-h264-power-firefox: + description: "Raptor H264 YouTube Playback on Firefox with Power Testing" + try-name: raptor-youtube-playback-h264-power-firefox + treeherder-symbol: Rap(ytp-h264-p) + run-on-projects: + by-test-platform: + (linux|windows|macos)(?!.*shippable).*: [] + default: ["mozilla-central"] + max-run-time: 2700 + tier: 3 + mozharness: + extra-options: + - --test=raptor-youtube-playback-h264 + - --power-test + +raptor-youtube-playback-av1-sfr-firefox: + description: "Raptor YouTube Playback AV1 SFR on Firefox" + variants: ["fission"] + try-name: raptor-youtube-playback-av1-sfr-firefox + treeherder-symbol: Rap(ytp-av1-sfr) + run-on-projects: + by-test-platform: + windows10-64-ref-hw-2017/opt: ['mozilla-central'] + (linux|windows|macos)(?!.*shippable).*: [] + default: ['mozilla-central'] + limit-platforms: + - windows10-64-ref-hw-2017/opt + - macosx1014-64-shippable-qr/opt + max-run-time: + by-test-platform: + windows10-aarch64/opt: 3600 + default: 2700 + mozharness: + extra-options: + - --test=raptor-youtube-playback-av1-sfr + +raptor-youtube-playback-h264-sfr-firefox: + description: "Raptor YouTube Playback H264 SFR on Firefox" + variants: ["fission"] + try-name: raptor-youtube-playback-h264-sfr-firefox + treeherder-symbol: Rap(ytp-h264-sfr) + run-on-projects: + by-test-platform: + windows7-32.*/opt: [] + windows10-64-ref-hw-2017/opt: ['mozilla-central'] + (linux|windows10|macos)(?!.*shippable).*: [] + default: ['mozilla-central'] + max-run-time: + by-test-platform: + windows10-aarch64/opt: 3600 + default: 2700 + mozharness: + extra-options: + - --test=raptor-youtube-playback-h264-sfr + +raptor-youtube-playback-hfr-firefox: + description: "Raptor YouTube Playback HFR on Firefox" + variants: ["fission"] + try-name: raptor-youtube-playback-hfr-firefox + treeherder-symbol: Rap(ytp-hfr) + run-on-projects: + by-test-platform: + windows7-32.*/opt: [] + windows10-64-ref-hw-2017/opt: ['mozilla-central'] + (linux|windows10|macos)(?!.*shippable).*: [] + default: ['mozilla-central'] + max-run-time: 3600 + tier: 2 + mozharness: + extra-options: + - --test=raptor-youtube-playback-hfr + +raptor-youtube-playback-vp9-sfr-firefox: + description: "Raptor YouTube Playback VP9 SFR on Firefox" + variants: ["fission"] + try-name: raptor-youtube-playback-vp9-sfr-firefox + treeherder-symbol: Rap(ytp-vp9-sfr) + run-on-projects: + by-test-platform: + windows7-32.*/opt: [] + windows10-64-ref-hw-2017/opt: ['mozilla-central'] + (linux|windows10|macos)(?!.*shippable).*: [] + default: ['mozilla-central'] + max-run-time: + by-test-platform: + windows10-aarch64/opt: 3600 + default: 2700 + limit-platforms: + - android-hw-p2.* + mozharness: + extra-options: + - --test=raptor-youtube-playback-vp9-sfr + +raptor-youtube-playback-widevine-hfr-firefox: + description: "Raptor YouTube Playback Widevine HFR on Firefox" + variants: ["fission"] + try-name: raptor-youtube-playback-widevine-hfr-firefox + treeherder-symbol: Rap(ytp-widevine-hfr) + run-on-projects: + by-test-platform: + windows7-32.*/opt: [] + windows10-64-ref-hw-2017/opt: ['mozilla-central'] + (linux|windows10|macos)(?!.*shippable).*: [] + default: ['mozilla-central'] + max-run-time: + by-test-platform: + windows10-aarch64/opt: 3600 + default: 2700 + mozharness: + extra-options: + - --test=raptor-youtube-playback-widevine-hfr + +raptor-youtube-playback-widevine-h264-sfr-firefox: + description: "Raptor YouTube Playback Widevine H264 SFR on Firefox" + variants: ["fission"] + try-name: raptor-youtube-playback-widevine-h264-sfr-firefox + treeherder-symbol: Rap(ytp-widevine-h264-sfr) + run-on-projects: + by-test-platform: + windows7-32.*/opt: [] + windows10-64-ref-hw-2017/opt: ['mozilla-central'] + (linux|windows10|macos)(?!.*shippable).*: [] + default: ['mozilla-central'] + max-run-time: + by-test-platform: + windows10-aarch64/opt: 3600 + default: 2700 + mozharness: + extra-options: + - --test=raptor-youtube-playback-widevine-h264-sfr + +raptor-youtube-playback-widevine-vp9-sfr-firefox: + description: "Raptor YouTube Playback Widevine VP9 SFR on Firefox" + variants: ["fission"] + try-name: raptor-youtube-playback-widevine-vp9-sfr-firefox + treeherder-symbol: Rap(ytp-widevine-vp9-sfr) + run-on-projects: + by-test-platform: + windows10-64-ref-hw-2017/opt: ['mozilla-central'] + (linux|windows|macos)(?!.*shippable).*: [] + default: ['mozilla-central'] + max-run-time: + by-test-platform: + windows10-aarch64/opt: 3600 + default: 2700 + limit-platforms: + - android-hw-p2.* + mozharness: + extra-options: + - --test=raptor-youtube-playback-widevine-vp9-sfr + +raptor-ares6-firefox: + description: "Raptor Ares6 on Firefox" + variants: ["fission"] + try-name: raptor-ares6-firefox + treeherder-symbol: Rap(ares6) + max-run-time: 2500 + mozharness: + extra-options: + - --test=raptor-ares6 + +raptor-ares6-firefox-profiling: + description: "Raptor Ares6 on Firefox with Gecko Profiling" + try-name: raptor-ares6-firefox-profiling + treeherder-symbol: Rap-Prof(ares6) + max-run-time: 2500 + tier: 3 + mozharness: + extra-options: + - --test=raptor-ares6 + - --gecko-profile + +raptor-jetstream2-firefox: + description: "Raptor Jetstream2 on Firefox" + variants: ["fission"] + try-name: raptor-jetstream2-firefox + treeherder-symbol: Rap(js2) + run-on-projects: + by-test-platform: + windows7-32.*/opt: [] + (linux|windows10|macos)(?!.*shippable).*: [] + default: ['mozilla-central'] + tier: 3 + max-run-time: 8000 + mozharness: + extra-options: + - --test=raptor-jetstream2 + fetches: + fetch: + - jetstream2 + +raptor-jetstream2-firefox-profiling: + description: "Raptor Jetstream2 on Firefox with Gecko Profiling" + try-name: raptor-jetstream2-firefox-profiling + treeherder-symbol: Rap-Prof(js2) + max-run-time: 8000 + tier: 3 + mozharness: + extra-options: + - --test=raptor-jetstream2 + - --gecko-profile + fetches: + fetch: + - jetstream2 diff --git a/taskcluster/ci/test/reftest.yml b/taskcluster/ci/test/reftest.yml new file mode 100644 index 0000000000..4847147ef3 --- /dev/null +++ b/taskcluster/ci/test/reftest.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: + suite: + category: reftest + target: + by-test-platform: + android-em-7.*: geckoview-androidTest.apk + android-hw-.*: geckoview-androidTest.apk + default: null + variants: ['fission'] + fission-tier: 2 + run-on-projects: + by-test-platform: + android-hw-.*-qr/debug: ['mozilla-central'] + android-hw-.*-qr/opt: ['mozilla-central', 'autoland'] + windows10-aarch64/.*: [] # Specific repos enabled below + default: built-projects + 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/androidx86_7_0.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 + default: 1 + e10s: true + run-on-projects: + by-test-platform: + windows10-aarch64/.*: ['mozilla-central', 'mozilla-beta', 'mozilla-release'] + default: built-projects + max-run-time: 3600 + tier: + by-test-platform: + windows10-aarch64.*: 2 + android-hw-.*-qr/.*: 2 + default: default + fission-tier: + by-test-platform: + linux1804-64-qr/debug: 1 + default: 2 + fission-run-on-projects: + by-test-platform: + linux1804-64-qr/debug: ['trunk'] + default: [] + +crashtest-qr: + description: "Crashtest Webrender run" + schedules-component: crashtest + treeherder-symbol: R(C) + chunks: 1 + e10s: true + run-on-projects: built-projects + max-run-time: 1200 + tier: 2 + virtualization: + by-test-platform: + windows10-64.*: hardware + default: 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.*\/opt: 2 + windows10-64-asan/opt: 3 + windows10-64-ccov-qr/opt: 5 + linux.*64-ccov.*/.*: 5 + linux1804-64-qr/opt: 4 + linux1804-64-qr/debug: 5 + linux1804-64/debug: 5 + macosx.*-64-ccov.*/.*: 5 + macosx.*-64(-shippable)?/opt: 2 + default: 3 + max-run-time: + by-test-platform: + windows10-64-ccov.*/.*: 7200 + macosx.*64-ccov.*/.*: 7200 + linux.*64-ccov.*/.*: 7200 + default: 3600 + tier: default + run-on-projects: + by-test-platform: + android-hw-.*-aarch64(?:-shippable)?/.*: ['mozilla-central', 'release'] + android-hw-.*-api-16(?:-shippable)?/.*: ['mozilla-central', 'release'] + default: built-projects + virtualization: + by-test-platform: + windows10-64.*: hardware + default: virtual + +reftest: + description: "Reftest run" + treeherder-symbol: R(R) + virtualization: + by-test-platform: + windows10-64.*: hardware + default: virtual-with-gpu + variants: + by-test-platform: + linux1804-64-qr/debug: ['webrender-sw', 'fission'] + windows10-64-qr/debug: ['webrender-sw', 'fission'] + default: ['fission'] + chunks: + by-test-platform: + android-em-7.*: 2 + linux1804-64(-shippable|-devedition|-qr)?/opt: 5 + macosx101.*-64-shippable(-qr)?/opt: 3 + macosx101.*-64/debug: 4 + macosx101.*-64(-ccov.*|-qr)/debug: 6 + windows.*/opt: 2 + windows.*/debug: 4 + windows10-64-asan/opt: 3 + windows10-64-ccov-qr/opt: 9 + default: 8 + e10s: true + run-on-projects: + by-test-platform: + windows10-aarch64/.*: ['mozilla-central', 'mozilla-beta', 'mozilla-release'] + default: built-projects + max-run-time: + by-test-platform: + windows7-32-mingwclang/debug: 5400 + windows10-64-ccov.*/.*: 5400 + windows10-64-asan/opt: 5400 + macosx.*64-ccov.*/.*: 5400 + default: 3600 + mozharness: + chunked: + by-test-platform: + android-em.*: false + macosx.*64/opt: false + windows10-64.*/opt: false + default: true + tier: + by-test-platform: + windows10-aarch64.*: 2 + android-hw-.*-qr/.*: 2 + default: default + fission-tier: + by-test-platform: + linux1804-64-qr/debug: 1 + default: 2 + fission-run-on-projects: + by-test-platform: + linux1804-64-qr/debug: ['trunk'] + default: [] + +reftest-qr: + description: "Reftest webrender run" + treeherder-symbol: R(R) + chunks: 2 + e10s: true + run-on-projects: built-projects + max-run-time: 2400 + mozharness: + chunked: true + tier: 2 + virtualization: + by-test-platform: + windows10-64.*: hardware + default: virtual + + +reftest-gpu: + description: "Reftest GPU run" + treeherder-symbol: R(Rg) + chunks: + by-test-platform: + windows.*/opt: 2 + default: 4 + run-on-projects: + by-test-platform: + windows10.*: [] + default: built-projects + instance-size: default + virtualization: virtual-with-gpu + max-run-time: 3600 + mozharness: + chunked: true + tier: default + +reftest-no-accel: + description: "Reftest not accelerated run" + treeherder-symbol: R(Ru) + virtualization: + by-test-platform: + windows10-64.*: hardware + default: virtual-with-gpu + run-on-projects: + by-test-platform: + windows10.*: [] + default: built-projects + chunks: + by-test-platform: + macosx.*: 1 + windows.*: 4 + linux1804-64(-shippable|-devedition)?/opt: 4 + default: 8 + mozharness: + chunked: + by-test-platform: + windows10-64.*/opt: false + macosx.*: false + default: true diff --git a/taskcluster/ci/test/talos.yml b/taskcluster/ci/test/talos.yml new file mode 100644 index 0000000000..4e758416ba --- /dev/null +++ b/taskcluster/ci/test/talos.yml @@ -0,0 +1,646 @@ +# 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: + windows10-64-ccov.*/.*: 3 + linux64-ccov.*/.*: 3 + default: default + variants: ['fission'] + fission-tier: 2 + virtualization: + by-test-platform: + windows10-64-ccov.*/.*: virtual + default: hardware + mozharness: + script: talos_script.py + config: + by-test-platform: + macosx.*: + - talos/mac_config.py + windows.*: + - talos/windows_config.py + windows10-64-ccov-qr/opt: + - talos/windows_vm_config.py + linux64-ccov.*/.*: + - talos/linux64_config_taskcluster.py + default: + - talos/linux_config.py + test-manifest-loader: null # don't load tests in the taskgraph + run-on-projects: + by-test-name: + talos-.*-profiling: + by-test-platform: + windows7-32.*: [] + (linux|windows10|macos)(?!.*shippable).*: [] + .*(?:shippable-qr).*: [] + windows10.*(?!shippable-qr)shippable.*: [] + default: ['mozilla-central'] + default: + by-test-platform: + windows7-32.*: [] + (linux|windows10|macos)(?!.*shippable).*: [] + default: ['mozilla-beta', 'trunk'] + fission-run-on-projects: + by-test-platform: + (linux64|windows10-64|macosx1014-64)-shippable-qr/opt: ['mozilla-central'] + default: [] + +talos-bcv: + description: "Talos basic compositor video" + try-name: bcv + treeherder-symbol: T(bcv) + variants: + by-test-platform: + (linux64|windows10|macos).*-qr.*: ['fission', 'webrender-sw'] + default: ['fission'] + run-on-projects: + by-test-platform: + .(linux|windows10|macos)(?:shippable-qr|-qr)/.*: + by-variant: + webrender-sw: ['trunk'] + default: [] + windows7-32.*: [] + (linux|windows10|macos)(?!.*shippable)(?!.*-qr).*: [] + default: ['mozilla-beta', '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: + by-test-platform: + windows7-32.*: [] + .*(?:shippable-qr|-qr)/.*: [] + (linux|windows10|macos)(?!.*shippable)(?!.*-qr).*: [] + windows10-64-shippable/opt: [] + default: ['mozilla-central'] + max-run-time: 1800 + mozharness: + extra-options: + - --suite=bcv + - --gecko-profile + +talos-chrome: + description: "Talos chrome" + try-name: chromez + treeherder-symbol: T(c) + variants: + by-test-platform: + (linux64|windows|macos).*-qr.*: ['fission', 'webrender-sw'] + default: ['fission'] + 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 + mozharness: + extra-options: + - --suite=chromez + - --gecko-profile + +talos-damp: + description: "Talos devtools (damp)" + try-name: damp + treeherder-symbol: T(damp) + max-run-time: 5400 + variants: + by-test-platform: + (linux64|windows|macos).*-qr.*: ['fission', 'webrender-sw'] + default: ['fission'] + run-on-projects: + by-test-platform: + windows7-32-shippable/.*: [] + (linux|windows|macos)(?!.*shippable).*: [] + default: ['mozilla-beta', 'trunk'] + fission-run-on-projects: + by-test-platform: + (linux64|windows10-64)-shippable-qr/opt: ['mozilla-central'] + # Bug 1657864 - Disabled on macos for high frequency intermittents + default: [] + + mozharness: + extra-options: + - --suite=damp + +talos-damp-profiling: + description: "Talos devtools (damp) with gecko profiling" + try-name: damp-prof + treeherder-symbol: T-Prof(damp) + tier: 2 + max-run-time: 5400 + run-on-projects: + by-test-platform: + windows7-32-shippable/.*: [] + (linux|windows|macos)(?!.*shippable).*: [] + default: ['mozilla-central'] + mozharness: + extra-options: + - --suite=damp + - --gecko-profile + +talos-dromaeojs: + description: "Talos dromaeojs" + try-name: dromaeojs + treeherder-symbol: T(d) + max-run-time: 2100 + 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 + mozharness: + extra-options: + - --suite=dromaeojs + - --gecko-profile + +talos-flex: + description: "Talos XUL flexbox emulation enabled" + try-name: flex + treeherder-symbol: T(f) + tier: 3 + run-on-projects: + by-test-platform: + windows7-32.*: [] + (linux|windows10|macos)(?!.*shippable).*: [] + default: ['mozilla-central'] + max-run-time: 1800 + mozharness: + extra-options: + - --suite=flex + +talos-flex-profiling: + description: "Talos XUL flexbox emulation enabled with gecko profiling" + try-name: flex-prof + treeherder-symbol: T-Prof(f) + tier: 3 + run-on-projects: + by-test-platform: + windows7-32.*: [] + (linux|windows10|macos)(?!.*shippable).*: [] + default: ['mozilla-central'] + max-run-time: 1800 + mozharness: + extra-options: + - --suite=flex + - --gecko-profile + +talos-g1: + description: "Talos g1" + try-name: g1 + treeherder-symbol: T(g1) + variants: + by-test-platform: + (linux64|windows|macos).*-qr.*: ['fission', 'webrender-sw'] + default: ['fission'] + max-run-time: + by-test-platform: + linux64.*: 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 + max-run-time: + by-test-platform: + linux64.*: 3600 + default: 7200 + mozharness: + extra-options: + - --suite=g1 + - --gecko-profile + +talos-g3: + description: "Talos g3" + try-name: g3 + treeherder-symbol: T(g3) + variants: + by-test-platform: + (linux64|windows|macos).*-qr.*: ['fission', 'webrender-sw'] + default: ['fission'] + 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 + mozharness: + extra-options: + - --suite=g3 + - --gecko-profile + +talos-g4: + description: "Talos g4" + try-name: g4 + treeherder-symbol: T(g4) + variants: + by-test-platform: + windows7-32.*: [] + (linux64|windows10|macos).*-qr.*: ['fission', 'webrender-sw'] + default: ['fission'] + run-on-projects: + by-test-platform: + windows7-32.*: [] + windows10-64-ref-hw-2017/opt: ['mozilla-central'] + (linux|windows10|macos)(?!.*shippable).*: [] + default: ['mozilla-beta', 'trunk'] + max-run-time: + by-test-platform: + linux64.*: 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: + linux64.*: 1500 + default: 1800 + 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: + by-test-platform: + (linux64|windows|macos).*-qr.*: ['fission', 'webrender-sw'] + default: ['fission'] + max-run-time: + by-test-platform: + linux64.*: 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 + mozharness: + extra-options: + - --suite=g5 + - --gecko-profile + max-run-time: + by-test-platform: + linux64.*: 1200 + default: 1800 + +talos-h1: + description: "Talos h1" + try-name: h1 + treeherder-symbol: T(h1) + mozharness: + extra-options: + - --suite=h1 + max-run-time: + by-test-platform: + linux64.*: 900 + default: 1800 + +talos-h2: + description: "Talos h2" + try-name: h2 + treeherder-symbol: T(h2) + max-run-time: + by-test-platform: + linux64.*: 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|windows|macos)(?!.*shippable).*: [] + default: ['mozilla-central'] + max-run-time: 3600 + tier: + by-test-platform: + windows10-64-ccov.*/.*: 3 + linux64-ccov.*/.*: 3 + default: 2 + mozharness: + extra-options: + - --suite=motionmark + +talos-motionmark-profiling: + description: "Talos motionmark with gecko profiling" + try-name: motionmark-prof + treeherder-symbol: T-Prof(mm) + max-run-time: 3600 + tier: + by-test-platform: + windows10-64-ccov.*/.*: 3 + linux64-ccov.*/.*: 3 + default: 2 + mozharness: + extra-options: + - --suite=motionmark + - --gecko-profile + +talos-other: + description: "Talos other" + try-name: other + treeherder-symbol: T(o) + variants: + by-test-platform: + (linux64|windows|macos).*-qr.*: ['fission', 'webrender-sw'] + default: ['fission'] + 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) + 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: + by-test-platform: + (linux64|windows|macos).*-qr.*: ['fission', 'webrender-sw'] + default: ['fission'] + run-on-projects: + by-test-platform: + windows7-32.*/opt: [] + (linux|windows10|macos)(?!.*shippable).*: [] + default: ['mozilla-central'] + 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 + 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: + by-test-platform: + (linux64|windows|macos).*-qr.*: ['fission', 'webrender-sw'] + default: ['fission'] + 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 + 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) + 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 + 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: + by-test-platform: + (linux64|windows|macos).*-qr.*: ['fission', 'webrender-sw'] + default: ['fission'] + 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 + max-run-time: 1800 + mozharness: + extra-options: + - --suite=svgr + - --gecko-profile + +talos-tp5o: + description: "Talos tp5o" + try-name: tp5o + treeherder-symbol: T(tp) + variants: + by-test-platform: + (linux64|windows|macos).*-qr.*: ['fission', 'webrender-sw'] + default: ['fission'] + 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 + 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: + by-test-platform: + (linux64|windows|macos).*-qr.*: ['fission', 'webrender-sw'] + default: ['fission'] + max-run-time: 1200 + 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 + max-run-time: 1200 + mozharness: + extra-options: + - --suite=tabswitch + - --gecko-profile + +talos-webgl: + description: "Talos WebGL" + try-name: webgl + treeherder-symbol: T(webgl) + variants: + by-test-platform: + .*-ccov.*/.*: [] + android.*: [] + windows7-32.*: [] + (linux64|windows10|macos).*-qr.*: ['webgl-ipc', 'webrender-sw'] + windows10-64-ccov-qr/opt: [] + default: ['webgl-ipc'] + run-on-projects: + by-test-platform: + windows7-32.*: [] + windows10-64-ref-hw-2017/opt: ['mozilla-central'] + (linux|windows10|macos)(?!.*shippable).*: [] + default: ['mozilla-beta', 'trunk'] + max-run-time: 1800 + mozharness: + extra-options: + - --suite=webgl + +talos-webgl-profiling: + description: "Talos WebGL with gecko profiling" + try-name: webgl + treeherder-symbol: T-Prof(webgl) + tier: 2 + run-on-projects: [] + variants: + by-test-platform: + .*-ccov.*/.*: [] + android.*: [] + windows7-32.*: [] + default: ['webgl-ipc'] + max-run-time: 1800 + mozharness: + extra-options: + - --suite=webgl + - --gecko-profile + +talos-xperf: + description: "Talos xperf" + try-name: xperf + treeherder-symbol: T(x) + virtualization: virtual + os-groups: ['Administrators'] + run-as-administrator: + by-test-platform: + windows7-32.*: false + windows10-64.*: true + variants: + by-test-platform: + (linux64|windows|macos).*-qr.*: ['fission', 'webrender-sw'] + default: ['fission'] + run-on-projects: + by-test-platform: + windows7-32-shippable(?:-qr)?/.*: [] + windows10-64-shippable(?:-qr)?/.*: ['mozilla-beta', 'trunk'] + default: [] + tier: + by-test-platform: + windows10-64-ccov.*/.*: 3 + default: default + mozharness: + extra-options: + - --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) + 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 + 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..24bd836ad2 --- /dev/null +++ b/taskcluster/ci/test/test-platforms.yml @@ -0,0 +1,537 @@ +# 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-shippable/opt: + build-platform: linux-shippable/opt + test-sets: + - linux32-tests + +linux1804-64/opt: + build-platform: linux64/opt + test-sets: + - awsy + - desktop-screenshot-capture + - linux1804-tests + - marionette-framescript + - marionette-headless + - mochitest-headless + - mochitest-webgpu + - web-platform-tests + - web-platform-tests-backlog + - web-platform-tests-wdspec-headless + +linux1804-64/debug: + build-platform: linux64/debug + test-sets: + - linux1804-tests + - mochitest-webgpu + - web-platform-tests + +linux1804-64-shippable/opt: + build-platform: linux64-shippable/opt + test-sets: + - awsy + - desktop-screenshot-capture + - linux1804-tests + - marionette-framescript + - marionette-headless + - mochitest-headless + - mochitest-webgpu + - web-platform-tests + - web-platform-tests-backlog + - web-platform-tests-wdspec-headless + +linux1804-64-devedition/opt: + build-platform: linux64-devedition/opt + test-sets: + - desktop-screenshot-capture + - linux1804-tests + - web-platform-tests + +linux1804-64-asan/opt: + build-platform: linux64-asan/opt + test-sets: + - linux1804-tests + - mochitest-webgpu + - web-platform-tests + +linux1804-64-tsan/opt: + build-platform: linux64-tsan/opt + test-sets: + - linux-tsan-tests + +linux1804-64-qr/opt: + build-platform: linux64/opt + test-sets: + - awsy + - linux1804-qr-tests + - mochitest-webgpu + - web-platform-tests + +linux1804-64-shippable-qr/opt: + build-platform: linux64-shippable/opt + test-sets: + - awsy + - linux1804-qr-tests + - mochitest-webgpu + - web-platform-tests + +linux1804-64-qr/debug: + build-platform: linux64/debug + test-sets: + - linux1804-qr-tests + - mochitest-webgpu + - web-platform-tests + +linux1804-64-asan-qr/opt: + build-platform: linux64-asan/opt + test-sets: + - linux-qr-smoketests + +linux1804-64-ccov/opt: + build-platform: linux64-ccov/opt + test-sets: + - awsy + - linux1804-tests + - linux1804-ccov-tests + - web-platform-tests + - ccov-code-coverage-tests + - mochitest-webgpu + +# Linux64 uses Ubuntu 16.04 and is run on hardware + +linux64/opt: + build-platform: linux64/opt + test-sets: + - talos + - linux-talos-flex + - raptor-firefox + - browsertime + - raptor-fetch-firefox + +linux64-shippable/opt: + build-platform: linux64-shippable/opt + test-sets: + - talos + - linux-talos-flex + - raptor-chrome + - raptor-chromium + - raptor-fetch-chromium + - raptor-firefox + - browsertime + - raptor-fetch-firefox + - raptor-profiling + - raptor-fetch-profiling + - talos-profiling + +# QR builds just run a subset right now. +linux64-qr/opt: + build-platform: linux64/opt + test-sets: + - talos + - raptor-firefox + - browsertime + - raptor-fetch-firefox + +linux64-shippable-qr/opt: + build-platform: linux64-shippable/opt + test-sets: + - talos + - talos-profiling + - raptor-firefox + - browsertime + - raptor-fetch-firefox + +linux64-ccov/opt: + build-platform: linux64-ccov/opt + test-sets: + - talos + +## +# Windows platforms (matching /windows.*/) + +# win32 +windows7-32/debug: + build-platform: win32/debug + test-sets: + - windows-reftest-gpu + - windows-tests + - web-platform-tests + - mochitest-webgpu + +windows7-32/opt: + build-platform: win32/opt + test-sets: + - awsy + - desktop-screenshot-capture + - marionette-framescript + - windows-reftest-gpu + - windows-talos + - windows-tests + - web-platform-tests + - raptor-firefox + - browsertime + - mochitest-webgpu + - web-platform-tests-wdspec-headless + +windows7-32-shippable/opt: + build-platform: win32-shippable/opt + test-sets: + - awsy + - desktop-screenshot-capture + - marionette-framescript + - windows-reftest-gpu + - windows-talos + - windows-tests + - web-platform-tests + - web-platform-tests-wdspec-headless + - raptor-chrome + - raptor-chromium + - raptor-firefox + - browsertime + - mochitest-webgpu + +# win7 qr builds for try purposes +windows7-32-qr/debug: + build-platform: win32/debug + test-sets: + - mochitest-webgpu + - windows-qr-tests + - web-platform-tests + +windows7-32-qr/opt: + build-platform: win32/opt + test-sets: + - awsy + - windows-qr-tests + - windows-talos + - web-platform-tests + +# win64 +windows10-64-ccov-qr/opt: + build-platform: win64-ccov/opt + test-sets: + - awsy + - desktop-screenshot-capture + - windows-reftest-gpu + - windows-talos + - windows-tests + - windows-ccov-tests + - windows10-tests + - web-platform-tests + - ccov-code-coverage-tests + - mochitest-webgpu + +windows10-64/debug: + build-platform: win64/debug + test-sets: + - mochitest-webgpu + - windows-tests + - windows10-tests + - web-platform-tests + +windows10-64/opt: + build-platform: win64/opt + test-sets: + - awsy + - desktop-screenshot-capture + - windows-talos + - marionette-framescript + - windows-tests + - windows10-tests + - web-platform-tests + - web-platform-tests-backlog + - raptor-firefox + - browsertime + - mochitest-webgpu + - web-platform-tests-wdspec-headless + +windows10-aarch64/opt: + build-platform: win64-aarch64-shippable/opt + test-sets: + - windows-aarch64-tests + +windows10-64-ref-hw-2017/opt: + build-platform: win64-shippable/opt + test-sets: + - raptor-firefox + - browsertime + - talos-ref-hw + +windows10-64-shippable/opt: + build-platform: win64-shippable/opt + test-sets: + - awsy + - desktop-screenshot-capture + - windows-talos + - marionette-framescript + - windows-tests + - windows10-tests + - web-platform-tests + - web-platform-tests-backlog + - web-platform-tests-wdspec-headless + - raptor-chrome + - raptor-chromium + - raptor-firefox + - browsertime + - raptor-profiling + - talos-profiling + - mochitest-webgpu + +windows10-64-devedition/opt: + build-platform: win64-devedition/opt + test-sets: + - desktop-screenshot-capture + - windows-tests + - windows10-tests + - web-platform-tests + - mochitest-webgpu + +windows10-64-asan/opt: + build-platform: win64-asan/opt + test-sets: + - windows-tests + - windows10-tests + - mochitest-webgpu + +# QR builds just run a subset right now. +windows10-64-qr/debug: + build-platform: win64/debug + test-sets: + - mochitest-webgpu + - windows-qr-tests + - web-platform-tests + +windows10-64-qr/opt: + build-platform: win64/opt + test-sets: + - awsy + - windows-qr-tests + - windows-talos + - raptor-firefox + - browsertime + - web-platform-tests + +windows10-64-shippable-qr/opt: + build-platform: win64-shippable/opt + test-sets: + - awsy + - windows-qr-tests + - windows-talos + - talos-profiling + - raptor-firefox + - browsertime + - web-platform-tests + - mochitest-webgpu + +windows10-64-mingwclang/debug: + build-platform: win64-mingwclang/debug + test-sets: + - mingwclang-tests-debug + +windows10-64-mingwclang/opt: + build-platform: win64-mingwclang/opt + test-sets: + - mingwclang-tests-opt + +windows7-32-mingwclang/debug: + build-platform: win32-mingwclang/debug + test-sets: + - mingwclang-win7-tests-debug + +windows7-32-mingwclang/opt: + build-platform: win32-mingwclang/opt + test-sets: + - mingwclang-tests-opt + +## +# MacOS X platforms (matching /macosx.*/) + +macosx1014-64/debug: + build-platform: macosx64/debug + test-sets: + - macosx1014-64-tests + +macosx1014-64-devedition/opt: + build-platform: macosx64-devedition/opt + test-sets: + - macosx1014-64-tests + +macosx1014-64-qr/opt: + build-platform: macosx64/opt + test-sets: + - macosx1014-64-qr-tests + - desktop-screenshot-capture + - marionette-framescript + - web-platform-tests + - web-platform-tests-backlog + - web-platform-tests-wdspec-headless + +macosx1014-64-shippable-qr/opt: + build-platform: macosx64-shippable/opt + test-sets: + - macosx1014-64-qr-tests + - macosx64-talos + - awsy + - browsertime + - desktop-screenshot-capture + - marionette-framescript + - raptor-chrome + - raptor-chromium + - raptor-firefox + - raptor-firefox-power + - raptor-profiling + - talos-profiling + - web-platform-tests + - web-platform-tests-backlog + - web-platform-tests-wdspec-headless + +macosx1014-64-devedition-qr/opt: + build-platform: macosx64-devedition/opt + test-sets: + - macosx1014-64-qr-tests + - web-platform-tests + +macosx1014-64-qr/debug: + build-platform: macosx64/debug + test-sets: + - macosx1014-64-qr-tests + - web-platform-tests + +macosx1014-64-ccov-qr/opt: + build-platform: macosx64-ccov/opt + test-sets: + - macosx1014-64-qr-tests + +## +# Android platforms (matching /android-em.*/) +# +# android-em test platforms execute on android emulators. + +android-em-7.0-x86_64/opt: + build-platform: android-x86_64/opt + test-sets: + - android-x86_64-tests + - web-platform-tests-backlog + +android-em-7.0-x86_64-shippable/opt: + build-platform: android-x86_64-shippable/opt + test-sets: + - android-x86_64-tests + - web-platform-tests-backlog + +android-em-7.0-x86_64/debug: + build-platform: android-x86_64/debug + test-sets: + - android-x86_64-tests + +android-em-7.0-x86_64-qr/opt: + build-platform: android-x86_64/opt + test-sets: + - android-x86_64-qr-tests + +android-em-7.0-x86_64-shippable-qr/opt: + build-platform: android-x86_64-shippable/opt + test-sets: + - android-x86_64-qr-tests + +android-em-7.0-x86_64-qr/debug: + build-platform: android-x86_64/debug + test-sets: + - android-x86_64-qr-tests + +# android-hw test platforms execute on real devices attached to Autophone hosts. + +# android-hw-g5-7-0 Motorola Moto G5 Android 7.0 + +android-hw-g5-7-0-arm7-api-16/opt: + build-platform: android-api-16/opt + test-sets: + - android-hw-arm7-browsertime + - android-hw-arm7-raptor-cpu-memory + - android-hw-arm7-raptor-cpu-memory-power + +android-hw-g5-7-0-arm7-api-16-shippable/opt: + build-platform: android-api-16-shippable/opt + test-sets: + - android-hw-arm7-browsertime + - android-hw-arm7-raptor-cpu-memory + - android-hw-arm7-raptor-cpu-memory-power + +# android-hw-p2-8-0 Google Pixel 2 Android 8.0 + +android-hw-p2-8-0-arm7-api-16/opt: + build-platform: android-api-16/opt + test-sets: + - android-hw-arm7-browsertime + - android-hw-arm7-pgo-unittests + - android-hw-arm7-raptor-cpu-memory + - android-hw-arm7-raptor-cpu-memory-power + +android-hw-p2-8-0-arm7-api-16-shippable/opt: + build-platform: android-api-16-shippable/opt + test-sets: + - android-hw-arm7-browsertime + - android-hw-arm7-pgo-unittests + - android-hw-arm7-raptor-cpu-memory + - android-hw-arm7-raptor-cpu-memory-power + +android-hw-p2-8-0-arm7-api-16/debug: + build-platform: android-api-16/debug + test-sets: + - android-hw-arm7-debug-unittests + +android-hw-p2-8-0-android-aarch64-qr/opt: + build-platform: android-aarch64/opt + test-sets: + - android-hw-aarch64-qr + +android-hw-p2-8-0-android-aarch64-shippable-qr/opt: + build-platform: android-aarch64-shippable/opt + test-sets: + - android-hw-aarch64-qr + +android-hw-p2-8-0-android-aarch64-qr/debug: + build-platform: android-aarch64/debug + test-sets: + - android-hw-aarch64-qr + +android-hw-p2-8-0-android-aarch64/opt: + build-platform: android-aarch64/opt + test-sets: + - android-hw-aarch64-browsertime + - android-hw-aarch64-opt-unittests + - android-hw-aarch64-raptor-cpu-memory + - android-hw-aarch64-raptor-cpu-memory-power + +android-hw-p2-8-0-android-aarch64-shippable/opt: + build-platform: android-aarch64-shippable/opt + test-sets: + - android-hw-aarch64-browsertime + - android-hw-aarch64-pgo-unittests + - android-hw-aarch64-raptor-cpu-memory + - android-hw-aarch64-raptor-cpu-memory-power + +android-hw-p2-8-0-android-aarch64/debug: + build-platform: android-aarch64/debug + test-sets: + - android-hw-aarch64-debug-unittests diff --git a/taskcluster/ci/test/test-sets.yml b/taskcluster/ci/test/test-sets.yml new file mode 100644 index 0000000000..0465c99a9f --- /dev/null +++ b/taskcluster/ci/test/test-sets.yml @@ -0,0 +1,560 @@ +# 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-print-reftest + - web-platform-tests-reftest + - web-platform-tests-wdspec + +web-platform-tests-backlog: + - web-platform-tests-backlog + - web-platform-tests-reftest-backlog + +web-platform-tests-wdspec-headless: + - web-platform-tests-wdspec-headless + +mochitest-webgpu: + - mochitest-webgpu + +talos: + - talos-bcv + - talos-chrome + - talos-damp + - 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-flex-profiling - Disabled b/c of Bug 1597736 + - 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-g4 + - talos-webgl + +raptor-firefox: + - raptor-tp6 + - raptor-tp6-live + - raptor-speedometer-firefox + - raptor-stylebench-firefox + - raptor-motionmark-htmlsuite-firefox + - raptor-motionmark-animometer-firefox + - raptor-webaudio-firefox + - raptor-sunspider-firefox + - raptor-wasm-godot-firefox + - raptor-youtube-playback-av1-sfr-firefox + - raptor-youtube-playback-h264-sfr-firefox + - raptor-youtube-playback-hfr-firefox + - raptor-youtube-playback-vp9-sfr-firefox + - raptor-youtube-playback-widevine-hfr-firefox + - raptor-youtube-playback-widevine-h264-sfr-firefox + - raptor-youtube-playback-widevine-vp9-sfr-firefox + - raptor-ares6-firefox + - raptor-jetstream2-firefox + +raptor-chrome: + - raptor-speedometer-chrome + - raptor-stylebench-chrome + - raptor-motionmark-htmlsuite-chrome + - raptor-motionmark-animometer-chrome + - raptor-webaudio-chrome + - raptor-sunspider-chrome + - raptor-wasm-godot-chrome + - raptor-ares6-chrome + - raptor-jetstream2-chrome + - raptor-youtube-playback-av1-sfr-chrome + - raptor-youtube-playback-h264-sfr-chrome + - raptor-youtube-playback-hfr-chrome + - raptor-youtube-playback-vp9-sfr-chrome + - raptor-youtube-playback-widevine-hfr-chrome + - raptor-youtube-playback-widevine-h264-sfr-chrome + - raptor-youtube-playback-widevine-vp9-sfr-chrome + +raptor-profiling: + - raptor-speedometer-firefox-profiling + - raptor-stylebench-firefox-profiling + - raptor-motionmark-htmlsuite-firefox-profiling + - raptor-motionmark-animometer-firefox-profiling + - raptor-webaudio-firefox-profiling + - raptor-sunspider-firefox-profiling + - raptor-wasm-godot-firefox-profiling + - raptor-ares6-firefox-profiling + - raptor-jetstream2-firefox-profiling + +raptor-chromium: + - raptor-speedometer-chromium + - raptor-stylebench-chromium + - raptor-motionmark-htmlsuite-chromium + - raptor-motionmark-animometer-chromium + - raptor-webaudio-chromium + - raptor-sunspider-chromium + - raptor-wasm-godot-chromium + - raptor-ares6-chromium + - raptor-jetstream2-chromium + +# Fetch tasks are only supported on Linux for now, +# so these need to be separate sets. +raptor-fetch-firefox: + - raptor-unity-webgl-firefox + - raptor-wasm-misc-firefox + - raptor-wasm-misc-baseline-firefox + - raptor-wasm-misc-optimizing-firefox + - raptor-wasm-godot-baseline-firefox + - raptor-wasm-godot-optimizing-firefox + - raptor-assorted-dom-firefox + +raptor-fetch-profiling: + - raptor-unity-webgl-firefox-profiling + - raptor-wasm-misc-firefox-profiling + - raptor-wasm-misc-baseline-firefox-profiling + - raptor-wasm-misc-optimizing-firefox-profiling + - raptor-wasm-godot-baseline-firefox-profiling + - raptor-wasm-godot-optimizing-firefox-profiling + - raptor-assorted-dom-firefox-profiling + +raptor-fetch-chromium: + - raptor-unity-webgl-chromium + - raptor-wasm-misc-chromium + - raptor-assorted-dom-chromium + - raptor-jetstream2-chromium + +browsertime: + - browsertime-tp6 + - browsertime-speedometer + - browsertime-ares6 + - browsertime-tp6-profiling + +# Raptor desktop power tests +# (requires Intel Power Gadget to be pre-installed) +raptor-firefox-power: + - raptor-youtube-playback-v9-power-firefox + - raptor-youtube-playback-h264-power-firefox + +awsy: + - awsy + - awsy-base + - awsy-dmd + - awsy-base-dmd + - awsy-tp6 + +ccov-code-coverage-tests: + - test-coverage + - test-coverage-wpt + +mochitest-headless: + - mochitest-plain-headless + +mochitest-valgrind: + - mochitest-valgrind + +marionette-framescript: + - marionette-framescript + +marionette-headless: + - marionette-headless + +desktop-screenshot-capture: + - browser-screenshots + + +### Specific platform test sets + +# Linux + +linux32-tests: + - web-platform-tests + +linux1804-tests: + - cppunit + - crashtest + - firefox-ui-functional-local + - firefox-ui-functional-remote + - gtest + # - jittest # See comment in linux1804-ccov-tests set. + - jsreftest + - marionette + - mochitest-a11y + - mochitest-browser-chrome + - 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-no-accel + - telemetry-tests-client + - test-verify + - test-verify-gpu + - test-verify-wpt + - xpcshell + +linux1804-qr-tests: + - cppunit + - crashtest + - gtest + # - jittest # See comment in linux1804-ccov-tests set. + - jsreftest + - mochitest-a11y + - mochitest-chrome + - mochitest-chrome-gpu + - mochitest-media + - mochitest-plain + - mochitest-plain-gpu + - mochitest-remote + - mochitest-webgl1-core + - mochitest-webgl1-ext + - mochitest-webgl2-core + - mochitest-webgl2-ext + - reftest + - 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 + +linux-qr-smoketests: + - crashtest + - reftest + +linux-talos-flex: + - talos-flex + +# Windows + +windows-qr-tests: + - crashtest + - mochitest-chrome-gpu + - mochitest-browser-chrome + - mochitest-plain + - mochitest-plain-gpu + - mochitest-media + - mochitest-webgl1-core + - mochitest-webgl2-core + - reftest + +windows-reftest-gpu: + - reftest-gpu + +windows-tests: + - cppunit + - crashtest + - firefox-ui-functional-local + - firefox-ui-functional-remote + - gtest + # - jittest # See comment in windows-ccov-tests set. + - jsreftest + - marionette + - mochitest-a11y + - mochitest-browser-chrome + - mochitest-chrome + - mochitest-chrome-gpu + - mochitest-media + - mochitest-plain + - mochitest-plain-gpu + - mochitest-remote + - reftest + - reftest-no-accel + - telemetry-tests-client + - test-verify + - test-verify-gpu + - test-verify-wpt + - xpcshell + +windows-ccov-tests: + # jittest run on regular windows builds is redundant with SM(p), so we omit + # it from the windows-tests set. 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 + +windows10-tests: + - mochitest-webgl1-core + - mochitest-webgl1-ext + - mochitest-webgl2-core + - mochitest-webgl2-ext + - mochitest-devtools-chrome + +mingwclang-tests-debug: + - cppunit + - firefox-ui-functional-local + - firefox-ui-functional-remote + - 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-win7-tests-debug: + - cppunit + - firefox-ui-functional-local + - firefox-ui-functional-remote + - 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: + - cppunit + - mochitest-chrome-gpu + - mochitest-plain-gpu + +windows-aarch64-tests: + - crashtest + - mochitest-media + - reftest + +windows-talos: + - talos-bcv + - talos-chrome + - talos-damp + - 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-xperf + - talos-tabswitch + - talos-realworld-webextensions + - talos-webgl + # - talos-h1 Bug 1487031 - Disabled for not finding actionable regressions + +# macOS + +macosx1014-64-tests: + - crashtest + - reftest + - web-platform-tests-reftest + +macosx1014-64-qr-tests: + - cppunit + - crashtest + - firefox-ui-functional-local + - firefox-ui-functional-remote + - gtest + - jittest + - jsreftest + - marionette + - mochitest-a11y + - mochitest-browser-chrome + - mochitest-chrome + - mochitest-chrome-gpu + - mochitest-devtools-chrome + - mochitest-plain + - mochitest-plain-gpu + - mochitest-media + - 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 + - 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 # Bug 1453007 times out + # - talos-h1 # too long to unpack profile- Bug 1442893 + +# Android + +android-x86_64-tests: + - cppunit + - 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 + - xpcshell + +android-x86_64-qr-tests: + - crashtest + - geckoview-junit + - mochitest-media + - mochitest-plain + - mochitest-plain-gpu + - web-platform-tests + - web-platform-tests-crashtest + - web-platform-tests-reftest + - reftest + +android-hw-aarch64-opt-unittests: + - jittest + +android-hw-arm7-pgo-unittests: + - jittest + - jsreftest + +android-hw-aarch64-pgo-unittests: + - jittest + +android-hw-arm7-debug-unittests: + - jittest + - jsreftest + +android-hw-aarch64-debug-unittests: + - jittest + +android-hw-aarch64-qr: + - crashtest-qr + - reftest-qr + - mochitest-media + - mochitest-webgl1-core + - mochitest-webgl1-ext + - mochitest-webgl2-core + +android-hw-arm7-raptor-cpu-memory: + - raptor-speedometer-geckoview-cpu-memory + - raptor-scn-cpu-memory-idle-geckoview + - raptor-scn-cpu-memory-idle-refbrow + - raptor-scn-cpu-memory-idle-bg-geckoview + - raptor-scn-cpu-memory-idle-bg-refbrow + +android-hw-arm7-raptor-cpu-memory-power: + - raptor-speedometer-geckoview-cpu-memory-power + - raptor-scn-cpu-memory-power-idle-geckoview + - raptor-scn-cpu-memory-power-idle-refbrow + - raptor-scn-cpu-memory-power-idle-bg-geckoview + - raptor-scn-cpu-memory-power-idle-bg-refbrow + +android-hw-aarch64-raptor-cpu-memory: + - raptor-speedometer-geckoview-cpu-memory + - raptor-scn-cpu-memory-idle-geckoview + - raptor-scn-cpu-memory-idle-refbrow + - raptor-scn-cpu-memory-idle-bg-geckoview + - raptor-scn-cpu-memory-idle-bg-refbrow + +android-hw-aarch64-raptor-cpu-memory-power: + - raptor-speedometer-geckoview-cpu-memory-power + - raptor-scn-cpu-memory-power-idle-geckoview + - raptor-scn-cpu-memory-power-idle-refbrow + - raptor-scn-cpu-memory-power-idle-bg-geckoview + - raptor-scn-cpu-memory-power-idle-bg-refbrow + +android-hw-aarch64-browsertime: + - browsertime-power + - browsertime-tp6m + - browsertime-tp6m-live + - browsertime-tp6m-profiling + - browsertime-speedometer-mobile + - browsertime-youtube-playback-mobile + - browsertime-unity-webgl-mobile + +android-hw-arm7-browsertime: + - browsertime-power + - browsertime-tp6m + - browsertime-tp6m-live + - browsertime-tp6m-profiling + - browsertime-speedometer-mobile + - browsertime-youtube-playback-mobile + - browsertime-unity-webgl-mobile + +linux-tsan-tests: + - mochitest-a11y + - mochitest-browser-chrome + - mochitest-media + - mochitest-plain + - web-platform-tests + - web-platform-tests-reftest + - xpcshell diff --git a/taskcluster/ci/test/web-platform.yml b/taskcluster/ci/test/web-platform.yml new file mode 100644 index 0000000000..b669421775 --- /dev/null +++ b/taskcluster/ci/test/web-platform.yml @@ -0,0 +1,342 @@ +# 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 + variants: + by-test-platform: + linux.*64/debug: ['fission'] + default: ['fission'] + fission-run-on-projects: + by-test-platform: + linux.*64-qr/debug: ['trunk'] + linux.*64(-shippable)?-qr/opt: ['trunk'] + windows10-64(-shippable)?-qr/opt: ['trunk'] + default: [] + fission-tier: + by-test-platform: + linux.*64-qr/debug: 1 + linux.*64(-shippable)?-qr/opt: 1 + windows10-64(-shippable)?-qr/opt: 1 + default: 2 + 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/androidx86_7_0.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(-qr)?/opt: geckoview-androidTest.apk + android-em-7.0-x86_64(-qr)?/opt: geckoview-androidTest.apk + android-em-7.0-x86_64(-qr)?/debug: geckoview-androidTest.apk + default: null + python-3: true + +web-platform-tests: + description: "Web platform test run" + suite: web-platform-tests + treeherder-symbol: W(wpt) + virtualization: + by-test-platform: + windows10-64.*/.*: hardware + default: virtual + chunks: + by-test-platform: + android.*: 16 + linux.*64-tsan/opt: 26 + linux.*64-asan/opt: 22 + linux.*64-ccov.*/opt: 20 + linux.*/debug: 16 + macosx.*/debug: 18 + windows7.*/opt: 12 + windows.*/debug: 14 + windows10-64-ccov.*/opt: 14 + default: 10 + max-run-time: + by-test-platform: + .*-ccov.*/.*: 10800 + linux.*64-tsan/opt: 14400 + linux.*64-asan/opt: 14400 + linux.*64(-qr)?/debug: 10800 + macosx.*/debug: 10800 + android-em.*/.*: 10800 + default: 7200 + e10s: true + run-on-projects: + by-test-platform: + linux1804-32-shippable/opt: ['release'] # skip integration, Bug 1599197 + linux.*-qr/.*: ['release'] # skip on integration branches due to high load + windows.*-qr/.*: ['release'] # skip on integration branches due to high load + default: built-projects + mozharness: + chunked: true + extra-options: + - --test-type=testharness + - --skip-implementation-status=backlog + - --skip-implementation-status=not-implementing + +web-platform-tests-backlog: + description: "Web platform test (backlog) run" + treeherder-symbol: W-b(wpt) + chunks: + by-test-platform: + android.*: 3 + default: 1 + max-run-time: + by-test-platform: + android.*/opt: 7200 + default: 3600 + variants: [] + e10s: true + run-on-projects: ['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 + +web-platform-tests-reftest: + description: "Web platform reftest run" + schedules-component: web-platform-tests-reftest + treeherder-symbol: W(Wr) + virtualization: + by-test-platform: + windows10-64.*-qr/.*: virtual-with-gpu + default: virtual + chunks: + by-test-platform: + .*-ccov.*/.*: 8 + linux.*64-tsan/opt: 8 + linux1804-64(-qr|-asan)/.*: 6 + linux1804-64(-shippable|-devedition)?/opt: 3 + macosx10.*-64/debug: 6 + macosx10.*-64/opt: 3 + windows.*-(32|64)(-qr)?/debug: 5 + android.*: 6 + default: 4 + e10s: true + run-on-projects: built-projects + tier: + by-test-platform: + linux1804-64-asan/opt: 2 + default: default + mozharness: + extra-options: + - --test-type=reftest + - --skip-implementation-status=backlog + - --skip-implementation-status=not-implementing + +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: [] + e10s: true + run-on-projects: ['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 + +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 + default: 3 + mozharness: + extra-options: + - --test-type=wdspec + - --setpref=toolkit.asyncshutdown.log=true + run-on-projects: + by-test-platform: + linux.*-qr/.*: ['release'] # skip on integration branches due to high load + windows.*-qr/.*: ['release'] # skip on integration branches due to high load + default: built-projects + tier: + by-test-platform: + android.*: 3 + linux.*64-asan/opt: 2 + .*-qr/.*: 2 # can't be tier-1 if it's not running on integration branches + default: default + fetches: + toolchain: + by-test-platform: + 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-wdspec-headless: + description: "Web platform webdriver-spec headless run" + suite: + name: web-platform-tests-wdspec + schedules-component: web-platform-tests-wdspec + treeherder-symbol: W(WdH) + chunks: 2 + mozharness: + extra-options: + by-test-platform: + windows.*: + - --test-type=wdspec + - --setpref=toolkit.asyncshutdown.log=true + - --headless + - --headless-width=1600 + - --headless-height=1200 + default: + - --test-type=wdspec + - --setpref=toolkit.asyncshutdown.log=true + - --headless + fetches: + toolchain: + by-test-platform: + 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 + run-on-projects: + by-test-platform: + linux.*-qr/.*: ['release'] # skip on integration branches due to high load + windows.*-qr/.*: ['release'] # skip on integration branches due to high load + default: built-projects + tier: + by-test-platform: + linux1804-64-asan/opt: 2 + .*-qr/.*: 2 # can't be tier-1 if it's not running on integration branches + default: 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: + by-test-platform: + .*-qr/.*: 2 # can't be tier-1 if it's not running on integration branches + default: default + run-on-projects: 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 + variants: [] + treeherder-symbol: TVw + max-run-time: 10800 + run-on-projects: + by-test-platform: + # do not run on ccov or asan + .*-ccov.*/.*: [] + .*-asan/.*: [] + .*shippable.*: [] + # 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 + run-on-projects: + 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..7bd3d366e0 --- /dev/null +++ b/taskcluster/ci/test/xpcshell.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/. +--- +job-defaults: + suite: xpcshell + variants: + by-test-platform: + linux1804-64/debug: ['fission', 'socketprocess_networking'] + default: ['fission'] + target: + by-test-platform: + android-em-7.*: geckoview-androidTest.apk + default: null + fission-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/androidx86_7_0.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: + windows10-64-asan/opt: false # No XPCShell on ASAN yet + windows7-32-mingwclang/opt: false + windows7-32-mingwclang/debug: false + windows10-64-mingwclang/opt: false + windows10-64-mingwclang/debug: false + windows.*: true + default: false + +xpcshell: + description: "xpcshell test run" + treeherder-symbol: X(X) + run-on-projects: + by-test-platform: + .*-tsan/opt: ['trunk'] + windows10-64-asan/opt: [] # No XPCShell on ASAN yet + default: built-projects + chunks: + by-test-platform: + .*-ccov.*/.*: 6 + windows10-64-ccov-qr/opt: 6 + android-em-7.*: 4 + macosx1014-64(-shippable|-devedition|-asan)?(-qr)?/.*: 2 + linux1804-64(-qr)?/debug: 6 + .*-tsan/opt: 8 + windows(7-32|10-64)(-shippable|-devedition|-asan|.*-qr)?/.*: 2 + default: 5 + max-run-time: + by-test-platform: + macosx1014-64(-shippable|-devedition|-asan)?(-qr)?/.*: 5400 + windows(7-32|10-64)(-shippable)?/opt: 5400 + .*-ccov.*/.*: 7200 + .*-tsan/opt: 7200 + android-em-7.*: 5400 + default: 2700 + allow-software-gl-layers: false + tier: + by-test-platform: + windows10-64-asan.*: 3 + default: 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.*aarch64.*: + - win32-node + - win32-minidump-stackwalk + 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 + - linux64-node + - linux64-minidump-stackwalk diff --git a/taskcluster/ci/toolchain/android.yml b/taskcluster/ci/toolchain/android.yml new file mode 100644 index 0000000000..d3ee12b25e --- /dev/null +++ b/taskcluster/ci/toolchain/android.yml @@ -0,0 +1,84 @@ +# 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 + worker: + docker-image: {in-tree: android-build} + max-run-time: 1800 + +linux64-android-sdk-linux-repack: + description: "Android SDK (Linux) repack toolchain build" + treeherder: + symbol: TL(android-sdk-linux) + worker: + artifacts: + - name: project/gecko/android-sdk + path: /builds/worker/project/gecko/android-sdk/ + type: directory + 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 + +linux64-android-emulator-linux-repack: + description: "Android Emulator (Linux) repack toolchain build" + treeherder: + symbol: TL(android-emulator-linux) + worker: + artifacts: + - name: project/gecko/android-emulator + path: /builds/worker/project/gecko/android-emulator/ + type: directory + 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 + +linux64-android-ndk-linux-repack: + description: "Android NDK (Linux) repack toolchain build" + treeherder: + symbol: TL(android-ndk-linux) + worker: + artifacts: + - name: project/gecko/android-ndk + path: /builds/worker/project/gecko/android-ndk/ + type: directory + 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-api-16-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 + toolchain: + # Aliases aren't allowed for toolchains depending on toolchains. + - linux64-android-sdk-linux-repack + - linux64-node diff --git a/taskcluster/ci/toolchain/cbindgen.yml b/taskcluster/ci/toolchain/cbindgen.yml new file mode 100644 index 0000000000..8ed16bc7fa --- /dev/null +++ b/taskcluster/ci/toolchain/cbindgen.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/. +--- +job-defaults: + description: "cbindgen toolchain build" + attributes: + local-toolchain: true + worker-type: b-linux + worker: + max-run-time: 3600 + run: + script: build-cbindgen.sh + toolchain-artifact: public/build/cbindgen.tar.xz + run-on-projects: [trunk] + fetches: + fetch: + # If you update this, make sure to update the minimum version in + # build/moz.configure/bindgen.configure as well. + - cbindgen-0.16.0 + +linux64-cbindgen: + treeherder: + symbol: TL(cbindgen) + worker: + max-run-time: 1800 + run: + arguments: ['x86_64-unknown-linux-gnu'] + fetches: + toolchain: + - linux64-rust-1.47 + +macosx64-cbindgen: + treeherder: + symbol: TM(cbindgen) + worker: + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-releng.manifest" + run: + arguments: ['x86_64-apple-darwin'] + resources: + - taskcluster/scripts/misc/tooltool-download.sh + tooltool-downloads: internal + fetches: + toolchain: + - linux64-cctools-port-clang-11 + - linux64-clang-11 + - linux64-llvm-dsymutil + - linux64-rust-macos-1.47 + +win64-cbindgen: + treeherder: + symbol: TW64(cbindgen) + worker-type: b-win2012 + worker: + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/vs2017.manifest" + run: + arguments: ['x86_64-pc-windows-msvc'] + resources: + - taskcluster/scripts/misc/tooltool-download.sh + toolchain-artifact: public/build/cbindgen.tar.bz2 + tooltool-downloads: internal + fetches: + toolchain: + - win64-rust-1.47 diff --git a/taskcluster/ci/toolchain/cctools-port.yml b/taskcluster/ci/toolchain/cctools-port.yml new file mode 100644 index 0000000000..091868ccca --- /dev/null +++ b/taskcluster/ci/toolchain/cctools-port.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/. +--- +job-defaults: + description: "cctools-port toolchain build" + worker-type: b-linux + worker: + max-run-time: 1800 + fetches: + fetch: + - cctools-port + - libtapi + +linux64-cctools-port-clang-11: + treeherder: + symbol: TL(cctools-clang-11) + run: + script: build-cctools-port.sh + toolchain-alias: linux64-cctools-port + toolchain-artifact: public/build/cctools.tar.xz + tooltool-downloads: internal + fetches: + toolchain: + - linux64-clang-11 + - linux64-binutils diff --git a/taskcluster/ci/toolchain/clang-tidy.yml b/taskcluster/ci/toolchain/clang-tidy.yml new file mode 100644 index 0000000000..f4be606c2c --- /dev/null +++ b/taskcluster/ci/toolchain/clang-tidy.yml @@ -0,0 +1,125 @@ +# 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 + 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/moz.build' + - 'build/clang-plugin/Makefile.in' + - 'build/build-clang/build-clang.py' + fetches: + fetch: + - clang-11 + +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' + run-on-projects: + - trunk + fetches: + toolchain: + - linux64-binutils + - linux64-gcc-7 + +macosx64-clang-tidy: + index: + job-name: macosx64-clang-tidy + treeherder: + symbol: TM(clang-tidy) + worker-type: b-linux-large + worker: + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-releng.manifest" + run: + using: toolchain-script + script: build-clang.sh + tooltool-downloads: internal + arguments: + - 'build/build-clang/clang-tidy-macosx64.json' + resources: + - 'build/build-clang/clang-tidy-macosx64.json' + - 'taskcluster/scripts/misc/tooltool-download.sh' + run-on-projects: + - trunk + fetches: + toolchain: + - linux64-binutils + - linux64-cctools-port-clang-11 + - linux64-clang-11-macosx-cross + - linux64-gcc-7 + - linux64-node + +win64-clang-tidy: + description: "Clang-tidy toolchain build" + index: + job-name: win64-clang-tidy + treeherder: + symbol: TW64(clang-tidy) + tier: 2 + worker-type: b-win2012 + worker: + max-run-time: 7200 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/vs2017.manifest" + run: + script: build-clang.sh + arguments: + - 'build/build-clang/clang-tidy-win64.json' + resources: + - 'build/build-clang/clang-tidy-win64.json' + tooltool-downloads: internal + run-on-projects: + - trunk + fetches: + fetch: + - cmake + - ninja + +linux64-clang-tidy-external: + attributes: + local-toolchain: false + index: + job-name: linux64-clang-tidy-external + treeherder: + symbol: TL(clang-tidy-e) + worker: + artifacts: + - name: project/civet/clang-tidy.tar.zst + path: /builds/worker/private-artifacts/clang-tidy.tar.zst + type: file + 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-binutils + - linux64-gcc-7 diff --git a/taskcluster/ci/toolchain/clang.yml b/taskcluster/ci/toolchain/clang.yml new file mode 100644 index 0000000000..7706a20af0 --- /dev/null +++ b/taskcluster/ci/toolchain/clang.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/. +--- +job-defaults: + worker-type: b-linux-xlarge + worker: + max-run-time: 7200 + run: + resources: + - 'build/build-clang/build-clang.py' + +linux64-clang-5.0: + description: "Clang 5.0 toolchain build" + treeherder: + symbol: TL(clang5.0) + worker-type: b-linux-large + run: + script: build-clang.sh + arguments: + - 'build/build-clang/clang-5.0-linux64.json' + resources: + - 'build/build-clang/clang-5.0-linux64.json' + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-5.0 + toolchain: + - linux64-binutils + - linux64-gcc-7 + +linux64-clang-7: + description: "Clang 7 toolchain build" + treeherder: + symbol: TL(clang7) + run: + using: toolchain-script + script: build-clang.sh + arguments: + - 'build/build-clang/clang-7-linux64.json' + resources: + - 'build/build-clang/clang-7-linux64.json' + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-7 + toolchain: + - linux64-binutils + - linux64-gcc-7 + +linux64-clang-11-mingw-x86: + description: "MinGW-Clang 11 x86 toolchain build" + treeherder: + symbol: TMW(clang-x86) + run: + script: build-clang-mingw.sh + arguments: + - 'x86' + - 'build/build-clang/clang-11-mingw.json' + resources: + - 'build/build-clang/clang-11-mingw.json' + toolchain-alias: linux64-clang-mingw-x86 + toolchain-artifact: public/build/clangmingw.tar.zst + fetches: + fetch: + - clang-11 + - mingw-w64 + - libunwind + - llvm-mingw + - gcc-9.3.0 + toolchain: + - linux64-gcc-7 + - linux64-binutils + +linux64-clang-11-mingw-x64: + description: "MinGW-Clang 11 x64 toolchain build" + treeherder: + symbol: TMW(clang-x64) + tier: 1 + run: + script: build-clang-mingw.sh + arguments: + - 'x64' + - 'build/build-clang/clang-11-mingw.json' + resources: + - 'build/build-clang/clang-11-mingw.json' + toolchain-alias: linux64-clang-mingw-x64 + toolchain-artifact: public/build/clangmingw.tar.zst + fetches: + fetch: + - clang-11 + - mingw-w64 + - libunwind + - llvm-mingw + - gcc-9.3.0 + toolchain: + - linux64-gcc-7 + - linux64-binutils + +linux64-clang-10: + description: "Clang 10 toolchain build" + treeherder: + symbol: TL(clang10) + run: + using: toolchain-script + script: build-clang.sh + arguments: + - 'build/build-clang/clang-10-linux64.json' + resources: + - 'build/build-clang/clang-10-linux64.json' + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-10 + toolchain: + - linux64-binutils + - linux64-gcc-7 + - wasi-sysroot + +linux64-clang-11: + description: "Clang 11 toolchain build" + attributes: + local-toolchain: true + treeherder: + symbol: TL(clang11) + run-on-projects: [trunk] + run: + using: toolchain-script + script: build-clang.sh + arguments: + - 'build/build-clang/clang-11-linux64.json' + resources: + - 'build/build-clang/clang-11-linux64.json' + toolchain-alias: linux64-clang + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-11 + toolchain: + - linux64-binutils + - linux64-gcc-7 + - wasi-sysroot-11 + +linux64-clang-11-android-cross: + description: "Clang 11 toolchain build" + treeherder: + symbol: TL(clang11-android) + run: + using: toolchain-script + script: build-clang.sh + arguments: + - 'build/build-clang/clang-11-android.json' + resources: + - 'build/build-clang/clang-11-android.json' + toolchain-alias: linux64-clang-android-cross + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-11 + toolchain: + - linux64-binutils + - linux64-gcc-7 + - linux64-android-ndk-linux-repack + +linux64-clang-11-aarch64-cross: + description: "Clang 11 toolchain build with aarch64 runtime" + treeherder: + symbol: TL(clang11-aarch64) + worker-type: b-linux + worker: + max-run-time: 5400 + docker-image: {in-tree: toolchain-arm64-build} + run: + using: toolchain-script + script: build-clang.sh + arguments: + - 'build/build-clang/clang-11-linux64-aarch64-cross.json' + resources: + - 'build/build-clang/clang-11-linux64-aarch64-cross.json' + toolchain-alias: linux64-clang-aarch64-cross + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-11 + toolchain: + - linux64-binutils + - linux64-gcc-7 + +linux64-clang-11-macosx-cross: + description: "Clang 11 toolchain repack with MacOS Compiler RT libs" + treeherder: + symbol: TL(clang11-macosx-cross) + worker-type: b-linux + worker: + max-run-time: 600 + run: + script: repack-clang-linux-macosx-cross.sh + toolchain-alias: linux64-clang-macosx-cross + toolchain-artifact: public/build/clang.tar.zst + dependencies: + macosx64-aarch64-compiler-rt-11: toolchain-macosx64-aarch64-compiler-rt-11 + macosx64-x64-compiler-rt-11: toolchain-macosx64-x64-compiler-rt-11 + fetches: + toolchain: + - linux64-cctools-port-clang-11 + - linux64-clang-11 + macosx64-aarch64-compiler-rt-11: + - artifact: compiler-rt.tar.zst + dest: aarch64 + macosx64-x64-compiler-rt-11: + - artifact: compiler-rt.tar.zst + dest: x86_64 + +linux64-clang-11-win-cross: + description: "Clang 11 toolchain repack with Windows Compiler RT libs" + treeherder: + symbol: TL(clang11-win-cross) + worker-type: b-linux + worker: + max-run-time: 600 + run: + script: repack-clang-linux-win-cross.sh + toolchain-alias: linux64-clang-win-cross + toolchain-artifact: public/build/clang.tar.zst + dependencies: + win64-clang-cl-11-2stage: toolchain-win64-clang-cl-11-2stage + fetches: + toolchain: + - linux64-clang-11 + win64-clang-cl-11-2stage: + # Put this into a new directory so it doesn't conflict with the linux toolchain + - artifact: clang.tar.zst + dest: clang-cl + extract: false + +macosx64-clang-11: + description: "Clang 11 toolchain build" + attributes: + local-toolchain: true + treeherder: + symbol: TM(clang-11) + worker-type: b-linux-large + worker: + max-run-time: 3600 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-releng.manifest" + run-on-projects: + - trunk + run: + script: build-clang.sh + tooltool-downloads: internal + arguments: + - 'build/build-clang/clang-11-macosx64.json' + resources: + - 'build/build-clang/clang-11-macosx64.json' + - 'taskcluster/scripts/misc/tooltool-download.sh' + toolchain-alias: macosx64-clang + toolchain-artifact: public/build/clang.tar.zst + fetches: + fetch: + - clang-11 + toolchain: + - linux64-binutils + - linux64-cctools-port-clang-11 + - linux64-clang-11-macosx-cross + - linux64-gcc-7 + - linux64-node + +win64-clang-cl-11: + description: "Clang-cl 11 toolchain build" + attributes: + local-toolchain: true + treeherder: + symbol: TW64(clang-cl-11) + worker-type: b-win2012 + worker: + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/vs2017.manifest" + max-run-time: 9000 + run-on-projects: + - trunk + run: + script: build-clang.sh + arguments: + - 'build/build-clang/clang-11-win64.json' + resources: + - 'build/build-clang/clang-11-win64.json' + - 'taskcluster/scripts/misc/tooltool-download.sh' + toolchain-alias: win64-clang-cl + toolchain-artifact: public/build/clang.tar.zst + tooltool-downloads: internal + fetches: + fetch: + - clang-11 + - cmake + - ninja + +win64-clang-cl-11-2stage: + description: "Clang-cl 11 toolchain 2-stage quick build" + treeherder: + symbol: TW64(clang-cl-11-2stage) + worker-type: b-win2012 + worker: + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/vs2017.manifest" + run: + script: build-clang.sh + arguments: + - 'build/build-clang/clang-11-win64-2stage.json' + resources: + - 'build/build-clang/clang-11-win64-2stage.json' + - 'taskcluster/scripts/misc/tooltool-download.sh' + toolchain-alias: win64-clang-cl-2stage + toolchain-artifact: public/build/clang.tar.zst + tooltool-downloads: internal + fetches: + fetch: + - clang-11 + - cmake + - ninja diff --git a/taskcluster/ci/toolchain/dist-toolchains.yml b/taskcluster/ci/toolchain/dist-toolchains.yml new file mode 100644 index 0000000000..0c0dc53c0c --- /dev/null +++ b/taskcluster/ci/toolchain/dist-toolchains.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: + description: "sccache-dist toolchain archive build" + attributes: + local-toolchain: true + worker-type: b-linux + run-on-projects: + - trunk + 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..c650f60f8c --- /dev/null +++ b/taskcluster/ci/toolchain/dump-syms.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: + attributes: + local-toolchain: true + description: "dump_syms toolchain build" + worker: + max-run-time: 1800 + run-on-projects: [trunk] + run: + script: build-dump-syms.sh + fetches: + fetch: + - dump-syms + +linux64-dump-syms: + treeherder: + symbol: TL(dump_syms) + worker-type: b-linux + run: + toolchain-artifact: public/build/dump_syms.tar.xz + fetches: + toolchain: + - linux64-binutils + - linux64-clang-11 + - linux64-rust-1.47 + +macosx64-dump-syms: + treeherder: + symbol: TM(dump_syms) + worker-type: b-linux + worker: + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-releng.manifest" + run: + arguments: ['x86_64-apple-darwin'] + resources: + - 'taskcluster/scripts/misc/tooltool-download.sh' + tooltool-downloads: internal + toolchain-artifact: public/build/dump_syms.tar.xz + fetches: + toolchain: + - linux64-rust-macos-1.47 + - linux64-clang-11 + - linux64-cctools-port-clang-11 + - linux64-llvm-dsymutil + - linux64-binutils + +win64-dump-syms: + treeherder: + symbol: TW64(dump_syms) + worker-type: b-win2012 + worker: + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/vs2017.manifest" + run: + toolchain-artifact: public/build/dump_syms.tar.bz2 + resources: + - 'taskcluster/scripts/misc/tooltool-download.sh' + tooltool-downloads: internal + fetches: + toolchain: + - win64-rust-1.47 diff --git a/taskcluster/ci/toolchain/fix-stacks.yml b/taskcluster/ci/toolchain/fix-stacks.yml new file mode 100644 index 0000000000..30daab2172 --- /dev/null +++ b/taskcluster/ci/toolchain/fix-stacks.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/. +--- +job-defaults: + description: "fix-stacks toolchain build" + attributes: + local-toolchain: true + worker-type: b-linux + worker: + max-run-time: 1800 + run: + script: build-fix-stacks.sh + run-on-projects: + - trunk + fetches: + fetch: + - fix-stacks + +linux64-fix-stacks: + treeherder: + symbol: TL(fix-stacks) + run: + arguments: ['x86_64-unknown-linux-gnu'] + toolchain-artifact: public/build/fix-stacks.tar.xz + fetches: + toolchain: + - linux64-binutils + - linux64-clang-11 + - linux64-rust-1.47 + +macosx64-fix-stacks: + treeherder: + symbol: TM(fix-stacks) + worker: + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-releng.manifest" + run: + arguments: ['x86_64-apple-darwin'] + resources: + - taskcluster/scripts/misc/tooltool-download.sh + toolchain-artifact: public/build/fix-stacks.tar.xz + tooltool-downloads: internal + fetches: + toolchain: + - linux64-cctools-port-clang-11 + - linux64-clang-11 + - linux64-rust-macos-1.47 + +win32-fix-stacks: + treeherder: + symbol: TW32(fix-stacks) + worker: + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/vs2017.manifest" + run: + arguments: ['i686-pc-windows-msvc'] + toolchain-artifact: public/build/fix-stacks.tar.bz2 + resources: + - 'taskcluster/scripts/misc/tooltool-download.sh' + tooltool-downloads: internal + fetches: + toolchain: + - linux64-clang-11 + - linux64-liblowercase + - linux64-rust-windows-1.47 diff --git a/taskcluster/ci/toolchain/gcc.yml b/taskcluster/ci/toolchain/gcc.yml new file mode 100644 index 0000000000..7e1d10cebd --- /dev/null +++ b/taskcluster/ci/toolchain/gcc.yml @@ -0,0 +1,78 @@ +# 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 + worker: + max-run-time: 3600 + run: + resources: + - 'build/unix/build-gcc/build-gcc.sh' + toolchain-artifact: public/build/gcc.tar.xz + +linux64-gcc-7: + description: "GCC 7 toolchain build" + treeherder: + symbol: TL(gcc7) + run: + script: build-gcc-linux.sh + toolchain-alias: linux64-gcc + fetches: + fetch: + - binutils-2.31.1 + - gcc-7.4.0 + - gmp-6.1.0 + - isl-0.16.1 + - mpc-1.0.3 + - mpfr-3.1.4 + +linux64-gcc-8: + description: "GCC 8 toolchain build" + treeherder: + symbol: TL(gcc8) + run: + script: build-gcc-linux.sh + fetches: + fetch: + - binutils-2.31.1 + - gcc-8.3.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: + - binutils-2.31.1 + - gcc-9.3.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: + - binutils-2.31.1 + - gcc-9.3.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..1af7b5cdbd --- /dev/null +++ b/taskcluster/ci/toolchain/geckodriver.yml @@ -0,0 +1,112 @@ +# 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 + 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 + +macosx64-geckodriver: + treeherder: + symbol: TM(gd) + platform: macosx64/opt + worker: + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-releng.manifest" + run: + arguments: ['x86_64-apple-darwin'] + resources: + - taskcluster/scripts/misc/tooltool-download.sh + tooltool-downloads: internal + attributes: + build_platform: macosx64-geckodriver + fetches: + toolchain: + - linux64-cctools-port + - linux64-clang + - linux64-llvm-dsymutil + - linux64-rust-macos + +win32-geckodriver: + treeherder: + symbol: TW32(gd) + platform: win32/opt + worker: + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/vs2017.manifest" + run: + arguments: ['i686-pc-windows-msvc'] + resources: + - taskcluster/scripts/misc/tooltool-download.sh + toolchain-artifact: public/build/geckodriver.zip + tooltool-downloads: internal + attributes: + build_platform: win32-geckodriver + fetches: + toolchain: + - linux64-clang + - linux64-rust-windows + +win64-geckodriver: + treeherder: + symbol: TW64(gd) + platform: win64/opt + worker: + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/vs2017.manifest" + run: + arguments: ['x86_64-pc-windows-msvc'] + resources: + - taskcluster/scripts/misc/tooltool-download.sh + toolchain-artifact: public/build/geckodriver.zip + tooltool-downloads: internal + attributes: + build_platform: win64-geckodriver + fetches: + toolchain: + - linux64-clang + - linux64-rust-windows diff --git a/taskcluster/ci/toolchain/gn.yml b/taskcluster/ci/toolchain/gn.yml new file mode 100644 index 0000000000..d505fa5f83 --- /dev/null +++ b/taskcluster/ci/toolchain/gn.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: "gn toolchain build" + worker-type: b-linux + worker: + max-run-time: 1800 + run-on-projects: + - trunk + run: + resources: + - 'taskcluster/scripts/misc/build-gn-common.sh' + toolchain-artifact: public/build/gn.tar.xz + fetches: + fetch: + - gn + +linux64-gn: + treeherder: + symbol: TL(gn) + run: + script: build-gn-linux.sh + fetches: + toolchain: + - linux64-gcc-7 + +macosx64-gn: + treeherder: + symbol: TM(gn) + worker: + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-releng.manifest" + run: + script: build-gn-macosx.sh + resources: + - 'taskcluster/scripts/misc/tooltool-download.sh' + tooltool-downloads: internal + fetches: + toolchain: + - linux64-cctools-port-clang-11 + - linux64-clang-11 + +win32-gn: + treeherder: + symbol: TW64(gn) + worker-type: b-win2012 + worker: + max-run-time: 3600 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/vs2017.manifest" + run: + script: build-gn-win32.sh + resources: + - 'taskcluster/scripts/misc/tooltool-download.sh' + toolchain-artifact: public/build/gn.tar.bz2 + tooltool-downloads: internal + fetches: + fetch: + - ninja diff --git a/taskcluster/ci/toolchain/grcov.yml b/taskcluster/ci/toolchain/grcov.yml new file mode 100644 index 0000000000..b533300ba8 --- /dev/null +++ b/taskcluster/ci/toolchain/grcov.yml @@ -0,0 +1,51 @@ +# 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 + worker: + max-run-time: 1800 + run: + script: build-grcov.sh + toolchain-artifact: public/build/grcov.tar.xz + fetches: + fetch: + - grcov + +linux64-grcov: + treeherder: + symbol: TL(grcov) + fetches: + toolchain: + - linux64-rust-1.47 + - linux64-clang + - linux64-binutils + +macosx64-grcov: + treeherder: + symbol: TM(grcov) + run-on-projects: + - trunk + fetches: + toolchain: + - linux64-rust-1.47 + - linux64-clang + - linux64-binutils + +win64-grcov: + treeherder: + symbol: TW64(grcov) + worker-type: b-win2012 + worker: + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/vs2017.manifest" + run: + toolchain-artifact: public/build/grcov.tar.bz2 + resources: + - 'taskcluster/scripts/misc/tooltool-download.sh' + tooltool-downloads: internal + fetches: + toolchain: + - win64-rust-1.47 diff --git a/taskcluster/ci/toolchain/kind.yml b/taskcluster/ci/toolchain/kind.yml new file mode 100644 index 0000000000..4127ca2955 --- /dev/null +++ b/taskcluster/ci/toolchain/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: taskgraph.loader.transform:loader + +kind-dependencies: + - fetch + +transforms: + - taskgraph.transforms.try_job:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.cached_tasks:transforms + - 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 + - cbindgen.yml + - cctools-port.yml + - clang-tidy.yml + - clang.yml + - dump-syms.yml + - fix-stacks.yml + - gcc.yml + - geckodriver.yml + - gn.yml + - grcov.yml + - llvm-symbolizer.yml + - mingw.yml + - minidump_stackwalk.yml + - misc.yml + - nasm.yml + - node.yml + - resourcemonitor.yml + - rust.yml + - rust-size.yml + - sccache.yml + - dist-toolchains.yml diff --git a/taskcluster/ci/toolchain/llvm-symbolizer.yml b/taskcluster/ci/toolchain/llvm-symbolizer.yml new file mode 100644 index 0000000000..1f6fb2a8f1 --- /dev/null +++ b/taskcluster/ci/toolchain/llvm-symbolizer.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/. +--- +job-defaults: + worker-type: b-linux + worker: + max-run-time: 1800 + run: + script: repack-llvm-symbolizer.sh + toolchain-artifact: public/build/llvm-symbolizer.tar.zst + +linux64-llvm-symbolizer: + description: "llvm-symbolizer for Linux" + treeherder: + symbol: TL(llvm-symbolizer) + fetches: + toolchain: + - linux64-clang + +macosx64-llvm-symbolizer: + description: "llvm-symbolizer for Linux" + treeherder: + symbol: TM(llvm-symbolizer) + fetches: + toolchain: + - macosx64-clang + +win64-llvm-symbolizer: + description: "llvm-symbolizer for Linux" + treeherder: + symbol: TW64(llvm-symbolizer) + fetches: + toolchain: + - win64-clang-cl diff --git a/taskcluster/ci/toolchain/mingw.yml b/taskcluster/ci/toolchain/mingw.yml new file mode 100644 index 0000000000..14a9f24e56 --- /dev/null +++ b/taskcluster/ci/toolchain/mingw.yml @@ -0,0 +1,64 @@ +# 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 + worker: + docker-image: {in-tree: mingw32-build} + max-run-time: 3600 + +linux64-mingw32-gcc: + description: "GCC toolchain build for MinGW32 Cross Compile" + treeherder: + symbol: TMW(mingw32-gcc) + worker: + max-run-time: 10800 + run: + script: build-gcc-mingw32.sh + resources: + - 'build/unix/build-gcc/build-gcc.sh' + toolchain-artifact: public/build/mingw32.tar.xz + fetches: + fetch: + - binutils-2.27 + - gcc-6.4.0 + - gmp-5.1.3 + - isl-0.15 + - mpc-0.8.2 + - mpfr-3.1.5 + +linux64-mingw32-nsis: + description: "NSIS build for MinGW32 Cross Compile" + treeherder: + symbol: TMW(mingw32-nsis) + run: + script: build-mingw32-nsis.sh + resources: + - 'build/unix/build-gcc/build-gcc.sh' + - 'taskcluster/scripts/misc/build-gcc-mingw32.sh' + toolchain-artifact: public/build/nsis.tar.xz + fetches: + fetch: + - nsis-3.01 + - zlib-1.2.11 + toolchain: + - linux64-mingw32-gcc + +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.xz + 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..492e60aa2f --- /dev/null +++ b/taskcluster/ci/toolchain/minidump_stackwalk.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: + description: "minidump_stackwalk toolchain build" + attributes: + local-toolchain: true + worker-type: b-linux + worker: + max-run-time: 1800 + run: + script: build-minidump-stackwalk.sh + sparse-profile: null + resources: + - 'build/moz.configure' + - 'config/external/zlib' + - 'moz.configure' + - 'toolkit/crashreporter' + - 'toolkit/crashreporter/google-breakpad/src/processor' + - 'tools/crashreporter/' + toolchain-artifact: public/build/minidump_stackwalk.tar.xz + run-on-projects: + - trunk + +linux64-minidump-stackwalk: + treeherder: + symbol: TL(stackwalk) + fetches: + toolchain: + - linux64-clang-11 + - linux64-binutils + - linux64-rust-1.47 + +macosx64-minidump-stackwalk: + treeherder: + symbol: TM(stackwalk) + worker: + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-releng.manifest" + run: + arguments: ['macosx64'] + resources: + - 'taskcluster/scripts/misc/tooltool-download.sh' + tooltool-downloads: internal + fetches: + toolchain: + - linux64-cctools-port-clang-11 + - linux64-clang-11 + - linux64-rust-macos-1.47 + +win32-minidump-stackwalk: + treeherder: + symbol: TW32(stackwalk) + worker: + docker-image: {in-tree: mingw32-build} + run: + arguments: ['mingw32'] + fetches: + toolchain: + - linux64-clang-mingw-x86 + - mingw32-rust-1.47 diff --git a/taskcluster/ci/toolchain/misc.yml b/taskcluster/ci/toolchain/misc.yml new file mode 100644 index 0000000000..0cd7afe12d --- /dev/null +++ b/taskcluster/ci/toolchain/misc.yml @@ -0,0 +1,386 @@ +# 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 + worker: + max-run-time: 1800 + +linux64-infer: + description: "infer build" + index: + product: static-analysis + job-name: linux64-infer + treeherder: + symbol: TL(infer) + worker: + docker-image: {in-tree: static-analysis-build} + max-run-time: 3600 + run: + script: build-infer-linux.sh + resources: + - 'build/build-infer/build-infer.py' + - 'build/build-infer/infer-linux64.json' + toolchain-artifact: public/build/infer.tar.xz + +linux64-llvm-dsymutil: + description: "llvm-dsymutil toolchain build" + treeherder: + symbol: TL(dsymutil) + run: + script: build-llvm-dsymutil.sh + toolchain-artifact: public/build/llvm-dsymutil.tar.xz + fetches: + fetch: + - clang-11 + toolchain: + - linux64-gcc-7 + +linux64-binutils: + description: "Binutils toolchain build" + treeherder: + symbol: TL(binutil) + worker: + max-run-time: 3600 + run: + script: build-binutils-linux.sh + resources: + - 'build/unix/build-binutils/build-binutils.sh' + toolchain-artifact: public/build/binutils.tar.xz + fetches: + fetch: + - binutils-2.31.1 + +linux64-hfsplus: + description: "hfsplus toolchain build" + treeherder: + symbol: TL(hfs+) + run: + script: build-hfsplus-linux.sh + resources: + - 'build/unix/build-hfsplus/build-hfsplus.sh' + toolchain-artifact: public/build/hfsplus-tools.tar.xz + fetches: + fetch: + - hfsplus-tools + toolchain: + - linux64-clang-11 + +linux64-libdmg: + description: "libdmg-hfsplus toolchain build" + treeherder: + symbol: TL(libdmg-hfs+) + run: + script: build-libdmg-hfsplus.sh + toolchain-artifact: public/build/dmg.tar.xz + fetches: + fetch: + - libdmg-hfsplus + +linux64-mar-tools: + description: "mar-tools toolchain build" + treeherder: + symbol: TL(mar-tools) + fetches: + toolchain: + - linux64-clang-7 + - linux64-binutils + run: + script: build-mar-tools.sh + sparse-profile: null + toolchain-artifact: public/build/mar-tools.tar.xz + 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.xz + +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.zip, + is_debug=false, + target_cpu="x64" + ] + toolchain-artifact: public/build/d8.zip + +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.bz2 + fetches: + toolchain: + - linux64-node + +wasi-sysroot-11: + description: "wasi sysroot build using clang-11" + attributes: + local-toolchain: true + treeherder: + symbol: TL(wasi-sysroot-11) + run-on-projects: [trunk] + run: + script: build-wasi-sysroot.sh + sparse-profile: null + toolchain-alias: wasi-sysroot + toolchain-artifact: public/build/wasi-sysroot.tar.xz + fetches: + fetch: + - clang-11 + - wasi-sdk + toolchain: + - linux64-binutils + - linux64-gcc-7 + +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.lock' + - 'gfx/wr/ci-scripts/install-meson.sh' + toolchain-artifact: public/build/wrench-deps.tar.bz2 + fetches: + fetch: + - android-rs-glue + toolchain: + - linux64-rust-1.47 # whatever m-c is built with + +wgpu-deps: + description: "Downloads all the crates needed for testing wgpu" + treeherder: + symbol: Wgpu(deps) + worker: + docker-image: {in-tree: wgpu} + run: + script: wgpu-deps-vendoring.sh + sparse-profile: null + resources: + - 'gfx/wgpu/Cargo.lock' + toolchain-artifact: public/build/wgpu-deps.tar.bz2 + fetches: + fetch: + - android-rs-glue + toolchain: + - linux64-rust-1.47 # whatever m-c is built with + +linux64-lucetc: + description: "lucetc build process" + attributes: + local-toolchain: true + treeherder: + symbol: TL(lucetc) + run-on-projects: [trunk] + run: + script: build-lucetc.sh + toolchain-artifact: public/build/lucetc.tar.xz + fetches: + fetch: + - cmake + - lucetc-source + toolchain: + - linux64-binutils + - linux64-clang + - linux64-rust + +linux64-liblowercase: + description: "liblowercase" + treeherder: + symbol: TL(lc) + run: + script: build-liblowercase.sh + sparse-profile: liblowercase + toolchain-artifact: public/build/liblowercase.tar.xz + resources: + - build/liblowercase/ + fetches: + toolchain: + - linux64-rust-1.47 + +linux64-wine: + description: "Wine build for Windows Cross Compile" + treeherder: + symbol: TL(wine) + tier: 1 + worker: + docker-image: {in-tree: deb10-toolchain-build} + max-run-time: 10800 + run: + script: build-wine.sh + toolchain-artifact: public/build/wine.tar.xz + fetches: + fetch: + - wine-5.0 + +win32-pdbstr: + description: "pdbstr for 32-bits Windows" + treeherder: + symbol: TW32(pdbstr) + worker-type: b-win2012 + worker: + artifacts: + - name: project/gecko/pdbstr/pdbstr.tar.bz2 + path: pdbstr.tar.bz2 + type: file + run: + script: exfiltrate-pdbstr.sh + arguments: ['x86'] + toolchain-artifact: project/gecko/pdbstr/pdbstr.tar.bz2 + +win64-pdbstr: + description: "pdbstr for 64-bits Windows" + treeherder: + symbol: TW64(pdbstr) + worker-type: b-win2012 + worker: + artifacts: + - name: project/gecko/pdbstr/pdbstr.tar.bz2 + path: pdbstr.tar.bz2 + type: file + run: + script: exfiltrate-pdbstr.sh + arguments: ['x64'] + toolchain-artifact: project/gecko/pdbstr/pdbstr.tar.bz2 + +linux64-winchecksec: + description: "winchecksec" + treeherder: + symbol: TL(winchecksec) + worker: + docker-image: {in-tree: deb10-toolchain-build} + run: + script: build-winchecksec.sh + toolchain-artifact: public/build/winchecksec.tar.bz2 + tooltool-downloads: internal + fetches: + fetch: + - winchecksec + +win64-winchecksec: + description: "winchecksec" + treeherder: + symbol: TW64(winchecksec) + worker: + docker-image: {in-tree: deb10-toolchain-build} + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/vs2017.manifest" + run: + script: build-winchecksec.sh + toolchain-artifact: public/build/winchecksec.tar.bz2 + tooltool-downloads: internal + fetches: + fetch: + - winchecksec + toolchain: + - linux64-clang-win-cross + - linux64-liblowercase + +linux64-makecab: + description: "makecab toolchain build" + treeherder: + symbol: TL(cab) + run: + script: build-makecab.sh + toolchain-artifact: public/build/makecab.tar.zst + fetches: + fetch: + - makecab + toolchain: + - linux64-rust-1.47 + +macosx64-sdk-11.0: + description: "MacOSX11.0 SDK" + attributes: + artifact_prefix: project/gecko/mac-sdk + treeherder: + symbol: TM(sdk11) + worker-type: b-osx-1015 + worker: + max-run-time: 3600 + env: + PATH: "/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin" + run: + script: pack.sh + arguments: + - /Applications/Xcode-12.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.0.sdk + toolchain-artifact: project/gecko/mac-sdk/MacOSX11.0.sdk.tar.zst + # Expiry similar to that of fetches + expires-after: 1000 years + +macosx64-x64-compiler-rt-11: + description: "macOS x64 Compiler-rt for Clang 11 toolchain build" + treeherder: + symbol: TM(x64-crt) + worker: + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-releng.manifest" + run: + using: toolchain-script + script: build-compiler-rt.sh + arguments: + - x86_64-apple-darwin + - 'build/build-clang/rename_gcov_flush_clang_11.patch' + resources: + - 'build/build-clang/rename_gcov_flush_clang_11.patch' + toolchain-artifact: public/build/compiler-rt.tar.zst + tooltool-downloads: internal + fetches: + fetch: + - clang-11 + toolchain: + - linux64-cctools-port-clang-11 + - linux64-clang-11 + +macosx64-aarch64-compiler-rt-11: + description: "macOS aarch64 Compiler-rt for Clang 11 toolchain build" + treeherder: + symbol: TM(aarch64-crt) + run: + using: toolchain-script + script: build-compiler-rt.sh + arguments: + - aarch64-apple-darwin + - 'build/build-clang/rename_gcov_flush_clang_11.patch' + resources: + - 'build/build-clang/rename_gcov_flush_clang_11.patch' + toolchain-artifact: public/build/compiler-rt.tar.zst + fetches: + fetch: + - clang-11 + toolchain: + - linux64-cctools-port-clang-11 + - linux64-clang-11 + - macosx64-sdk-11.0 diff --git a/taskcluster/ci/toolchain/nasm.yml b/taskcluster/ci/toolchain/nasm.yml new file mode 100644 index 0000000000..cfa34948de --- /dev/null +++ b/taskcluster/ci/toolchain/nasm.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/. +--- +job-defaults: + worker-type: b-linux + worker: + max-run-time: 1800 + run-on-projects: [trunk] + run: + toolchain-artifact: public/build/nasm.tar.bz2 + +win64-nasm: + description: "nasm win64 build" + attributes: + local-toolchain: true + treeherder: + symbol: TW64(nasm) + worker: + docker-image: {in-tree: mingw32-build} + run: + script: build-nasm.sh + arguments: ['win64'] + fetches: + fetch: + - nasm-2.14.02 + toolchain: + - linux64-clang-mingw-x64 + +macosx64-nasm: + description: "nasm macosx64 build" + attributes: + local-toolchain: true + treeherder: + symbol: TM(nasm) + worker: + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-releng.manifest" + run: + script: build-nasm.sh + arguments: ['macosx64'] + resources: + - 'taskcluster/scripts/misc/tooltool-download.sh' + tooltool-downloads: internal + fetches: + fetch: + - nasm-2.14.02 + toolchain: + - linux64-cctools-port-clang-11 + - linux64-clang-11-macosx-cross + +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.14.02 + +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 diff --git a/taskcluster/ci/toolchain/node.yml b/taskcluster/ci/toolchain/node.yml new file mode 100644 index 0000000000..a74e633a52 --- /dev/null +++ b/taskcluster/ci/toolchain/node.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/. +--- +job-defaults: + description: "Node repack toolchain build" + attributes: + local-toolchain: true + worker-type: b-linux + worker: + max-run-time: 1800 + run-on-projects: [trunk] + run: + script: repack-node.sh + toolchain-artifact: public/build/node.tar.xz + +linux64-node-10: + treeherder: + symbol: TL(node-10) + run: + arguments: ['linux64', '10'] + toolchain-alias: linux64-node + +macosx64-node-10: + treeherder: + symbol: TM(node-10) + run: + arguments: ['macosx64', '10'] + toolchain-alias: macosx64-node + +win64-node-10: + treeherder: + symbol: TW64(node-10) + run: + arguments: ['win64', '10'] + toolchain-artifact: public/build/node.tar.bz2 + toolchain-alias: win64-node + +win32-node-10: + treeherder: + symbol: TW32(node-10) + run: + arguments: ['win32', '10'] + toolchain-artifact: public/build/node.tar.bz2 + toolchain-alias: win32-node diff --git a/taskcluster/ci/toolchain/resourcemonitor.yml b/taskcluster/ci/toolchain/resourcemonitor.yml new file mode 100644 index 0000000000..ff280dc764 --- /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 + 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.xz + +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..feae432856 --- /dev/null +++ b/taskcluster/ci/toolchain/rust-size.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: + description: "rust-size toolchain build" + worker: + max-run-time: 1800 + run: + script: build-rust-size.sh + fetches: + fetch: + - rust-size + +linux64-rust-size: + treeherder: + symbol: TL(rust-size) + worker-type: b-linux + run: + toolchain-artifact: public/build/rust-size.tar.xz + fetches: + toolchain: + - linux64-rust-1.47 + +win64-rust-size: + treeherder: + symbol: TW64(rust-size) + worker-type: b-win2012 + worker: + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/vs2017.manifest" + run: + toolchain-artifact: public/build/rust-size.tar.bz2 + resources: + - 'taskcluster/scripts/misc/tooltool-download.sh' + tooltool-downloads: internal + fetches: + toolchain: + - win64-rust-1.47 diff --git a/taskcluster/ci/toolchain/rust.yml b/taskcluster/ci/toolchain/rust.yml new file mode 100644 index 0000000000..35952cee16 --- /dev/null +++ b/taskcluster/ci/toolchain/rust.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: + description: "rust repack" + worker-type: b-linux + worker: + max-run-time: 7200 + run: + script: repack_rust.py + toolchain-artifact: public/build/rustc.tar.zst + +linux64-rust-1.47: + treeherder: + symbol: TL(rust-1.47) + run: + arguments: [ + '--channel', '1.47.0', + '--host', 'x86_64-unknown-linux-gnu', + '--target', 'x86_64-unknown-linux-gnu', + '--target', 'i686-unknown-linux-gnu', + '--target', 'aarch64-unknown-linux-gnu', + '--compiler-builtins-hack', + ] + fetches: + toolchain: + - linux64-clang + +linux64-rust-1.49: + treeherder: + symbol: TL(rust) + run: + arguments: [ + '--channel', '1.49.0', + '--host', 'x86_64-unknown-linux-gnu', + '--target', 'x86_64-unknown-linux-gnu', + '--target', 'i686-unknown-linux-gnu', + '--target', 'aarch64-unknown-linux-gnu', + '--compiler-builtins-hack', + ] + toolchain-alias: linux64-rust + fetches: + toolchain: + - linux64-clang + +linux64-rust-nightly: + description: "rust nightly repack" + treeherder: + symbol: TL(rust-nightly) + run: + arguments: [ + # First nightly with the version after 1.49.0, so that it's the + # closest to 1.49 release that has a bigger version number. + '--channel', 'nightly-2020-11-14', + '--host', 'x86_64-unknown-linux-gnu', + '--target', 'x86_64-unknown-linux-gnu', + '--target', 'i686-unknown-linux-gnu', + ] + +linux64-rust-dev: + description: "build rust from source" + worker-type: b-linux-large + treeherder: + symbol: TL(rust-dev) + run: + arguments: [ + '--patch', 'example.patch', + '--channel', 'dev', + '--host', 'x86_64-unknown-linux-gnu', + '--target', 'x86_64-unknown-linux-gnu', + '--compiler-builtins-hack', + ] + fetches: + fetch: + - rust-1.47.0-dev + toolchain: + - linux64-clang + - linux64-binutils + + +linux64-rust-cross-1.49: + description: "rust repack with macos and windows cross support" + treeherder: + symbol: TL(rust-cross) + run: + arguments: [ + '--channel', '1.49.0', + '--host', 'x86_64-unknown-linux-gnu', + '--target', 'x86_64-unknown-linux-gnu', + '--target', 'x86_64-apple-darwin', + '--target', 'x86_64-pc-windows-msvc', + '--target', 'i686-pc-windows-msvc', + '--target', 'aarch64-pc-windows-msvc', + ] + toolchain-alias: linux64-rust-cross + +linux64-rust-static-1.49: + description: "rust repack with static linking support" + treeherder: + symbol: TL(rust-static) + run: + arguments: [ + '--channel', '1.49.0', + '--host', 'x86_64-unknown-linux-gnu', + '--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.47: + description: "rust repack with macos-cross support" + treeherder: + symbol: TL(rust-macos-1.47) + run: + arguments: [ + '--channel', '1.47.0', + '--host', 'x86_64-unknown-linux-gnu', + '--target', 'x86_64-unknown-linux-gnu', + '--target', 'x86_64-apple-darwin', + ] + +linux64-rust-macos-1.49: + description: "rust repack with macos-cross support" + treeherder: + symbol: TL(rust-macos-1.49) + run: + arguments: [ + '--channel', '1.49.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.49: + description: "rust repack with android-cross support" + treeherder: + symbol: TL(rust-android) + run: + arguments: [ + '--channel', '1.49.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', + '--compiler-builtins-hack', + ] + toolchain-alias: linux64-rust-android + fetches: + toolchain: + - linux64-clang + +linux64-rust-windows-1.47: + description: "rust repack with windows-cross support" + treeherder: + symbol: TL(rust-win-1.47) + run: + arguments: [ + '--channel', '1.47.0', + '--host', 'x86_64-unknown-linux-gnu', + '--target', 'x86_64-unknown-linux-gnu', + '--target', 'x86_64-pc-windows-msvc', + '--target', 'i686-pc-windows-msvc', + ] + +linux64-rust-windows-1.49: + description: "rust repack with windows-cross support" + treeherder: + symbol: TL(rust-win) + run: + arguments: [ + '--channel', '1.49.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 + +win64-rust-1.47: + treeherder: + symbol: TW64(rust-1.47) + run: + arguments: [ + '--channel', '1.47.0', + '--host', 'x86_64-pc-windows-msvc', + '--target', 'x86_64-pc-windows-msvc', + '--target', 'i686-pc-windows-msvc', + '--target', 'aarch64-pc-windows-msvc', + ] + +win64-rust-1.49: + treeherder: + symbol: TW64(rust) + run: + arguments: [ + '--channel', '1.49.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.49: + treeherder: + symbol: TM(rust) + run: + arguments: [ + '--channel', '1.49.0', + '--host', 'x86_64-apple-darwin', + '--target', 'x86_64-apple-darwin', + ] + toolchain-alias: macosx64-rust + +mingw32-rust-1.47: + treeherder: + symbol: TMW(rust-1.47) + run: + arguments: [ + '--channel', '1.47.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', + ] + +mingw32-rust-1.49: + treeherder: + symbol: TMW(rust) + run: + arguments: [ + '--channel', '1.49.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..f5b5e200bc --- /dev/null +++ b/taskcluster/ci/toolchain/sccache.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/. +--- +job-defaults: + description: "sccache toolchain build" + attributes: + local-toolchain: true + treeherder: + symbol: TL(sccache) + run-on-projects: [trunk] + run: + using: toolchain-script + script: build-sccache.sh + fetches: + fetch: + - sccache + +linux64-sccache: + treeherder: + symbol: TL(sccache) + worker-type: b-linux + worker: + max-run-time: 1800 + run: + toolchain-artifact: public/build/sccache.tar.xz + fetches: + toolchain: + - linux64-rust-1.47 + - linux64-binutils + +macosx64-sccache: + treeherder: + symbol: TM(sccache) + worker-type: b-linux + worker: + max-run-time: 1800 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-releng.manifest" + run: + arguments: ['x86_64-apple-darwin'] + resources: + - 'taskcluster/scripts/misc/tooltool-download.sh' + tooltool-downloads: internal + toolchain-artifact: public/build/sccache.tar.xz + fetches: + toolchain: + - linux64-rust-macos-1.47 + - linux64-clang-11 + - linux64-cctools-port-clang-11 + - linux64-llvm-dsymutil + - linux64-binutils + +win64-sccache: + treeherder: + symbol: TW64(sccache) + worker-type: b-win2012 + worker: + max-run-time: 3600 + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/vs2017.manifest" + run: + toolchain-artifact: public/build/sccache.tar.bz2 + resources: + - 'taskcluster/scripts/misc/tooltool-download.sh' + tooltool-downloads: internal + fetches: + toolchain: + - win64-rust-1.47 diff --git a/taskcluster/ci/updatebot/kind.yml b/taskcluster/ci/updatebot/kind.yml new file mode 100644 index 0000000000..1fd36e6c52 --- /dev/null +++ b/taskcluster/ci/updatebot/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: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.release_notifications:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +jobs: + verify: + description: Verify Job for Updatebot + run-on-projects: [] + treeherder: + kind: other + platform: updatebot/all + symbol: verify + tier: 1 + worker-type: b-linux + worker: + docker-image: {in-tree: debian10-amd64-build} + max-run-time: 3600 + env: + PYTHONUNBUFFERED: "1" + run: + using: run-task + cwd: '{checkout}' + command: $GECKO_PATH/taskcluster/scripts/misc/verify-updatebot.py + notifications: + subject: 'updatebot verify job failed' + message: 'updatebot verify job failed' + status-types: + - on-failed + - on-exception + emails: ["tom@mozilla.com", "jewilde@mozilla.com"] + + cron: + description: Cron Job for Updatebot + run-on-projects: [] + treeherder: + kind: other + platform: updatebot/all + symbol: cron + tier: 1 + worker-type: b-linux + 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 + notifications: + subject: 'updatebot cron failed' + message: 'updatebot cron failed' + status-types: + - on-failed + - on-exception + emails: ["tom@mozilla.com", "jewilde@mozilla.com"] diff --git a/taskcluster/ci/upload-generated-sources/kind.yml b/taskcluster/ci/upload-generated-sources/kind.yml new file mode 100644 index 0000000000..0b4a679e38 --- /dev/null +++ b/taskcluster/ci/upload-generated-sources/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: taskgraph.loader.single_dep:loader + +transforms: + - taskgraph.transforms.upload_generated_sources:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - build + +only-for-attributes: + - nightly + - shippable + +job-template: + description: Upload generated source files from build + 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 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/kind.yml b/taskcluster/ci/upload-symbols/kind.yml new file mode 100644 index 0000000000..655e2c83b8 --- /dev/null +++ b/taskcluster/ci/upload-symbols/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: taskgraph.loader.multi_dep:loader + +group-by: platform + +transforms: + - taskgraph.transforms.upload_symbols:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +kind-dependencies: + - build + - toolchain + +primary-dependency: build + +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 + - macosx64-geckodriver/opt + - win32-geckodriver/opt + - win64-geckodriver/opt + +job-template: + description: Upload Symbols + worker-type: b-linux + worker: + docker-image: {in-tree: "debian10-base"} + max-run-time: 900 + 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 + run: + using: mach + mach: {artifact-reference: "python toolkit/crashreporter/tools/upload_symbols.py <build/public/build/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..2adee261c8 --- /dev/null +++ b/taskcluster/ci/valgrind/kind.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/. +--- +loader: taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + +transforms: + - taskgraph.transforms.build_attrs:transforms + - taskgraph.transforms.build_lints:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +job-defaults: + attributes: + retrigger: true + +jobs: + linux64-valgrind/opt: + description: "Linux64 Valgrind Opt" + index: + product: firefox + job-name: linux64-valgrind-opt + treeherder: + platform: linux64/opt + symbol: V + kind: build + tier: 1 + worker-type: b-linux-aws + worker: + docker-image: {in-tree: valgrind-build} + max-run-time: 72000 + env: + 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 + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + tooltool-downloads: public + need-xvfb: true + use-sccache: true + fetches: + toolchain: + - linux64-binutils + - linux64-clang + - linux64-rust + - linux64-cbindgen + - linux64-dump-syms + - linux64-sccache + - linux64-nasm + - linux64-node + - linux64-lucetc + - wasi-sysroot + optimization: + skip-unless-expanded: null diff --git a/taskcluster/ci/visual-metrics-dep/kind.yml b/taskcluster/ci/visual-metrics-dep/kind.yml new file mode 100644 index 0000000000..f2b8994365 --- /dev/null +++ b/taskcluster/ci/visual-metrics-dep/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: taskgraph.loader.single_dep:loader + +kind-dependencies: + - fetch + - test + +transforms: + - taskgraph.transforms.name_sanity:transforms + - taskgraph.transforms.visual_metrics_dep:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +only-for-attributes: + - run-visual-metrics + + +job-template: + description: "Run visual metrics calculations on Raptor" + run-on-projects: [] + worker-type: t-linux-xlarge + + treeherder: + tier: 3 + kind: other + + worker: + docker-image: {in-tree: visual-metrics} + max-run-time: 1800 + artifacts: + - type: directory + name: public/ + path: /builds/worker/artifacts/ + fetches: + fetch: + - visual-metrics + run: + using: run-task + command: /builds/worker/bin/run-visual-metrics.py -- --orange --perceptual --contentful --force --renderignore 5 --json --viewport + checkout: false + optimization: + skip-unless-backstop: null diff --git a/taskcluster/ci/webrender/kind.yml b/taskcluster/ci/webrender/kind.yml new file mode 100644 index 0000000000..9253cbc9c4 --- /dev/null +++ b/taskcluster/ci/webrender/kind.yml @@ -0,0 +1,501 @@ +# 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: taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + - build + +transforms: + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +job-defaults: + attributes: + retrigger: true + run-on-projects: ['mozilla-beta', 'trunk'] + treeherder: + tier: 1 + kind: other + worker: + max-run-time: 3600 + env: + RUST_BACKTRACE: 'full' + RUSTFLAGS: '--deny warnings' + run: + sparse-profile: webrender + +jobs: + lint-tidy: + description: Runs linting checks on WebRender code + worker-type: b-linux + worker: + docker-image: {in-tree: webrender} + run: + using: run-task + cwd: '{checkout}/gfx/wr' + command: >- + 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 + 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 + 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 + worker: + docker-image: {in-tree: webrender} + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-releng.manifest" + 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-11: toolchain-macosx64-clang-11 + fetches: + toolchain: + - linux64-rust-macos + - linux64-cctools-port + - linux64-clang-11-macosx-cross + - linux64-llvm-dsymutil + - wrench-deps + macosx64-clang-11: + - artifact: clang.tar.zst + dest: clang-mac + run: + using: run-task + tooltool-downloads: internal + 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/tooltool-download.sh' + - '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-1014 + 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: macosx1014-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 + worker: + docker-image: {in-tree: webrender} + env: + TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-releng.manifest" + 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-cctools-port + - linux64-clang + - linux64-llvm-dsymutil + - wrench-deps + run: + using: run-task + tooltool-downloads: internal + 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/tooltool-download.sh' + - '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-1014 + 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: macosx1014-64-qr/debug + symbol: WR(cargotest) + when: + files-changed: + - 'gfx/wr/**' + + windows: + description: Runs WebRender CI tests on a Windows worker + worker-type: t-win10-64 + worker: + max-run-time: 5400 + env: + TOOLTOOL_MANIFEST: 'browser/config/tooltool-manifests/win64/vs2017.manifest' + fetches: + toolchain: + - win64-rust + - wrench-deps + run: + using: run-task + use-caches: false + command: '$GECKO_PATH/taskcluster/scripts/misc/wrench-windows-tests.sh' + tooltool-downloads: internal + treeherder: + platform: windows10-64-qr/release + symbol: WR(wrench) + when: + files-changed: + - 'build/win64/mozconfig.vs2017' + - 'browser/config/tooltool-manifests/win64/webrender.manifest' + - 'gfx/wr/**' + - 'taskcluster/scripts/misc/tooltool-download.sh' + - 'taskcluster/scripts/misc/wrench-windows-tests.sh' + + wrench-android-debug: + description: Debug build of wrench for Android + worker-type: b-linux + 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/android-artifacts/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 + 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/ + fetches: + toolchain: + - android-gradle-dependencies + - android-ndk-linux + - android-sdk-linux + - 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 + worker-type: b-linux + 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/android-artifacts/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 + 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/ + fetches: + toolchain: + - android-gradle-dependencies + - android-ndk-linux + - android-sdk-linux + - 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 + worker-type: t-linux-metal # 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' + dependencies: + webrender-wrench-android-debug: webrender-wrench-android-debug + fetches: + webrender-wrench-android-debug: + - 'wrench-debug.apk' + toolchain: + - android-sdk-linux + 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 + worker-type: t-linux-metal # 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' + dependencies: + webrender-wrench-android-release: webrender-wrench-android-release + fetches: + webrender-wrench-android-release: + - 'wrench-release.apk' + toolchain: + - android-sdk-linux + 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-p2-debug: + description: Run debug wrench reftests on Android Pixel2 + worker-type: t-bitbar-gw-unit-p2 + 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 + dependencies: + webrender-wrench-android-debug: webrender-wrench-android-debug + android-build: build-android-aarch64/debug + fetches: + webrender-wrench-android-debug: + - 'wrench-debug.apk' + - 'reftests.tar.gz' + - 'mozdevice.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 && + export PYTHONPATH=$MOZ_FETCHES_DIR/mozdevice:$PYTHONPATH && + python2.7 ${MOZHARNESS_PATH}/scripts/${MOZHARNESS_SCRIPT} --config-file ${MOZHARNESS_PATH}/configs/${MOZHARNESS_CONFIG} + treeherder: + platform: android-hw-p2-8-0-arm7-api-16/debug + symbol: WR(wrench) + when: + files-changed: + - 'gfx/wr/**' + - 'testing/mozharness/scripts/android_*.py' + - 'testing/mozharness/configs/android/*.py' + - 'testing/mozbase/mozdevice/**' + + android-hw-p2-opt: + description: Run opt wrench reftests on Android Pixel2 + worker-type: t-bitbar-gw-unit-p2 + 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 + dependencies: + webrender-wrench-android-release: webrender-wrench-android-release + android-build: build-android-aarch64-shippable/opt + fetches: + webrender-wrench-android-release: + - 'wrench-release.apk' + - 'reftests.tar.gz' + - 'mozdevice.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 && + export PYTHONPATH=$MOZ_FETCHES_DIR/mozdevice:$PYTHONPATH && + python2.7 ${MOZHARNESS_PATH}/scripts/${MOZHARNESS_SCRIPT} --config-file ${MOZHARNESS_PATH}/configs/${MOZHARNESS_CONFIG} + treeherder: + platform: android-hw-p2-8-0-arm7-api-16/opt + symbol: WR(wrench) + when: + files-changed: + - 'gfx/wr/**' + - 'testing/mozharness/scripts/android_*.py' + - 'testing/mozharness/configs/android/*.py' + - 'testing/mozbase/mozdevice/**' diff --git a/taskcluster/ci/wgpu/kind.yml b/taskcluster/ci/wgpu/kind.yml new file mode 100644 index 0000000000..da92bb5e4c --- /dev/null +++ b/taskcluster/ci/wgpu/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: taskgraph.loader.transform:loader + +kind-dependencies: + - toolchain + - build + +transforms: + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +job-defaults: + attributes: + retrigger: true + run-on-projects: ['mozilla-beta', 'trunk'] + treeherder: + tier: 1 + kind: other + worker: + max-run-time: 1800 + env: + RUST_BACKTRACE: 'full' + RUSTFLAGS: '--deny warnings' + run: + sparse-profile: wgpu + when: + files-changed: + - 'gfx/wgpu/**' + +jobs: + linux64-debug: + description: Runs debug-mode wgpu CI tests on a Linux worker + worker-type: b-linux + worker: + docker-image: {in-tree: wgpu} + fetches: + toolchain: + - linux64-rust + - wgpu-deps + run: + using: run-task + command: >- + export PATH=$PATH:$MOZ_FETCHES_DIR/rustc/bin && + cd $GECKO_PATH/gfx/wgpu && + mv $MOZ_FETCHES_DIR/wgpu-deps/{vendor,.cargo} ./ && + cargo test --verbose --frozen + treeherder: + platform: linux64-qr/debug + symbol: Wgpu(test) + kind: other |