Bug 1513192 [wpt PR 14459] - [Azure Pipelines] Clarify the job dependencies by reordering/renaming, a=testonly
authorPhilip Jägenstedt <philip@foolip.org>
Tue, 18 Dec 2018 17:59:35 +0000
changeset 514978 c5f5281b614739b07d76aa3b5460b3457f704338
parent 514977 d9cee53f4280e9a65712c0a196b840eab99e6435
child 514979 024dd14f7b0809827d8616a7d484c7715b7fc784
push id1953
push userffxbld-merge
push dateMon, 11 Mar 2019 12:10:20 +0000
treeherdermozilla-release@9c35dcbaa899 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerstestonly
bugs1513192, 14459
milestone66.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 1513192 [wpt PR 14459] - [Azure Pipelines] Clarify the job dependencies by reordering/renaming, a=testonly Automatic update from web-platform-tests [Azure Pipelines] Clarify the job dependencies by reordering/renaming (#14459) With the affected test jobs, the root job is no longer *the* root. Use "decision" following the terminology of Taskcluster: https://docs.taskcluster.net/docs/tutorial/gecko-decision-task -- wpt-commits: 37cd0d66c1ef6b62142142fc2ea32f7fd7e1fbb9 wpt-pr: 14459
testing/web-platform/tests/.azure-pipelines.yml
--- a/testing/web-platform/tests/.azure-pipelines.yml
+++ b/testing/web-platform/tests/.azure-pipelines.yml
@@ -8,34 +8,18 @@
 #
 # In addition to this configuration file, the "Build pull requests from forks
 # of this repository" setting must also be enabled in the Azure DevOps project:
 # https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/github#validate-contributions-from-forks
 
 trigger: none # disable builds for branches
 
 jobs:
-- job: root
-  displayName: './wpt test-jobs'
-  pool:
-    vmImage: 'ubuntu-16.04'
-  steps:
-  - template: tools/ci/azure/checkout.yml
-  - script: |
-      ./wpt test-jobs | while read job; do
-        echo "$job"
-        echo "##vso[task.setvariable variable=$job;isOutput=true]true";
-      done
-    name: test_jobs
-    displayName: 'Run ./wpt test-jobs'
-
-# Note: the affected tests jobs could depend on test_jobs.stability, but are
-# unconditional for speed, as most PRs have one or more affected tests:
-# https://github.com/web-platform-tests/wpt/issues/13936
-
+# The affected tests jobs are unconditional for speed, as most PRs have one or
+# more affected tests: https://github.com/web-platform-tests/wpt/issues/13936.
 - job: affected_macOS
   displayName: 'affected tests (Safari Technology Preview)'
   pool:
     vmImage: 'macOS-10.13'
   steps:
   - template: tools/ci/azure/affected_tests.yml
     parameters:
       artifactName: 'results'
@@ -46,20 +30,36 @@ jobs:
     vmImage: 'macOS-10.13'
   steps:
   - template: tools/ci/azure/affected_tests.yml
     parameters:
       checkoutCommit: 'HEAD^1'
       affectedRange: 'HEAD@{1}'
       artifactName: 'results-without-changes'
 
+# The decision jobs runs `./wpt test-jobs` to determine which jobs to run,
+# and all following jobs wait for it to finish and depend on its output.
+- job: decision
+  displayName: './wpt test-jobs'
+  pool:
+    vmImage: 'ubuntu-16.04'
+  steps:
+  - template: tools/ci/azure/checkout.yml
+  - script: |
+      ./wpt test-jobs | while read job; do
+        echo "$job"
+        echo "##vso[task.setvariable variable=$job;isOutput=true]true";
+      done
+    name: test_jobs
+    displayName: 'Run ./wpt test-jobs'
+
 - job: infrastructure_macOS
   displayName: 'infrastructure/ tests (macOS)'
-  dependsOn: root
-  condition: dependencies.root.outputs['test_jobs.wptrunner_infrastructure']
+  dependsOn: decision
+  condition: dependencies.decision.outputs['test_jobs.wptrunner_infrastructure']
   pool:
     vmImage: 'macOS-10.13'
   steps:
   - template: tools/ci/azure/checkout.yml
   - template: tools/ci/azure/pip_install.yml
     parameters:
       packages: virtualenv
   - template: tools/ci/azure/install_fonts.yml
@@ -73,43 +73,43 @@ jobs:
     displayName: 'Run tests (Chrome Dev)'
   - script: no_proxy='*' ./wpt run --yes --no-manifest-update --manifest MANIFEST.json --metadata infrastructure/metadata/ --channel nightly firefox infrastructure/
     displayName: 'Run tests (Firefox Nightly)'
   - script: no_proxy='*' ./wpt run --yes --no-manifest-update --manifest MANIFEST.json --metadata infrastructure/metadata/ --channel preview safari infrastructure/
     displayName: 'Run tests (Safari Technology Preview)'
 
 - job: tools_unittest_macOS
   displayName: 'tools/ unittests (macOS)'
-  dependsOn: root
-  condition: dependencies.root.outputs['test_jobs.tools_unittest']
+  dependsOn: decision
+  condition: dependencies.decision.outputs['test_jobs.tools_unittest']
   pool:
     vmImage: 'macOS-10.13'
   steps:
   - template: tools/ci/azure/checkout.yml
   - template: tools/ci/azure/tox_pytest.yml
     parameters:
       directory: tools/
       toxenv: py27
 
 - job: wptrunner_unittest_macOS
   displayName: 'tools/wptrunner/ unittests (macOS)'
-  dependsOn: root
-  condition: dependencies.root.outputs['test_jobs.wptrunner_unittest']
+  dependsOn: decision
+  condition: dependencies.decision.outputs['test_jobs.wptrunner_unittest']
   pool:
     vmImage: 'macOS-10.13'
   steps:
   - template: tools/ci/azure/checkout.yml
   - template: tools/ci/azure/tox_pytest.yml
     parameters:
       directory: tools/wptrunner/
 
 - job: wpt_integration_macOS
   displayName: 'tools/wpt/ tests (macOS)'
-  dependsOn: root
-  condition: dependencies.root.outputs['test_jobs.wpt_integration']
+  dependsOn: decision
+  condition: dependencies.decision.outputs['test_jobs.wpt_integration']
   pool:
     vmImage: 'macOS-10.13'
   steps:
   # full checkout required
   - template: tools/ci/azure/install_chrome.yml
   - template: tools/ci/azure/install_firefox.yml
   - template: tools/ci/azure/update_hosts.yml
   - template: tools/ci/azure/tox_pytest.yml