Bug 1509722 - validate test pass state with windefend disabled; try: -b do -p win64 -u all[Windows 10,windows10-64-qr] -t none --rebuild 3 draft
authorRob Thijssen <rthijssen@mozilla.com>
Mon, 26 Nov 2018 21:27:19 +0200
changeset 1770422 985c05cbd34acd46a8409c4c785e32d9b8c466d7
parent 1770276 6c10213a8924b377ea37a37385698ebb09773a30
child 1909245 149cd80c6e52032869110dc09030d2809a0ef7ac
push id317954
push userrthijssen@mozilla.com
push dateMon, 26 Nov 2018 19:29:32 +0000
treeherdertry@985c05cbd34a [default view] [failures only]
bugs1509722
milestone65.0a1
Bug 1509722 - validate test pass state with windefend disabled; try: -b do -p win64 -u all[Windows 10,windows10-64-qr] -t none --rebuild 3
taskcluster/ci/test/awsy.yml
taskcluster/ci/test/reftest.yml
taskcluster/taskgraph/transforms/task.py
--- a/taskcluster/ci/test/awsy.yml
+++ b/taskcluster/ci/test/awsy.yml
@@ -1,15 +1,15 @@
 job-defaults:
     suite: awsy
     max-run-time: 7200
     instance-size: xlarge
     virtualization:
         by-test-platform:
-            windows10-64-qr/.*: hardware
+            windows10.*: 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
--- a/taskcluster/ci/test/reftest.yml
+++ b/taskcluster/ci/test/reftest.yml
@@ -90,20 +90,17 @@ reftest:
     description: "Reftest run"
     suite: reftest/reftest
     treeherder-symbol: R(R)
     run-on-projects: built-projects
     instance-size:
         by-test-platform:
             android-em.*: xlarge
             default: default
-    virtualization:
-        by-test-platform:
-            windows10.*: hardware
-            default: virtual-with-gpu
+    virtualization: virtual-with-gpu
     chunks:
         by-test-platform:
             android-em-4.3-arm7-api-16/debug: 56
             android-em-7.0-x86/opt: 5
             android-em.*: 28
             macosx64.*/opt: 2
             macosx64.*/debug: 3
             macosx64-ccov/debug: 6
--- a/taskcluster/taskgraph/transforms/task.py
+++ b/taskcluster/taskgraph/transforms/task.py
@@ -1652,21 +1652,52 @@ def add_index_routes(config, tasks):
         index_type = index.get('type', 'generic')
         task = index_builders[index_type](config, task)
 
         del task['index']
         yield task
 
 
 @transforms.add
+def replace_level_in_workertype(config, tasks):
+    """
+    This transform replaces {level} in workerType name with actual scm level.
+    """
+    for task in tasks:
+        level = str(config.params['level'])
+        task['worker-type'] = task['worker-type'].format(level=level)
+        yield task
+
+
+@transforms.add
+def use_beta_workertypes(config, tasks):
+    """
+    This transform uses a dictionary of worker type names to worker type names
+    in order to map one set of worker types to another set. This is typically
+    useful when you want to run a try push against a staging set of worker
+    types, that you want to test before rolling them out to production.
+    """
+    find_replace_dict = {
+        'aws-provisioner-v1/gecko-1-b-win2012': 'aws-provisioner-v1/gecko-1-b-win2012-beta',
+        'aws-provisioner-v1/gecko-t-win10-64': 'aws-provisioner-v1/gecko-t-win10-64-beta',
+        'aws-provisioner-v1/gecko-t-win10-64-gpu': 'aws-provisioner-v1/gecko-t-win10-64-gpu-b',
+        'aws-provisioner-v1/gecko-t-win7-32': 'aws-provisioner-v1/gecko-t-win7-32-beta',
+        'aws-provisioner-v1/gecko-t-win7-32-gpu': 'aws-provisioner-v1/gecko-t-win7-32-gpu-b',
+    }
+    for task in tasks:
+        if task['worker-type'] in find_replace_dict:
+            task['worker-type'] = find_replace_dict[task['worker-type']]
+        yield task
+
+
+@transforms.add
 def build_task(config, tasks):
     for task in tasks:
         level = str(config.params['level'])
-        worker_type = task['worker-type'].format(level=level)
-        provisioner_id, worker_type = worker_type.split('/', 1)
+        provisioner_id, worker_type = task['worker-type'].split('/', 1)
         project = config.params['project']
 
         routes = task.get('routes', [])
         scopes = [s.format(level=level, project=project) for s in task.get('scopes', [])]
 
         # set up extra
         extra = task.get('extra', {})
         extra['parent'] = os.environ.get('TASK_ID', '')