Bug 1642713: allow diff-artifact tasks to be optimized by push interval r=tomprince
authorBen Hearsum <bhearsum@mozilla.com>
Thu, 04 Jun 2020 14:27:42 +0000
changeset 533902 674ef2b4db1f0ce0c8d871c10a66e87d57bfe192
parent 533901 9725a27f0a9d9dbbd72b381eb62112d62a028378
child 533903 90fb6ec67a4f32654e82d8f33e1bfe1ca7692199
push id37480
push userncsoregi@mozilla.com
push dateThu, 04 Jun 2020 22:00:12 +0000
treeherdermozilla-central@e33aea19d0c5 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerstomprince
bugs1642713
milestone79.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1642713: allow diff-artifact tasks to be optimized by push interval r=tomprince Differential Revision: https://phabricator.services.mozilla.com/D77859
taskcluster/ci/diffoscope/kind.yml
taskcluster/taskgraph/transforms/diffoscope.py
--- a/taskcluster/ci/diffoscope/kind.yml
+++ b/taskcluster/ci/diffoscope/kind.yml
@@ -53,16 +53,21 @@ jobs:
         # - 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:
+            push-interval-10:
+                - windows
 
     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
 
--- a/taskcluster/taskgraph/transforms/diffoscope.py
+++ b/taskcluster/taskgraph/transforms/diffoscope.py
@@ -60,16 +60,18 @@ diff_description_schema = Schema({
     # if said content is packed (e.g. in omni.ja).
     Optional('unpack'): bool,
 
     # Commands to run before performing the diff.
     Optional('pre-diff-commands'): [text_type],
 
     # Only run the task on a set of projects/branches.
     Optional('run-on-projects'): task_description_schema['run-on-projects'],
+
+    Optional('optimization'): task_description_schema['optimization'],
 })
 
 transforms = TransformSequence()
 transforms.add_validate(diff_description_schema)
 
 
 @transforms.add
 def fill_template(config, tasks):
@@ -161,16 +163,17 @@ def fill_template(config, tasks):
                 'using': 'run-task',
                 'checkout': task.get('unpack', False),
                 'command': '/builds/worker/bin/get_and_diffoscope{}{}'.format(
                     ' --unpack' if task.get('unpack') else '',
                     ' --fail' if task.get('fail-on-diff') else '',
                 ),
             },
             'dependencies': deps,
+            'optimization': task.get('optimization'),
         }
         if 'run-on-projects' in task:
             taskdesc['run-on-projects'] = task['run-on-projects']
 
         if artifact.endswith('.dmg'):
             taskdesc.setdefault('fetches', {}).setdefault('toolchain', []).extend([
                 'linux64-cctools-port',
                 'linux64-libdmg',