Backed out changesets 11ffdc565be, dda84d1fb12b, and 21fdf73bbb17 (bug 1302907) for Windows build bustage
authorGregory Szorc <gps@mozilla.com>
Thu, 15 Sep 2016 12:49:03 -0700
changeset 314031 738d1903807f6b8f42e450b75864210396bc6f99
parent 314030 ea12f05e9bbe62c5b4d6ae53ca951bb4c2074fae
child 314032 9b42d4b1f448b6bc328c8b992ef1b662f21ce379
push id30704
push userkwierso@gmail.com
push dateThu, 15 Sep 2016 23:10:53 +0000
treeherdermozilla-central@9b42d4b1f448 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs1302907
milestone51.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
Backed out changesets 11ffdc565be, dda84d1fb12b, and 21fdf73bbb17 (bug 1302907) for Windows build bustage Because Windows.
taskcluster/ci/android-test/tests.yml
taskcluster/ci/build/windows.yml
taskcluster/ci/desktop-test/tests.yml
taskcluster/scripts/tester/test-ubuntu.sh
taskcluster/taskgraph/transforms/tests/make_task_description.py
--- a/taskcluster/ci/android-test/tests.yml
+++ b/taskcluster/ci/android-test/tests.yml
@@ -11,264 +11,264 @@
 
 cppunit:
     description: "CPP Unit Tests"
     suite: cppunittest
     treeherder-symbol: tc(Cpp)
     e10s: false
     loopback-video: true
     mozharness:
-        script: android_emulator_unittest.py
+        script: mozharness/scripts/android_emulator_unittest.py
         no-read-buildbot-config: true
         config:
-            - android/androidarm_4_3.py
-            - remove_executables.py
-            - android/androidarm_4_3-tc.py
+            - mozharness/configs/android/androidarm_4_3.py
+            - mozharness/configs/remove_executables.py
+            - mozharness/configs/android/androidarm_4_3-tc.py
         extra-options:
             - --test-suite=cppunittest
 
 crashtest:
     description: "Crashtest run"
     suite: crashtest
     treeherder-symbol: tc-R(C)
     instance-size: xlarge
     chunks:
         by-test-platform:
             android-4.3-arm7-api-15/debug: 10
             default: 4
     loopback-video: true
     e10s: false
     mozharness:
-        script: android_emulator_unittest.py
+        script: mozharness/scripts/android_emulator_unittest.py
         no-read-buildbot-config: true
         config:
-            - android/androidarm_4_3.py
-            - remove_executables.py
-            - android/androidarm_4_3-tc.py
+            - mozharness/configs/android/androidarm_4_3.py
+            - mozharness/configs/remove_executables.py
+            - mozharness/configs/android/androidarm_4_3-tc.py
         extra-options:
             - --test-suite=crashtest
 
 jsreftest:
     description: "JS Reftest run"
     suite: reftest/jsreftest
     treeherder-symbol: tc-R(J)
     instance-size: xlarge
     chunks:
         by-test-platform:
             android-4.3-arm7-api-15/debug: 20
             default: 6
     loopback-video: true
     max-run-time: 7200
     e10s: false
     mozharness:
-        script: android_emulator_unittest.py
+        script: mozharness/scripts/android_emulator_unittest.py
         no-read-buildbot-config: true
         config:
-            - android/androidarm_4_3.py
-            - remove_executables.py
-            - android/androidarm_4_3-tc.py
+            - mozharness/configs/android/androidarm_4_3.py
+            - mozharness/configs/remove_executables.py
+            - mozharness/configs/android/androidarm_4_3-tc.py
         extra-options:
             - --test-suite=jsreftest
 
 marionette:
     description: "Marionette unittest run"
     suite: marionette
     treeherder-symbol: tc(Mn)
     chunks: 10
     instance-size: xlarge
     loopback-video: true
     e10s: false
     tier: 3
     max-run-time: 3600
     mozharness:
-        script: android_emulator_unittest.py
+        script: mozharness/scripts/android_emulator_unittest.py
         no-read-buildbot-config: true
         config:
-            - android/androidarm_4_3.py
-            - remove_executables.py
-            - android/androidarm_4_3-tc.py
+            - mozharness/configs/android/androidarm_4_3.py
+            - mozharness/configs/remove_executables.py
+            - mozharness/configs/android/androidarm_4_3-tc.py
         extra-options:
             - --test-suite=marionette
 
 mochitest:
     description: "Mochitest plain run"
     suite: mochitest/plain-chunked
     treeherder-symbol: tc-M()
     instance-size: xlarge
     chunks: 20
     loopback-video: true
     e10s: false
     max-run-time:
         by-test-platform:
             android-4.3-arm7-api-15/debug: 10800
             default: 3600
     mozharness:
