Bug 1337980 - Use run-task for docker-based toolchain tasks. r?dustin draft
authorMike Hommey <mh+mozilla@glandium.org>
Thu, 09 Feb 2017 10:41:35 +0900
changeset 481046 47f04fd58396cfe5fff6b97814cf9f44fb1c57ee
parent 481018 6b64efbd5d6c4c9414a2d340085ac25689b586be
child 545088 9f36f706f3c112210483168d7ac362c5c6a6dfac
push id44694
push userbmo:mh+mozilla@glandium.org
push dateThu, 09 Feb 2017 04:15:18 +0000
reviewersdustin
bugs1337980
milestone54.0a1
Bug 1337980 - Use run-task for docker-based toolchain tasks. r?dustin
taskcluster/taskgraph/transforms/job/toolchain.py
--- a/taskcluster/taskgraph/transforms/job/toolchain.py
+++ b/taskcluster/taskgraph/transforms/job/toolchain.py
@@ -7,17 +7,18 @@ Support for running toolchain-building j
 
 from __future__ import absolute_import, print_function, unicode_literals
 
 from voluptuous import Schema, Required, Any
 
 from taskgraph.transforms.job import run_job_using
 from taskgraph.transforms.job.common import (
     docker_worker_add_tc_vcs_cache,
-    docker_worker_add_gecko_vcs_env_vars
+    docker_worker_add_gecko_vcs_env_vars,
+    docker_worker_support_vcs_checkout,
 )
 
 toolchain_run_schema = Schema({
     Required('using'): 'toolchain-script',
 
     # the script (in taskcluster/scripts/misc) to run
     Required('script'): basestring,
 
@@ -42,16 +43,17 @@ def docker_worker_toolchain(config, job,
     worker['artifacts'].append({
         'name': 'public',
         'path': '/home/worker/workspace/artifacts/',
         'type': 'directory',
     })
 
     docker_worker_add_tc_vcs_cache(config, job, taskdesc)
     docker_worker_add_gecko_vcs_env_vars(config, job, taskdesc)
+    docker_worker_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'],
         'TOOLS_DISABLE': 'true',
     })
 
@@ -71,22 +73,26 @@ def docker_worker_toolchain(config, job,
         worker['relengapi-proxy'] = True
         taskdesc['scopes'].extend([
             'docker-worker:relengapi-proxy:tooltool.download.public',
         ])
         if run['tooltool-downloads'] == 'internal':
             taskdesc['scopes'].append(
                 'docker-worker:relengapi-proxy:tooltool.download.internal')
 
-    command = ' && '.join([
-        "cd /home/worker/",
-        "./bin/checkout-sources.sh",
-        "./workspace/build/src/taskcluster/scripts/misc/" + run['script'],
-    ])
-    worker['command'] = ["/bin/bash", "-c", command]
+    worker['command'] = [
+        '/home/worker/bin/run-task',
+        '--vcs-checkout=/home/worker/workspace/build/src',
+        '--',
+        'bash',
+        '-c',
+        'cd /home/worker && '
+        './workspace/build/src/taskcluster/scripts/misc/{}'.format(
+            run['script'])
+    ]
 
 
 @run_job_using("generic-worker", "toolchain-script", schema=toolchain_run_schema)
 def windows_toolchain(config, job, taskdesc):
     run = job['run']
 
     worker = taskdesc['worker']