Bug 1557741: Use fetches for tests that need geckodriver. r=jgraham
authorChris AtLee <catlee@mozilla.com>
Wed, 13 May 2020 21:13:51 +0000
changeset 529882 d254d383887711cbad74ad85391b027c4ed49e56
parent 529881 39a5c6cb5884941bd21f84d21597eb5b42ddf43d
child 529883 80ba3f3cfaf9b31341bca28e2e6aea383cec8acc
push id115959
push usercatlee@mozilla.com
push dateThu, 14 May 2020 13:17:51 +0000
treeherderautoland@d254d3838877 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjgraham
bugs1557741
milestone78.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 1557741: Use fetches for tests that need geckodriver. r=jgraham Differential Revision: https://phabricator.services.mozilla.com/D74645
taskcluster/ci/test/web-platform.yml
testing/mozharness/configs/web_platform_tests/prod_config.py
testing/mozharness/configs/web_platform_tests/prod_config_android.py
testing/mozharness/configs/web_platform_tests/prod_config_mac.py
testing/mozharness/configs/web_platform_tests/prod_config_windows.py
testing/mozharness/configs/web_platform_tests/prod_config_windows_taskcluster.py
testing/mozharness/mozharness/mozilla/testing/testbase.py
--- a/taskcluster/ci/test/web-platform.yml
+++ b/taskcluster/ci/test/web-platform.yml
@@ -184,16 +184,44 @@ web-platform-tests-wdspec:
             .*-qr/.*: ['release', 'try']
             default: built-projects
     tier:
         by-test-platform:
             android.*: 3
             linux.*64-asan/opt: 2
             .*-qr/.*: 2  # can't be tier-1 if it's not running on integration branches
             default: default
+    fetches:
+        toolchain:
+            by-test-platform:
+                linux.*64.*:
+                    - linux64-geckodriver
+                    - linux64-minidump-stackwalk
+                    - linux64-fix-stacks
+                linux.*32.*:
+                    - linux32-geckodriver
+                    - linux64-minidump-stackwalk
+                    - linux64-fix-stacks
+                macosx.*:
+                    - macosx64-geckodriver
+                    - macosx64-minidump-stackwalk
+                    - macosx64-fix-stacks
+                win.*-32.*:
+                    - win32-geckodriver
+                    - win32-minidump-stackwalk
+                    - win32-fix-stacks
+                win.*-64.*:
+                    - win64-geckodriver
+                    - win32-minidump-stackwalk
+                    - win32-fix-stacks
+                default:
+                    - linux64-minidump-stackwalk
+                    - linux64-fix-stacks
+                    - linux64-geckodriver
+
 
 web-platform-tests-wdspec-headless:
     description: "Web platform webdriver-spec headless run"
     suite:
         name: web-platform-tests-wdspec
     schedules-component: web-platform-tests-wdspec
     treeherder-symbol: W(WdH)
     chunks: 2
@@ -205,16 +233,43 @@ web-platform-tests-wdspec-headless:
                     - --setpref=toolkit.asyncshutdown.log=true
                     - --headless
                     - --headless-width=1600
                     - --headless-height=1200
                 default:
                     - --test-type=wdspec
                     - --setpref=toolkit.asyncshutdown.log=true
                     - --headless
+    fetches:
+        toolchain:
+            by-test-platform:
+                linux.*64.*:
+                    - linux64-geckodriver
+                    - linux64-minidump-stackwalk
+                    - linux64-fix-stacks
+                linux.*32.*:
+                    - linux32-geckodriver
+                    - linux64-minidump-stackwalk
+                    - linux64-fix-stacks
+                macosx.*:
+                    - macosx64-geckodriver
+                    - macosx64-minidump-stackwalk
+                    - macosx64-fix-stacks
+                win.*-32.*:
+                    - win32-geckodriver
+                    - win32-minidump-stackwalk
+                    - win32-fix-stacks
+                win.*-64.*:
+                    - win64-geckodriver
+                    - win32-minidump-stackwalk
+                    - win32-fix-stacks
+                default:
+                    - linux64-minidump-stackwalk
+                    - linux64-fix-stacks
+                    - linux64-geckodriver
 
 web-platform-tests-crashtest:
     description: "Web platform crashtests run"
     schedules-component: web-platform-tests-crashtest
     treeherder-symbol: W(Wc)
     chunks: 1
     mozharness:
         extra-options:
--- a/testing/mozharness/configs/web_platform_tests/prod_config.py
+++ b/testing/mozharness/configs/web_platform_tests/prod_config.py
@@ -16,18 +16,17 @@ config = {
         "--prefs-root=%(test_path)s/prefs",
         "--config=%(test_path)s/wptrunner.ini",
         "--ca-cert-path=%(test_path)s/tests/tools/certs/cacert.pem",
         "--host-key-path=%(test_path)s/tests/tools/certs/web-platform.test.key",
         "--host-cert-path=%(test_path)s/tests/tools/certs/web-platform.test.pem",
         "--certutil-binary=%(test_install_path)s/bin/certutil",
     ],
 