-        script: android_emulator_unittest.py
+        script: mozharness/scripts/android_emulator_unittest.py
         no-read-buildbot-config: true
         config:
-            - android/androidarm_4_3.py
-            - remove_executables.py
-            - android/androidarm_4_3-tc.py
+            - mozharness/configs/android/androidarm_4_3.py
+            - mozharness/configs/remove_executables.py
+            - mozharness/configs/android/androidarm_4_3-tc.py
         extra-options:
             - --test-suite=mochitest
 
 mochitest-chrome:
     description: "Mochitest chrome run"
     suite: mochitest/chrome
     treeherder-symbol: tc-M(c)
     instance-size: xlarge
     chunks:
         by-test-platform:
             android-4.3-arm7-api-15/debug: 2
             default: 1
     loopback-video: true
     e10s: false
     max-run-time: 5400
     mozharness:
-        script: android_emulator_unittest.py
+        script: mozharness/scripts/android_emulator_unittest.py
         no-read-buildbot-config: true
         config:
-            - android/androidarm_4_3.py
-            - remove_executables.py
-            - android/androidarm_4_3-tc.py
+            - mozharness/configs/android/androidarm_4_3.py
+            - mozharness/configs/remove_executables.py
+            - mozharness/configs/android/androidarm_4_3-tc.py
         extra-options:
             - --test-suite=mochitest-chrome
 
 mochitest-clipboard:
     description: "Mochitest clipboard run"
     suite: mochitest/plain-clipboard
     treeherder-symbol: tc-M(cl)
     instance-size: xlarge
     loopback-video: true
     e10s: false
     mozharness:
-        script: android_emulator_unittest.py
+        script: mozharness/scripts/android_emulator_unittest.py
         no-read-buildbot-config: true
         config:
-            - android/androidarm_4_3.py
-            - remove_executables.py
-            - android/androidarm_4_3-tc.py
+            - mozharness/configs/android/androidarm_4_3.py
+            - mozharness/configs/remove_executables.py
+            - mozharness/configs/android/androidarm_4_3-tc.py
         extra-options:
             - --test-suite=mochitest-plain-clipboard
 
 mochitest-gpu:
     description: "Mochitest gpu run"
     suite: mochitest/plain-gpu
     treeherder-symbol: tc-M(gpu)
     loopback-video: true
     e10s: false
     mozharness:
-        script: android_emulator_unittest.py
+        script: mozharness/scripts/android_emulator_unittest.py
         no-read-buildbot-config: true
         config:
-            - android/androidarm_4_3.py
-            - remove_executables.py
-            - android/androidarm_4_3-tc.py
+            - mozharness/configs/android/androidarm_4_3.py
+            - mozharness/configs/remove_executables.py
+            - mozharness/configs/android/androidarm_4_3-tc.py
         extra-options:
             - --test-suite=mochitest-plain-gpu
 
 mochitest-media:
     description: "Mochitest media run"
     suite: mochitest/mochitest-media
     treeherder-symbol: tc-M(mda)
     instance-size: xlarge
     chunks: 3
     loopback-video: true
     e10s: false
     max-run-time: 5400
     mozharness:
-        script: android_emulator_unittest.py
+        script: mozharness/scripts/android_emulator_unittest.py
         no-read-buildbot-config: true
         config:
-            - android/androidarm_4_3.py
-            - remove_executables.py
-            - android/androidarm_4_3-tc.py
+            - mozharness/configs/android/androidarm_4_3.py
+            - mozharness/configs/remove_executables.py
+            - mozharness/configs/android/androidarm_4_3-tc.py
         extra-options:
             - --test-suite=mochitest-media
 
 mochitest-webgl:
     description: "Mochitest webgl run"
     suite: mochitest/mochitest-gl
     treeherder-symbol: tc-M(gl)
     chunks: 10
     loopback-video: true
     e10s: false
     max-run-time: 7200
     instance-size: xlarge
     mozharness:
-        script: android_emulator_unittest.py
+        script: mozharness/scripts/android_emulator_unittest.py
         no-read-buildbot-config: true
         config:
-            - android/androidarm_4_3.py
-            - remove_executables.py
-            - android/androidarm_4_3-tc.py
+            - mozharness/configs/android/androidarm_4_3.py
+            - mozharness/configs/remove_executables.py
+            - mozharness/configs/android/androidarm_4_3-tc.py
         extra-options:
             - --test-suite=mochitest-gl
 
 reftest:
     description: "Reftest run"
     suite: reftest/reftest
     treeherder-symbol: tc-R(R)
     chunks:
         by-test-platform:
             android-4.3-arm7-api-15/debug: 48
             default: 16
     instance-size: xlarge
     max-run-time: 10800
     loopback-video: true
     e10s: false
     mozharness:
-        script: android_emulator_unittest.py
+        script: mozharness/scripts/android_emulator_unittest.py
         no-read-buildbot-config: true
         config:
-            - android/androidarm_4_3.py
-            - remove_executables.py
-            - android/androidarm_4_3-tc.py
+            - mozharness/configs/android/androidarm_4_3.py
+            - mozharness/configs/remove_executables.py
+            - mozharness/configs/android/androidarm_4_3-tc.py
         extra-options:
             - --test-suite=reftest
 
 robocop:
     description: "Robocop run"
     suite: robocop
     treeherder-symbol: tc-M(rc)
     instance-size: xlarge
     chunks:
         by-test-platform:
             # android-4.3-arm7-api-15/debug -- not run
             android-4.3-arm7-api-15/opt: 4
             android-4.3-arm7-api-15-gradle/opt: 4
     loopback-video: true
     e10s: false
     mozharness:
-        script: android_emulator_unittest.py
+        script: mozharness/scripts/android_emulator_unittest.py
         no-read-buildbot-config: true
         config:
-            - android/androidarm_4_3.py
-            - remove_executables.py
-            - android/androidarm_4_3-tc.py
+            - mozharness/configs/android/androidarm_4_3.py
+            - mozharness/configs/remove_executables.py
+            - mozharness/configs/android/androidarm_4_3-tc.py
         extra-options:
             - --test-suite=robocop
 
 xpcshell:
     description: "xpcshell test run"
     suite: xpcshell
     treeherder-symbol: tc-X()
     chunks:
         by-test-platform:
             default: 3
             android-4.2-x86/opt: 4
     instance-size: xlarge
     max-run-time: 7200
     loopback-video: true
     e10s: false
     mozharness:
-        script: android_emulator_unittest.py
+        script: mozharness/scripts/android_emulator_unittest.py
         no-read-buildbot-config: true
         extra-options:
             - --test-suite=xpcshell
         config:
             by-test-platform:
                 default:
-                    - android/androidarm_4_3.py
-                    - remove_executables.py
-                    - android/androidarm_4_3-tc.py
+                    - mozharness/configs/android/androidarm_4_3.py
+                    - mozharness/configs/remove_executables.py
+                    - mozharness/configs/android/androidarm_4_3-tc.py
                 android-4.2-x86/opt:
-                    - android/androidx86-tc.py
+                    - mozharness/configs/android/androidx86-tc.py
--- a/taskcluster/ci/build/windows.yml
+++ b/taskcluster/ci/build/windows.yml
@@ -9,17 +9,17 @@ win32/debug:
         symbol: tc(B)
         tier: 2
     worker-type: aws-provisioner-v1/gecko-{level}-b-win2012
     worker:
         implementation: generic-worker
         max-run-time: 7200
     run:
         using: mozharness
-        script: fx_desktop_build.py
+        script: mozharness/scripts/fx_desktop_build.py
         config:
             - builds/taskcluster_firefox_win32_debug.py
 
 win32/opt:
     description: "Win32 Opt"
     index:
         product: firefox
         job-name:
@@ -29,17 +29,17 @@ win32/opt:
         symbol: tc(B)
         tier: 2
     worker-type: aws-provisioner-v1/gecko-{level}-b-win2012
     worker:
         implementation: generic-worker
         max-run-time: 7200
     run:
         using: mozharness
-        script: fx_desktop_build.py
+        script: mozharness/scripts/fx_desktop_build.py
         config:
             - builds/taskcluster_firefox_win32_opt.py
 
 win64/debug:
     description: "Win64 Debug"
     index:
         product: firefox
         job-name:
@@ -49,17 +49,17 @@ win64/debug:
         symbol: tc(B)
         tier: 2
     worker-type: aws-provisioner-v1/gecko-{level}-b-win2012
     worker:
         implementation: generic-worker
         max-run-time: 7200
     run:
         using: mozharness
-        script: fx_desktop_build.py
+        script: mozharness/scripts/fx_desktop_build.py
         config:
             - builds/taskcluster_firefox_win64_debug.py
 
 win64/opt:
     description: "Win64 Opt"
     index:
         product: firefox
         job-name:
@@ -69,12 +69,12 @@ win64/opt:
         symbol: tc(B)
         tier: 2
     worker-type: aws-provisioner-v1/gecko-{level}-b-win2012
     worker:
         implementation: generic-worker
         max-run-time: 7200
     run:
         using: mozharness
-        script: fx_desktop_build.py
+        script: mozharness/scripts/fx_desktop_build.py
         config:
             - builds/taskcluster_firefox_win64_opt.py
 
--- a/taskcluster/ci/desktop-test/tests.yml
+++ b/taskcluster/ci/desktop-test/tests.yml
@@ -6,441 +6,441 @@
 # Note that these are in lexical order
 
 cppunit:
     description: "CPP Unit Tests"
     suite: cppunittest
     treeherder-symbol: tc(Cpp)
     e10s: false
     mozharness:
