Bug 1289249 - Use run-task in marionette-harness task
desktop-build just gained run-task. build.sh will soon be deleted
from it. Port marionette-harness to run-task so we can delete
build.sh and friends from desktop-build.
MozReview-Commit-ID: 3IqNkF4zf7R
--- a/taskcluster/ci/marionette-harness/kind.yml
+++ b/taskcluster/ci/marionette-harness/kind.yml
@@ -26,26 +26,26 @@ jobs:
symbol: tc(Mn-h)
worker-type: aws-provisioner-v1/desktop-test-xlarge
worker:
implementation: docker-worker
docker-image: {in-tree: desktop-build} # NOTE: better to use the lint image
env:
JOB_SCRIPT: "taskcluster/scripts/tester/harness-test-linux.sh"
MOZHARNESS_SCRIPT: "testing/mozharness/scripts/marionette_harness_tests.py"
- TOOLS_DISABLE: "true"
- TOOLTOOL_REPO: "https://github.com/mozilla/build-tooltool"
- TOOLTOOL_REV: "master"
artifacts:
- name: public/logs/
path: /home/worker/workspace/mozharness_workspace/upload/logs/
type: directory
command:
- - "bash"
- - "/home/worker/bin/build.sh"
+ - "/home/worker/bin/run-task"
+ - "--chown=/home/worker/workspace"
+ - "--vcs-checkout=/home/worker/workspace/build/src"
+ - "--"
+ - "/home/worker/workspace/build/src/taskcluster/scripts/builder/build-linux.sh"
- "--tests=testing/marionette/harness/marionette/tests/harness_unit"
- "--work-dir=mozharness_workspace"
max-run-time: 1800
when:
files-changed:
- "testing/marionette/harness/**"
- "testing/mozharness/scripts/marionette_harness_tests.py"
- "testing/config/marionette_harness_test_requirements.txt"
--- a/taskcluster/taskgraph/transforms/job/common.py
+++ b/taskcluster/taskgraph/transforms/job/common.py
@@ -80,17 +80,18 @@ def docker_worker_support_vcs_checkout(c
taskdesc['worker'].setdefault('env', {}).update({
'GECKO_BASE_REPOSITORY': config.params['base_repository'],
'GECKO_HEAD_REPOSITORY': config.params['head_repository'],
'GECKO_HEAD_REV': config.params['head_rev'],
})
# Give task access to hgfingerprint secret so it can pin the certificate
# for hg.mozilla.org.
- taskdesc['scopes'].append('secrets:get:project/taskcluster/gecko/hgfingerprint')
+ taskdesc.setdefault('scopes', []).append(
+ 'secrets:get:project/taskcluster/gecko/hgfingerprint')
taskdesc['worker']['taskcluster-proxy'] = True
def docker_worker_setup_secrets(config, job, taskdesc):
"""Set up access to secrets via taskcluster-proxy. The value of
run['secrets'] should be a boolean or a list of secret names that
can be accessed."""
if not job['run'].get('secrets'):
--- a/taskcluster/taskgraph/transforms/marionette_harness.py
+++ b/taskcluster/taskgraph/transforms/marionette_harness.py
@@ -4,44 +4,30 @@
"""
Set dynamic task description properties of the marionette-harness task.
"""
from __future__ import absolute_import, print_function, unicode_literals
import time
from taskgraph.transforms.base import TransformSequence
+from taskgraph.transforms.job.common import (
+ docker_worker_support_vcs_checkout,
+)
transforms = TransformSequence()
@transforms.add
def setup_task(config, tasks):
for task in tasks:
del task['name']
task['label'] = 'marionette-harness'
env = task['worker'].setdefault('env', {})
env.update({
- 'GECKO_BASE_REPOSITORY': config.params['base_repository'],
- 'GECKO_HEAD_REF': config.params['head_rev'],
- 'GECKO_HEAD_REPOSITORY': config.params['head_repository'],
- 'GECKO_HEAD_REV': config.params['head_rev'],
'MOZ_BUILD_DATE': time.strftime("%Y%m%d%H%M%S",
time.gmtime(config.params['pushdate'])),
'MOZ_SCM_LEVEL': config.params['level'],
})
- task['worker']['caches'] = [{
- 'type': 'persistent',
- 'name': 'level-{}-{}-tc-vcs'.format(
- config.params['level'], config.params['project']),
- 'mount-point': "/home/worker/.tc-vcs",
- }]
-
- if int(config.params['level']) > 1:
- task['worker'].setdefault('caches', []).append({
- 'type': 'persistent',
- 'name': 'level-{}-{}-test-workspace'.format(
- config.params['level'], config.params['project']),
- 'mount-point': "/home/worker/workspace",
- })
+ docker_worker_support_vcs_checkout(config, None, task)
yield task