-    # this would normally be in "exes", but "exes" is clobbered by remove_executables
-    "geckodriver": os.path.join("%(abs_test_bin_dir)s", "geckodriver"),
+    "geckodriver": os.path.join("%(abs_fetches_dir)s", "geckodriver"),
 
     "per_test_category": "web-platform",
 
     "run_cmd_checks_enabled": True,
     "preflight_run_cmd_suites": [
         # NOTE 'enabled' is only here while we have unconsolidated configs
         {
             "name": "disable_screen_saver",
--- a/testing/mozharness/configs/web_platform_tests/prod_config_android.py
+++ b/testing/mozharness/configs/web_platform_tests/prod_config_android.py
@@ -12,15 +12,15 @@ config = {
         "--ca-cert-path=%(test_path)s/tests/tools/certs/cacert.pem",
         "--host-key-path=%(test_path)s/tests/tools/certs/web-platform.test.key",
         "--host-cert-path=%(test_path)s/tests/tools/certs/web-platform.test.pem",
         "--certutil-binary=%(xre_path)s/certutil",
         "--product=firefox_android",
     ],
     "avds_dir": "/builds/worker/workspace/build/.android",
     "binary_path": "/tmp",
-    "geckodriver": "%(abs_test_bin_dir)s/geckodriver",
+    "geckodriver": "%(abs_fetches_dir)s/geckodriver",
     "hostutils_manifest_path": "testing/config/tooltool-manifests/linux64/hostutils.manifest",
     "log_tbpl_level": "info",
     "log_raw_level": "info",
     "per_test_category": "web-platform",
     "tooltool_cache": os.environ.get("TOOLTOOL_CACHE"),
 }
--- a/testing/mozharness/configs/web_platform_tests/prod_config_mac.py
+++ b/testing/mozharness/configs/web_platform_tests/prod_config_mac.py
@@ -16,18 +16,17 @@ config = {
         "--prefs-root=%(test_path)s/prefs",
         "--config=%(test_path)s/wptrunner.ini",
         "--ca-cert-path=%(test_path)s/tests/tools/certs/cacert.pem",
         "--host-key-path=%(test_path)s/tests/tools/certs/web-platform.test.key",
         "--host-cert-path=%(test_path)s/tests/tools/certs/web-platform.test.pem",
         "--certutil-binary=%(test_install_path)s/bin/certutil",
     ],
 
-    # this would normally be in "exes", but "exes" is clobbered by remove_executables
-    "geckodriver": os.path.join("%(abs_test_bin_dir)s", "geckodriver"),
+    "geckodriver": os.path.join("%(abs_fetches_dir)s", "geckodriver"),
 
     "per_test_category": "web-platform",
 
     "run_cmd_checks_enabled": True,
     "preflight_run_cmd_suites": [
         # NOTE 'enabled' is only here while we have unconsolidated configs
         {
             "name": "disable_screen_saver",
--- a/testing/mozharness/configs/web_platform_tests/prod_config_windows.py
+++ b/testing/mozharness/configs/web_platform_tests/prod_config_windows.py
@@ -25,19 +25,17 @@ config = {
         "--certutil-binary=%(test_install_path)s/bin/certutil",
     ],
 
     "exes": {
         'python': sys.executable,
         'hg': 'c:/mozilla-build/hg/hg',
     },
 
-
-    # this would normally be in "exes", but "exes" is clobbered by remove_executables
-    "geckodriver": os.path.join("%(abs_test_bin_dir)s", "geckodriver.exe"),
+    "geckodriver": os.path.join("%(abs_fetches_dir)s", "geckodriver.exe"),
 
     "per_test_category": "web-platform",
 
     "run_cmd_checks_enabled": True,
     "preflight_run_cmd_suites": [
         # NOTE 'enabled' is only here while we have unconsolidated configs
         {
             "name": "disable_screen_saver",
--- a/testing/mozharness/configs/web_platform_tests/prod_config_windows_taskcluster.py
+++ b/testing/mozharness/configs/web_platform_tests/prod_config_windows_taskcluster.py
@@ -100,13 +100,12 @@ config = {
                 '"&{&Stop-Process -ProcessName explorer}"'
             ],
             'architectures': ['32bit', '64bit'],
             'halt_on_failure': True,
             'enabled': True
         },
     ],
 
-    # this would normally be in "exes", but "exes" is clobbered by remove_executables
-    "geckodriver": os.path.join("%(abs_test_bin_dir)s", "geckodriver.exe"),
+    "geckodriver": os.path.join("%(abs_fetches_dir)s", "geckodriver.exe"),
 
     "per_test_category": "web-platform",
 }
--- a/testing/mozharness/mozharness/mozilla/testing/testbase.py
+++ b/testing/mozharness/mozharness/mozilla/testing/testbase.py
@@ -643,8 +643,14 @@ Did you run with --create-virtualenv? Is
                          " These are often OS specific and disabling them may"
                          " result in spurious test results!")
 
     def postflight_run_tests(self):
         """preflight commands for all tests"""
         c = self.config
         if c.get('run_cmd_checks_enabled'):
             self._run_cmd_checks(c.get('postflight_run_cmd_suites', []))
+
+    def query_abs_dirs(self):
+        abs_dirs = super(TestingMixin, self).query_abs_dirs()
+        if 'MOZ_FETCHES_DIR' in os.environ:
+            abs_dirs['abs_fetches_dir'] = os.environ['MOZ_FETCHES_DIR']
+        return abs_dirs