-        script: desktop_unittest.py
+        script: mozharness/scripts/desktop_unittest.py
         no-read-buildbot-config: true
         config:
             by-test-platform:
                 # Coming soon:
                 # win.*:
-                #    - unittests/win_unittest.py
-                #    - remove_executables.py
+                #    - mozharness/configs/unittests/win_unittest.py
+                #    - mozharness/configs/remove_executables.py
                 # ...
                 default:
-                    - unittests/linux_unittest.py
-                    - remove_executables.py
+                    - mozharness/configs/unittests/linux_unittest.py
+                    - mozharness/configs/remove_executables.py
         extra-options:
             - --cppunittest-suite=cppunittest
 
 crashtest:
     description: "Crashtest run"
     suite: reftest/crashtest
     treeherder-symbol: tc-R(C)
     mozharness:
-        script: desktop_unittest.py
+        script: mozharness/scripts/desktop_unittest.py
         chunked: true
         no-read-buildbot-config: true
         config:
             by-test-platform:
                 default:
-                    - unittests/linux_unittest.py
-                    - remove_executables.py
+                    - mozharness/configs/unittests/linux_unittest.py
+                    - mozharness/configs/remove_executables.py
         extra-options:
             - --reftest-suite=crashtest
 
 external-media-tests:
     description: "External Media Test run"
     suite: external-media-tests
     treeherder-symbol: tc-VP(b-m)
     e10s: false
     tier: 2
     max-run-time: 5400
     mozharness:
-        script: firefox_media_tests_buildbot.py
+        script: mozharness/scripts/firefox_media_tests_buildbot.py
         no-read-buildbot-config: true
         config:
-            - mediatests/buildbot_posix_config.py
-            - remove_executables.py
+            - mozharness/configs/mediatests/buildbot_posix_config.py
+            - mozharness/configs/remove_executables.py
 
 firefox-ui-functional-local:
     description: "Firefox-ui-tests functional run"
     suite: "firefox-ui/functional local"
     treeherder-symbol: tc-Fxfn-l(en-US)
     max-run-time: 5400
     tier: 1
     docker-image: {"in-tree": "desktop1604-test"}
     mozharness:
-        script: firefox_ui_tests/functional.py
+        script: mozharness/scripts/firefox_ui_tests/functional.py
         config:
-            - firefox_ui_tests/taskcluster.py
-            - remove_executables.py
+            - mozharness/configs/firefox_ui_tests/taskcluster.py
+            - mozharness/configs/remove_executables.py
         extra-options:
             - "--tag local"
 
 firefox-ui-functional-remote:
     description: "Firefox-ui-tests functional run"
     suite: "firefox-ui/functional remote"
     treeherder-symbol: tc-Fxfn-r(en-US)
     max-run-time: 5400
     tier: 2
     docker-image: {"in-tree": "desktop1604-test"}
     mozharness:
-        script: firefox_ui_tests/functional.py
+        script: mozharness/scripts/firefox_ui_tests/functional.py
         config:
-            - firefox_ui_tests/taskcluster.py
-            - remove_executables.py
+            - mozharness/configs/firefox_ui_tests/taskcluster.py
+            - mozharness/configs/remove_executables.py
         extra-options:
             - "--tag remote"
 
 gtest:
     description: "GTests run"
     suite: gtest
     treeherder-symbol: tc(GTest)
     e10s: false
     instance-size: xlarge
     mozharness:
-        script: desktop_unittest.py
+        script: mozharness/scripts/desktop_unittest.py
         no-read-buildbot-config: true
         config:
             by-test-platform:
                 default:
-                    - unittests/linux_unittest.py
-                    - remove_executables.py
+                    - mozharness/configs/unittests/linux_unittest.py
+                    - mozharness/configs/remove_executables.py
         extra-options:
             - --gtest-suite=gtest
 
 jittests:
     description: "JIT Test run"
     suite: jittest/jittest-chunked
     treeherder-symbol: tc(Jit)
     e10s: false
     chunks: 6
     mozharness:
-        script: desktop_unittest.py
+        script: mozharness/scripts/desktop_unittest.py
         no-read-buildbot-config: true
         config:
             by-test-platform:
                 default:
-                    - unittests/linux_unittest.py
-                    - remove_executables.py
+                    - mozharness/configs/unittests/linux_unittest.py
+                    - mozharness/configs/remove_executables.py
         extra-options:
             - --jittest-suite=jittest-chunked
 
 jsreftest:
     description: "JS Reftest run"
     suite: reftest/jsreftest
     treeherder-symbol: tc-R(J)
     chunks: 2
     mozharness:
-        script: desktop_unittest.py
+        script: mozharness/scripts/desktop_unittest.py
         no-read-buildbot-config: true
         config:
             by-test-platform:
                 default:
-                    - unittests/linux_unittest.py
-                    - remove_executables.py
+                    - mozharness/configs/unittests/linux_unittest.py
+                    - mozharness/configs/remove_executables.py
         extra-options:
             - --reftest-suite=jsreftest
 
 marionette:
     description: "Marionette unittest run"
     suite: marionette
     treeherder-symbol: tc(Mn)
     max-run-time: 5400
     mozharness:
-        script: marionette.py
+        script: mozharness/scripts/marionette.py
         no-read-buildbot-config: true
         config:
-            - marionette/prod_config.py
-            - remove_executables.py
+            - mozharness/configs/marionette/prod_config.py
+            - mozharness/configs/remove_executables.py
 
 mochitest:
     description: "Mochitest plain run"
     suite: mochitest/plain-chunked
     treeherder-symbol: tc-M()
     loopback-video: true
     chunks: 10
     max-run-time: 5400
     mozharness:
-        script: desktop_unittest.py
+        script: mozharness/scripts/desktop_unittest.py
         no-read-buildbot-config: true
         chunked: true
         config:
             by-test-platform:
                 default:
-                    - unittests/linux_unittest.py
-                    - remove_executables.py
+                    - mozharness/configs/unittests/linux_unittest.py
+                    - mozharness/configs/remove_executables.py
         extra-options:
             - --mochitest-suite=plain-chunked
     # Bug 1281241: migrating to m3.large instances
     instance-size: legacy
     allow-software-gl-layers: false
 
 mochitest-a11y:
     description: "Mochitest a11y run"
     suite: mochitest/a11y
     treeherder-symbol: tc-M(a11y)
     loopback-video: true
     e10s: false
     mozharness:
-        script: desktop_unittest.py
+        script: mozharness/scripts/desktop_unittest.py
         no-read-buildbot-config: true
         chunked: true
         config:
             by-test-platform:
                 default:
-                    - unittests/linux_unittest.py
-                    - remove_executables.py
+                    - mozharness/configs/unittests/linux_unittest.py
+                    - mozharness/configs/remove_executables.py
         extra-options:
             - --mochitest-suite=a11y
 
 mochitest-browser-chrome:
     description: "Mochitest browser-chrome run"
     suite: mochitest/browser-chrome-chunked
     treeherder-symbol: tc-M(bc)
     loopback-video: true
     chunks: 7
     max-run-time:
         by-test-platform:
             linux64/debug: 5400
             default: 3600
     mozharness:
-        script: desktop_unittest.py
+        script: mozharness/scripts/desktop_unittest.py
         no-read-buildbot-config: true
         config:
             by-test-platform:
                 default:
-                    - unittests/linux_unittest.py
-                    - remove_executables.py
+                    - mozharness/configs/unittests/linux_unittest.py
+                    - mozharness/configs/remove_executables.py
         extra-options:
             - --mochitest-suite=browser-chrome-chunked
     # Bug 1281241: migrating to m3.large instances
     instance-size: legacy
     allow-software-gl-layers: false
 
 mochitest-chrome:
     description: "Mochitest chrome run"
     suite: mochitest/chrome
     treeherder-symbol: tc-M(c)
     loopback-video: true
     chunks: 3
     e10s: false
     mozharness:
-        script: desktop_unittest.py
+        script: mozharness/scripts/desktop_unittest.py
         no-read-buildbot-config: true
         config:
             by-test-platform:
                 default:
-                    - unittests/linux_unittest.py
-                    - remove_executables.py
+                    - mozharness/configs/unittests/linux_unittest.py
+                    - mozharness/configs/remove_executables.py
         extra-options:
             - --mochitest-suite=chrome
 
 mochitest-clipboard:
     description: "Mochitest clipboard run"
     suite: mochitest/plain-clipboard,chrome-clipboard,browser-chrome-clipboard,jetpack-package-clipboard
     treeherder-symbol: tc-M(cl)
     loopback-video: true
     instance-size: xlarge
     mozharness:
-        script: desktop_unittest.py
+        script: mozharness/scripts/desktop_unittest.py
         no-read-buildbot-config: true
         chunked: true
         config:
             by-test-platform:
                 default:
-                    - unittests/linux_unittest.py
-                    - remove_executables.py
+                    - mozharness/configs/unittests/linux_unittest.py
+                    - mozharness/configs/remove_executables.py
         extra-options:
             - --mochitest-suite=plain-clipboard,chrome-clipboard,browser-chrome-clipboard,jetpack-package-clipboard
 
 mochitest-devtools-chrome:
     description: "Mochitest devtools-chrome run"
     suite: mochitest/mochitest-devtools-chrome-chunked
     treeherder-symbol: tc-M(dt)
     loopback-video: true
     max-run-time: 5400
     chunks: 10
     e10s:
         by-test-platform:
             # Bug 1242986: linux64/debug mochitest-devtools-chrome e10s is not greened up yet
             linux64/debug: false
             default: both
     mozharness:
-        script: desktop_unittest.py
+        script: mozharness/scripts/desktop_unittest.py
         no-read-buildbot-config: true
         config:
             by-test-platform:
                 default:
-                    - unittests/linux_unittest.py
-                    - remove_executables.py
+                    - mozharness/configs/unittests/linux_unittest.py
+                    - mozharness/configs/remove_executables.py
         extra-options:
             - --mochitest-suite=mochitest-devtools-chrome-chunked
     instance-size:
         by-test-platform:
             # Bug 1281241: migrating to m3.large instances
             linux64-asan/opt: legacy
             default: default
     # Bug 1296086: high number of intermittents observed with software GL and large instances
     allow-software-gl-layers: false
 
 mochitest-gpu:
     description: "Mochitest GPU run"
     suite: mochitest/plain-gpu,chrome-gpu,browser-chrome-gpu
     treeherder-symbol: tc-M(gpu)
     loopback-video: true
     mozharness:
-        script: desktop_unittest.py
+        script: mozharness/scripts/desktop_unittest.py
         no-read-buildbot-config: true
         chunked: true
         config:
             by-test-platform:
                 default:
-                    - unittests/linux_unittest.py
-                    - remove_executables.py
+                    - mozharness/configs/unittests/linux_unittest.py
+                    - mozharness/configs/remove_executables.py
         extra-options:
             - --mochitest-suite=plain-gpu,chrome-gpu,browser-chrome-gpu
 
 mochitest-jetpack:
     description: "Mochitest jetpack run"
     suite: mochitest/jetpack-package
     treeherder-symbol: tc-M(JP)
     loopback-video: true
     e10s: false
     max-run-time: 5400
     mozharness:
-        script: desktop_unittest.py
+        script: mozharness/scripts/desktop_unittest.py
         no-read-buildbot-config: true
         chunked: true
         config:
             by-test-platform:
                 default:
-                    - unittests/linux_unittest.py
-                    - remove_executables.py
+                    - mozharness/configs/unittests/linux_unittest.py
+                    - mozharness/configs/remove_executables.py
         extra-options:
             - --mochitest-suite=jetpack-package
 
 mochitest-media:
     description: "Mochitest media run"
     suite: mochitest/mochitest-media
     treeherder-symbol: tc-M(mda)
     max-run-time: 5400
     loopback-video: true
     instance-size: large
     docker-image: {"in-tree": "desktop1604-test"}
     mozharness:
-        script: desktop_unittest.py
+        script: mozharness/scripts/desktop_unittest.py
         no-read-buildbot-config: true
         chunked: true
         config:
             by-test-platform:
                 default:
-                    - unittests/linux_unittest.py
-                    - remove_executables.py
+                    - mozharness/configs/unittests/linux_unittest.py
+                    - mozharness/configs/remove_executables.py
         extra-options:
             - --mochitest-suite=mochitest-media
 
 mochitest-webgl:
     description: "Mochitest webgl run"
     suite: mochitest/mochitest-gl
     treeherder-symbol: tc-M(gl)
     chunks: 3
     loopback-video: true
     mozharness:
-        script: desktop_unittest.py
+        script: mozharness/scripts/desktop_unittest.py
         no-read-buildbot-config: true
         chunked: true
         config:
             by-test-platform:
                 default:
-                    - unittests/linux_unittest.py
-                    - remove_executables.py
+                    - mozharness/configs/unittests/linux_unittest.py
+                    - mozharness/configs/remove_executables.py
         extra-options:
             - --mochitest-suite=mochitest-gl
     # Bug 1296733: llvmpipe with mesa 9.2.1 lacks thread safety
     allow-software-gl-layers: false
 
 reftest:
     description: "Reftest run"
     suite: reftest/reftest
     treeherder-symbol: tc-R(R)
     chunks: 8
     mozharness:
-        script: desktop_unittest.py
+        script: mozharness/scripts/desktop_unittest.py
         no-read-buildbot-config: true
         config:
             by-test-platform:
                 default:
-                    - unittests/linux_unittest.py
-                    - remove_executables.py
+                    - mozharness/configs/unittests/linux_unittest.py
+                    - mozharness/configs/remove_executables.py
         extra-options:
             - --reftest-suite=reftest
 
 reftest-no-accel:
     description: "Reftest not accelerated run"
     suite: reftest/reftest-no-accel
     treeherder-symbol: tc-R(Ru)
     chunks: 8
     mozharness:
-        script: desktop_unittest.py
+        script: mozharness/scripts/desktop_unittest.py
         no-read-buildbot-config: true
         config:
             by-test-platform:
                 default:
