Bug 1527463 - Enable EME on win64-aarch64 nightlies. r=tomprince a=pascalc
authorMike Hommey <mh+mozilla@glandium.org>
Fri, 15 Mar 2019 17:10:27 +0900
changeset 525774 7c3c3ffea0a4fb284e99afecdd15bc37bfeec12c
parent 525773 9b874010673d878cb9772770bc8ba7f6572ee693
child 525775 216a721a0b8cda07c6da016c741563e15d19ed14
push id2032
push userffxbld-merge
push dateMon, 13 May 2019 09:36:57 +0000
treeherdermozilla-release@455c1065dcbe [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerstomprince, pascalc
bugs1527463, 1534522
milestone67.0
Bug 1527463 - Enable EME on win64-aarch64 nightlies. r=tomprince a=pascalc Bug 1534522 added win64-aarch64-eme/opt builds, which are artifact builds that glue together a win64-aarch64/opt build and a win32/opt build. This enables EME on the corresponding nightlies in a slightly different way: - this adds a no-eme build that corresponds to win64-aarch64/opt. - this turns the existing nightly into an artifact build that glues together that no-eme build and the win32 nightly. The no-eme build cannot have the nightly attribute set, first because the beetmover transform fails in that case, and because that would imply shipping those builds, but they're not meant to be shipped this way. It also has run-on-projects set to an empty list so that it doesn't appear by default in `mach try fuzzy`, while still being triggered when needed due to being a dependency of the nightly build. It is preferable to keep the win64-aarch64{,-eme}/opt builds untouched to make things easier for try (the win64-aarch64 ones being the main ones to try; also, the -eme builds currently fail with --artifacts). Ideally, like in bug 1534522, we'd add a diffoscope build to ensure the variations between the nightly and its base no-eme build are within control, but currently, that would trigger nightlies on every push, which is not desirable. Ideally, they'd trigger whenever both their dependencies are in the target task graph. We leave that to a followup. Differential Revision: https://phabricator.services.mozilla.com/D23640
taskcluster/ci/build/windows.yml
--- a/taskcluster/ci/build/windows.yml
+++ b/taskcluster/ci/build/windows.yml
@@ -1075,16 +1075,56 @@ win64-aarch64-eme/opt:
             stage_platform: win64-aarch64
             mozconfig_platform: win64-aarch64
     dependencies:
         win32-opt: build-win32/opt
         win64-aarch64-opt: build-win64-aarch64/opt
     toolchains:
         - win64-node
 
+win64-aarch64-nightly-no-eme/opt:
+    description: "AArch64 Win64 Nightly w/o EME"
+    index:
+        product: firefox
+        job-name: win64-aarch64-no-eme-opt
+        type: nightly
+    attributes:
+        enable-full-crashsymbols: true
+    shipping-phase: build
+    shipping-product: firefox
+    treeherder:
+        platform: windows2012-aarch64/opt
+        symbol: Nn
+        tier: 1
+    worker-type: aws-provisioner-v1/gecko-{level}-b-win2012
+    worker:
+        max-run-time: 7200
+        env:
+            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/aarch64.manifest"
+            PERFHERDER_EXTRA_OPTIONS: aarch64-no-eme
+    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
+            - taskcluster_nightly.py
+        extra-config:
+            stage_platform: win64-aarch64
+            mozconfig_platform: win64-aarch64
+    run-on-projects: []
+    toolchains:
+        - win64-clang-cl
+        - win64-aarch64-rust
+        - win64-cbindgen
+        - win64-nasm
+        - win64-node
+
 win64-aarch64-nightly/opt:
     description: "AArch64 Win64 Nightly"
     index:
         product: firefox
         job-name: win64-aarch64-opt
         type: nightly
     attributes:
         nightly: true
@@ -1096,36 +1136,48 @@ win64-aarch64-nightly/opt:
         symbol: N
         tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-win2012
     worker:
         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/taskcluster_base_windows.py
             - taskcluster_nightly.py
         extra-config:
             stage_platform: win64-aarch64
             mozconfig_platform: win64-aarch64
+    dependencies:
+        win32-opt: build-win32-nightly/opt
+        win64-aarch64-opt: build-win64-aarch64-nightly-no-eme/opt
+    fetches:
+        # Abuse fetches to copy the generated-files artifact from the non-eme
+        # build directly to the artifacts directory of this build. Likewise
+        # for target.langpack.xpi
+        win64-aarch64-opt:
+            - artifact: target.generated-files.tar.gz
+              extract: false
+              dest: ../public/build
+            - artifact: target.langpack.xpi
+              extract: false
+              dest: ../public/build
     toolchains:
-        - win64-clang-cl
-        - win64-aarch64-rust
-        - win64-cbindgen
-        - win64-nasm
         - win64-node
 
-
 win64-aarch64-devedition-nightly/opt:
     description: "AArch64 Win64 MSVC Devedition Nightly"
     index:
         product: devedition
         job-name: win64-aarch64-opt
         type: nightly
     attributes:
         nightly: true