Bug 1461777 - Taskcluster Sa target should also run on Windows. r=gps
authorAndi-Bogdan Postelnicu <bpostelnicu@mozilla.com>
Tue, 26 Jun 2018 16:06:13 +0100
changeset 427966 23b90e4be604f0a25ac13fdcfa904ae4dc84fef9
parent 427965 96ce98b72056cd2c19c3640b4b7834b73dcc42ac
child 427967 1958916877ccdd6f20076d39c78c5a0d74e6acd2
push id34322
push userrgurzau@mozilla.com
push dateTue, 24 Jul 2018 15:47:07 +0000
treeherdermozilla-central@db9d47b49936 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersgps
bugs1461777
milestone63.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 1461777 - Taskcluster Sa target should also run on Windows. r=gps MozReview-Commit-ID: 7o7iPneK34e
taskcluster/ci/static-analysis-autotest/kind.yml
taskcluster/taskgraph/transforms/job/mozharness.py
taskcluster/taskgraph/transforms/task.py
--- a/taskcluster/ci/static-analysis-autotest/kind.yml
+++ b/taskcluster/ci/static-analysis-autotest/kind.yml
@@ -12,39 +12,64 @@ transforms:
     - taskgraph.transforms.build_lints:transforms
     - taskgraph.transforms.use_toolchains:transforms
     - taskgraph.transforms.job:transforms
     - taskgraph.transforms.task:transforms
 
 job-defaults:
     index:
         product: firefox
+    worker:
+        skip-artifacts: true
+        max-run-time: 3600
+        env:
+            PERFHERDER_EXTRA_OPTIONS: static-analysis-autotest
+    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: aws-provisioner-v1/gecko-t-linux-large
-        worker:
-            max-run-time: 3600
-            env:
-                PERFHERDER_EXTRA_OPTIONS: static-analysis-autotest
         run:
-            using: mozharness
-            actions: [static-analysis-autotest]
             config:
                 - builds/releng_base_firefox.py
                 - builds/releng_sub_linux_configs/64_stat_and_debug.py
-            script: "mozharness/scripts/fx_desktop_build.py"
             tooltool-downloads: public
             keep-artifacts: false
         toolchains:
             - linux64-clang
             - linux64-clang-tidy
             - linux64-rust
             - linux64-sccache
+
+    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: aws-provisioner-v1/gecko-{level}-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/clang_debug.py
+        toolchains:
+            - win64-clang-cl-st-an
+            - win64-rust
+            - win64-sccache
+            - win64-clang-tidy
--- a/taskcluster/taskgraph/transforms/job/mozharness.py
+++ b/taskcluster/taskgraph/transforms/job/mozharness.py
@@ -237,17 +237,18 @@ def mozharness_on_generic_worker(config,
     if not run.get('keep-artifacts', True):
         invalid.append('keep-artifacts')
     if invalid:
         raise Exception("Jobs run using mozharness on Windows do not support properties " +
                         ', '.join(invalid))
 
     worker = taskdesc['worker']
 
-    generic_worker_add_artifacts(config, job, taskdesc)
+    if not worker.get('skip-artifacts', False):
+        generic_worker_add_artifacts(config, job, taskdesc)
     support_vcs_checkout(config, job, taskdesc)
 
     env = worker['env']
     env.update({
         'MOZ_BUILD_DATE': config.params['moz_build_date'],
         'MOZ_SCM_LEVEL': config.params['level'],
         'MOZ_AUTOMATION': '1',
         'MH_BRANCH': config.params['project'],
--- a/taskcluster/taskgraph/transforms/task.py
+++ b/taskcluster/taskgraph/transforms/task.py
@@ -293,16 +293,19 @@ task_description_schema = Schema({
         Required('max-run-time'): int,
 
         # the exit status code(s) that indicates the task should be retried
         Optional('retry-exit-status'): [int],
 
         # the exit status code(s) that indicates the caches used by the task
         # should be purged
         Optional('purge-caches-exit-status'): [int],
+
+        # Wether any artifacts are assigned to this worker
+        Optional('skip-artifacts'): bool,
     }, {
         Required('implementation'): 'generic-worker',
         Required('os'): Any('windows', 'macosx'),
         # see http://schemas.taskcluster.net/generic-worker/v1/payload.json
         # and https://docs.taskcluster.net/reference/workers/generic-worker/payload
 
         # command is a list of commands to run, sequentially
         # on Windows, each command is a string, on OS X and Linux, each command is
@@ -371,16 +374,19 @@ task_description_schema = Schema({
         Required('max-run-time'): int,
 
         # os user groups for test task workers
         Optional('os-groups'): [basestring],
 
         # optional features
         Required('chain-of-trust'): bool,
         Optional('taskcluster-proxy'): bool,
+
+        # Wether any artifacts are assigned to this worker
+        Optional('skip-artifacts'): bool,
     }, {
         Required('implementation'): 'native-engine',
         Required('os'): Any('macosx', 'linux'),
 
         # the maximum time to run, in seconds
         Required('max-run-time'): int,
 
         # A link for an executable to download
@@ -404,16 +410,18 @@ task_description_schema = Schema({
 
             # task image path from which to read artifact
             Required('path'): basestring,
 
             # name of the produced artifact (root of the names for
             # type=directory)
             Required('name'): basestring,
         }],
+        # Wether any artifacts are assigned to this worker
+        Optional('skip-artifacts'): bool,
     }, {
         Required('implementation'): 'script-engine-autophone',
         Required('os'): Any('macosx', 'linux'),
 
         # A link for an executable to download
         Optional('context'): basestring,
 
         # Tells the worker whether machine should reboot
@@ -934,17 +942,17 @@ def build_docker_worker_payload(config, 
 
 
 @payload_builder('generic-worker')
 def build_generic_worker_payload(config, task, task_def):
     worker = task['worker']
 
     artifacts = []
 
-    for artifact in worker['artifacts']:
+    for artifact in worker.get('artifacts', []):
         a = {
             'path': artifact['path'],
             'type': artifact['type'],
             'expires': task_def['expires'],  # always expire with the task
         }
         if 'name' in artifact:
             a['name'] = artifact['name']
         artifacts.append(a)