-                    - unittests/linux_unittest.py
-                    - remove_executables.py
+                    - mozharness/configs/unittests/linux_unittest.py
+                    - mozharness/configs/remove_executables.py
         extra-options:
             - --reftest-suite=reftest-no-accel
 
 web-platform-tests:
     description: "Web platform test run"
     suite: web-platform-tests
     treeherder-symbol: tc-W()
     chunks: 12
     max-run-time: 7200
     instance-size: xlarge
     docker-image: {"in-tree": "desktop1604-test"}
     checkout: true
     mozharness:
-        script: web_platform_tests.py
+        script: mozharness/scripts/web_platform_tests.py
         no-read-buildbot-config: true
         config:
-            - web_platform_tests/prod_config.py
-            - remove_executables.py
+            - mozharness/configs/web_platform_tests/prod_config.py
+            - mozharness/configs/remove_executables.py
         extra-options:
             - --test-type=testharness
 
 web-platform-tests-reftests:
     description: "Web platform reftest run"
     suite: web-platform-tests-reftests
     treeherder-symbol: tc-W(Wr)
     max-run-time: 5400
     instance-size: xlarge
     docker-image: {"in-tree": "desktop1604-test"}
     checkout: true
     mozharness:
-        script: web_platform_tests.py
+        script: mozharness/scripts/web_platform_tests.py
         no-read-buildbot-config: true
         config:
-            - web_platform_tests/prod_config.py
-            - remove_executables.py
+            - mozharness/configs/web_platform_tests/prod_config.py
+            - mozharness/configs/remove_executables.py
         extra-options:
             - --test-type=reftest
 
 xpcshell:
     description: "xpcshell test run"
     suite: xpcshell
     treeherder-symbol: tc-X()
     chunks:
         by-test-platform:
             linux64/debug: 10
             default: 8
     max-run-time: 5400
     e10s: false
     mozharness:
-        script: desktop_unittest.py
+        script: mozharness/scripts/desktop_unittest.py
         no-read-buildbot-config: true
         config:
             by-test-platform:
                 default:
-                    - unittests/linux_unittest.py
-                    - remove_executables.py
+                    - mozharness/configs/unittests/linux_unittest.py
+                    - mozharness/configs/remove_executables.py
         extra-options:
             - --xpcshell-suite=xpcshell
     # Bug 1281241: migrating to m3.large instances
     instance-size: legacy
     allow-software-gl-layers: false
--- a/taskcluster/scripts/tester/test-ubuntu.sh
+++ b/taskcluster/scripts/tester/test-ubuntu.sh
@@ -15,17 +15,16 @@ fi
 . /home/worker/scripts/xvfb.sh
 
 ####
 # Taskcluster friendly wrapper for performing fx desktop tests via mozharness.
 ####
 
 # Inputs, with defaults
 
-: MOZHARNESS_PATH               ${MOZHARNESS_PATH}
 : MOZHARNESS_URL                ${MOZHARNESS_URL}
 : MOZHARNESS_SCRIPT             ${MOZHARNESS_SCRIPT}
 : MOZHARNESS_CONFIG             ${MOZHARNESS_CONFIG}
 : NEED_XVFB                     ${NEED_XVFB:=true}
 : NEED_WINDOW_MANAGER           ${NEED_WINDOW_MANAGER:=false}
 : NEED_PULSEAUDIO               ${NEED_PULSEAUDIO:=false}
 : START_VNC                     ${START_VNC:=false}
 : TASKCLUSTER_INTERACTIVE       ${TASKCLUSTER_INTERACTIVE:=false}
@@ -44,50 +43,43 @@ fail() {
 maybe_start_pulse() {
     if $NEED_PULSEAUDIO; then
         pulseaudio --fail --daemonize --start
         pactl load-module module-null-sink
     fi
 }
 
 # test required parameters are supplied
-if [ -z "${MOZHARNESS_PATH}" -a -z "${MOZHARNESS_URL}" ]; then
-    fail "MOZHARNESS_PATH or MOZHARNESS_URL must be defined";
-fi
-
+if [[ -z ${MOZHARNESS_URL} ]]; then fail "MOZHARNESS_URL is not set"; fi
 if [[ -z ${MOZHARNESS_SCRIPT} ]]; then fail "MOZHARNESS_SCRIPT is not set"; fi
 if [[ -z ${MOZHARNESS_CONFIG} ]]; then fail "MOZHARNESS_CONFIG is not set"; fi
 
 mkdir -p ~/artifacts/public
 
 cleanup() {
     local rv=$?
     if [[ -s /home/worker/.xsession-errors ]]; then
       # To share X issues
       cp /home/worker/.xsession-errors ~/artifacts/public/xsession-errors.log
     fi
     cleanup_xvfb
     exit $rv
 }
 trap cleanup EXIT INT
 
-# Download mozharness if we're told to.
-if [ ${MOZHARNESS_URL} ]; then
-    if ! curl --fail -o mozharness.zip --retry 10 -L $MOZHARNESS_URL; then
-        fail "failed to download mozharness zip"
-    fi
-    rm -rf mozharness
-    unzip -q mozharness.zip
-    rm mozharness.zip
+# Unzip the mozharness ZIP file created by the build task
+if ! curl --fail -o mozharness.zip --retry 10 -L $MOZHARNESS_URL; then
+    fail "failed to download mozharness zip"
+fi
+rm -rf mozharness
+unzip -q mozharness.zip
+rm mozharness.zip
 
-    if ! [ -d mozharness ]; then
-        fail "mozharness zip did not contain mozharness/"
-    fi
-
-    MOZHARNESS_PATH=`pwd`/mozharness
+if ! [ -d mozharness ]; then
+    fail "mozharness zip did not contain mozharness/"
 fi
 
 # pulseaudio daemon must be started before xvfb on Ubuntu 12.04.
 if ${UBUNTU_1204}; then
     maybe_start_pulse
 fi
 
 # run XVfb in the background, if necessary
@@ -133,28 +125,28 @@ fi
 # source it is running; tc-vcs obscures this a little, but we can provide
 # it directly.
 export MOZ_SOURCE_REPO="${GECKO_HEAD_REPOSITORY}"
 export MOZ_SOURCE_CHANGESET="${GECKO_HEAD_REV}"
 
 # support multiple, space delimited, config files
 config_cmds=""
 for cfg in $MOZHARNESS_CONFIG; do
-  config_cmds="${config_cmds} --config-file ${MOZHARNESS_PATH}/configs/${cfg}"
+  config_cmds="${config_cmds} --config-file $WORKSPACE/${cfg}"
 done
 
 mozharness_bin="/home/worker/bin/run-mozharness"
 
 # Save the computed mozharness command to a binary which is useful
 # for interactive mode.
 echo -e "#!/usr/bin/env bash
 # Some mozharness scripts assume base_work_dir is in
 # the current working directory, see bug 1279237
 cd $WORKSPACE
-cmd=\"python2.7 ${MOZHARNESS_PATH}/scripts/${MOZHARNESS_SCRIPT} ${config_cmds} ${@} \${@}\"
+cmd=\"python2.7 $WORKSPACE/${MOZHARNESS_SCRIPT} ${config_cmds} ${@} \${@}\"
 echo \"Running: \${cmd}\"
 exec \${cmd}" > ${mozharness_bin}
 chmod +x ${mozharness_bin}
 
 # In interactive mode, the user will be prompted with options for what to do.
 if ! $TASKCLUSTER_INTERACTIVE; then
   # run the given mozharness script and configs, but pass the rest of the
   # arguments in from our own invocation
--- a/taskcluster/taskgraph/transforms/tests/make_task_description.py
+++ b/taskcluster/taskgraph/transforms/tests/make_task_description.py
@@ -157,16 +157,17 @@ def docker_worker_setup(config, test, ta
         'name': 'level-{}-{}-test-workspace'.format(
             config.params['level'], config.params['project']),
         'mount-point': "/home/worker/workspace",
     }]
 
     env = worker['env'] = {
         'MOZHARNESS_CONFIG': ' '.join(mozharness['config']),
         'MOZHARNESS_SCRIPT': mozharness['script'],
+        'MOZHARNESS_URL': {'task-reference': mozharness_url},
         'MOZILLA_BUILD_URL': {'task-reference': installer_url},
         'NEED_PULSEAUDIO': 'true',
         'NEED_WINDOW_MANAGER': 'true',
     }
 
     if mozharness['set-moz-node-path']:
         env['MOZ_NODE_PATH'] = '/usr/local/bin/node'
 
@@ -192,24 +193,19 @@ def docker_worker_setup(config, test, ta
 
     # assemble the command line
     command = [
         '/home/worker/bin/run-task',
         # The workspace cache/volume is default owned by root:root.
         '--chown', '/home/worker/workspace',
     ]
 
-    # If we have a source checkout, run mozharness from it instead of
-    # downloading a zip file with the same content.
     if test['checkout']:
         docker_worker_support_vcs_checkout(config, test, taskdesc)
         command.extend(['--vcs-checkout', '/home/worker/checkouts/gecko'])
-        env['MOZHARNESS_PATH'] = '/home/worker/checkouts/gecko/testing/mozharness'
-    else:
-        env['MOZHARNESS_URL'] = {'task-reference': mozharness_url}
 
     command.extend([
         '--',
         '/home/worker/bin/test-linux.sh',
     ])
 
     if mozharness.get('no-read-buildbot-config'):
         command.append("--no-read-buildbot-config")