зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1274980 part 2: Support Mac OS tests in tc intree config. r=dustin
We add support for Mac OSX tests in Taskcluster by support taskcluster-worker macosx engine. We also add a new configuration blob-upload-branch needed by mochitest-other. MozReview-Commit-ID: CxT3BP3sydG --HG-- extra : rebase_source : 25e16bf5b5d5a8121fd431788185d318612d7ea5
This commit is contained in:
Родитель
4e8662ab83
Коммит
41ed0a2cdf
|
@ -64,3 +64,10 @@ windows10-64-vm/opt:
|
|||
#windows10-64/opt:
|
||||
# build-platform: win64/opt
|
||||
# test-set: windows-gpu-tests
|
||||
|
||||
macosx64/debug:
|
||||
build-platform: macosx64/debug
|
||||
test-set: macosx64-tests
|
||||
# macosx64/opt:
|
||||
# build-platform: macosx64/opt
|
||||
# test-set: macosx64-tests
|
||||
|
|
|
@ -96,4 +96,24 @@ ccov-code-coverage-tests:
|
|||
|
||||
jsdcov-code-coverage-tests:
|
||||
- mochitest-browser-chrome
|
||||
- mochitest-devtools-chrome
|
||||
- mochitest-devtools-chrome
|
||||
|
||||
macosx64-tests:
|
||||
- cppunit
|
||||
- crashtest
|
||||
# - gtest
|
||||
- jsreftest
|
||||
# - marionette
|
||||
# - mochitest
|
||||
# - mochitest-browser-chrome
|
||||
# - mochitest-clipboard
|
||||
# - mochitest-devtools-chrome
|
||||
# - mochitest-gpu
|
||||
# - mochitest-jetpack
|
||||
# - mochitest-media
|
||||
# - mochitest-other
|
||||
- mochitest-webgl
|
||||
# - reftest
|
||||
# - web-platform-tests
|
||||
# - web-platform-tests-reftests
|
||||
# - xpcshell
|
||||
|
|
|
@ -17,6 +17,9 @@ cppunit:
|
|||
by-test-platform:
|
||||
win.*:
|
||||
- unittests/win_taskcluster_unittest.py
|
||||
macosx.*:
|
||||
- remove_executables.py
|
||||
- unittests/mac_unittest.py
|
||||
default:
|
||||
- unittests/linux_unittest.py
|
||||
- remove_executables.py
|
||||
|
@ -41,6 +44,9 @@ crashtest:
|
|||
by-test-platform:
|
||||
win.*:
|
||||
- unittests/win_taskcluster_unittest.py
|
||||
macosx.*:
|
||||
- remove_executables.py
|
||||
- unittests/mac_unittest.py
|
||||
default:
|
||||
- unittests/linux_unittest.py
|
||||
- remove_executables.py
|
||||
|
@ -61,8 +67,8 @@ external-media-tests:
|
|||
win.*:
|
||||
- mediatests/taskcluster_windows_config.py
|
||||
default:
|
||||
- mediatests/taskcluster_posix_config.py
|
||||
- remove_executables.py
|
||||
- mediatests/buildbot_posix_config.py
|
||||
|
||||
firefox-ui-functional-local:
|
||||
description: "Firefox-ui-tests functional run"
|
||||
|
@ -74,10 +80,11 @@ firefox-ui-functional-local:
|
|||
mozharness:
|
||||
script: firefox_ui_tests/functional.py
|
||||
config:
|
||||
- firefox_ui_tests/taskcluster.py
|
||||
- remove_executables.py
|
||||
- firefox_ui_tests/taskcluster.py
|
||||
extra-options:
|
||||
- "--tag local"
|
||||
- "--tag"
|
||||
- "local"
|
||||
|
||||
firefox-ui-functional-remote:
|
||||
description: "Firefox-ui-tests functional run"
|
||||
|
@ -89,10 +96,11 @@ firefox-ui-functional-remote:
|
|||
mozharness:
|
||||
script: firefox_ui_tests/functional.py
|
||||
config:
|
||||
- firefox_ui_tests/taskcluster.py
|
||||
- remove_executables.py
|
||||
- firefox_ui_tests/taskcluster.py
|
||||
extra-options:
|
||||
- "--tag remote"
|
||||
- "--tag"
|
||||
- "remote"
|
||||
|
||||
gtest:
|
||||
description: "GTests run"
|
||||
|
@ -107,6 +115,9 @@ gtest:
|
|||
by-test-platform:
|
||||
win.*:
|
||||
- unittests/win_taskcluster_unittest.py
|
||||
macosx.*:
|
||||
- remove_executables.py
|
||||
- unittests/mac_unittest.py
|
||||
default:
|
||||
- unittests/linux_unittest.py
|
||||
- remove_executables.py
|
||||
|
@ -129,6 +140,9 @@ jittest:
|
|||
by-test-platform:
|
||||
win.*:
|
||||
- unittests/win_taskcluster_unittest.py
|
||||
macosx.*:
|
||||
- remove_executables.py
|
||||
- unittests/mac_unittest.py
|
||||
default:
|
||||
- unittests/linux_unittest.py
|
||||
- remove_executables.py
|
||||
|
@ -150,6 +164,9 @@ jsreftest:
|
|||
by-test-platform:
|
||||
win.*:
|
||||
- unittests/win_taskcluster_unittest.py
|
||||
macosx.*:
|
||||
- remove_executables.py
|
||||
- unittests/mac_unittest.py
|
||||
default:
|
||||
- unittests/linux_unittest.py
|
||||
- remove_executables.py
|
||||
|
@ -169,8 +186,8 @@ marionette:
|
|||
win.*:
|
||||
- marionette/windows_taskcluster_config.py
|
||||
default:
|
||||
- marionette/prod_config.py
|
||||
- remove_executables.py
|
||||
- marionette/prod_config.py
|
||||
|
||||
mochitest:
|
||||
description: "Mochitest plain run"
|
||||
|
@ -183,6 +200,7 @@ mochitest:
|
|||
default: ['all']
|
||||
chunks:
|
||||
by-test-platform:
|
||||
macosx.*: 5
|
||||
win.*: 5
|
||||
default: 10
|
||||
e10s:
|
||||
|
@ -198,6 +216,9 @@ mochitest:
|
|||
by-test-platform:
|
||||
win.*:
|
||||
- unittests/win_taskcluster_unittest.py
|
||||
macosx.*:
|
||||
- remove_executables.py
|
||||
- unittests/mac_unittest.py
|
||||
default:
|
||||
- unittests/linux_unittest.py
|
||||
- remove_executables.py
|
||||
|
@ -226,6 +247,9 @@ mochitest-a11y:
|
|||
by-test-platform:
|
||||
win.*:
|
||||
- unittests/win_taskcluster_unittest.py
|
||||
macosx.*:
|
||||
- remove_executables.py
|
||||
- unittests/mac_unittest.py
|
||||
default:
|
||||
- unittests/linux_unittest.py
|
||||
- remove_executables.py
|
||||
|
@ -267,6 +291,9 @@ mochitest-browser-chrome:
|
|||
by-test-platform:
|
||||
win.*:
|
||||
- unittests/win_taskcluster_unittest.py
|
||||
macosx.*:
|
||||
- remove_executables.py
|
||||
- unittests/mac_unittest.py
|
||||
default:
|
||||
- unittests/linux_unittest.py
|
||||
- remove_executables.py
|
||||
|
@ -292,7 +319,10 @@ mochitest-chrome:
|
|||
suite: mochitest/chrome
|
||||
treeherder-symbol: tc-M(c)
|
||||
loopback-video: true
|
||||
chunks: 3
|
||||
chunks:
|
||||
by-test-platform:
|
||||
macosx.*: 1
|
||||
default: 3
|
||||
e10s: false
|
||||
mozharness:
|
||||
script: desktop_unittest.py
|
||||
|
@ -301,6 +331,9 @@ mochitest-chrome:
|
|||
by-test-platform:
|
||||
win.*:
|
||||
- unittests/win_taskcluster_unittest.py
|
||||
macosx.*:
|
||||
- remove_executables.py
|
||||
- unittests/mac_unittest.py
|
||||
default:
|
||||
- unittests/linux_unittest.py
|
||||
- remove_executables.py
|
||||
|
@ -321,6 +354,9 @@ mochitest-clipboard:
|
|||
by-test-platform:
|
||||
win.*:
|
||||
- unittests/win_taskcluster_unittest.py
|
||||
macosx.*:
|
||||
- remove_executables.py
|
||||
- unittests/mac_unittest.py
|
||||
default:
|
||||
- unittests/linux_unittest.py
|
||||
- remove_executables.py
|
||||
|
@ -359,6 +395,9 @@ mochitest-devtools-chrome:
|
|||
by-test-platform:
|
||||
win.*:
|
||||
- unittests/win_taskcluster_unittest.py
|
||||
macosx.*:
|
||||
- remove_executables.py
|
||||
- unittests/mac_unittest.py
|
||||
default:
|
||||
- unittests/linux_unittest.py
|
||||
- remove_executables.py
|
||||
|
@ -396,6 +435,9 @@ mochitest-gpu:
|
|||
by-test-platform:
|
||||
win.*:
|
||||
- unittests/win_taskcluster_unittest.py
|
||||
macosx.*:
|
||||
- remove_executables.py
|
||||
- unittests/mac_unittest.py
|
||||
default:
|
||||
- unittests/linux_unittest.py
|
||||
- remove_executables.py
|
||||
|
@ -417,6 +459,9 @@ mochitest-jetpack:
|
|||
by-test-platform:
|
||||
win.*:
|
||||
- unittests/win_taskcluster_unittest.py
|
||||
macosx.*:
|
||||
- remove_executables.py
|
||||
- unittests/mac_unittest.py
|
||||
default:
|
||||
- unittests/linux_unittest.py
|
||||
- remove_executables.py
|
||||
|
@ -440,12 +485,37 @@ mochitest-media:
|
|||
by-test-platform:
|
||||
win.*:
|
||||
- unittests/win_taskcluster_unittest.py
|
||||
macosx.*:
|
||||
- remove_executables.py
|
||||
- unittests/mac_unittest.py
|
||||
default:
|
||||
- unittests/linux_unittest.py
|
||||
- remove_executables.py
|
||||
extra-options:
|
||||
- --mochitest-suite=mochitest-media
|
||||
|
||||
mochitest-other:
|
||||
description: "Mochitest other"
|
||||
suite: mochitest/other
|
||||
treeherder-symbol: tc-M(oth)
|
||||
e10s: false
|
||||
max-run-time: 5400
|
||||
mozharness:
|
||||
script: mozharness/scripts/desktop_unittest.py
|
||||
no-read-buildbot-config: true
|
||||
include-blob-upload-branch: true
|
||||
chunked: true
|
||||
config:
|
||||
by-test-platform:
|
||||
macosx.*:
|
||||
- remove_executables.py
|
||||
- unittests/mac_unittest.py
|
||||
default:
|
||||
- unittests/linux_unittest.py
|
||||
- remove_executables.py
|
||||
extra-options:
|
||||
- --mochitest-suite=chrome,a11y
|
||||
|
||||
mochitest-webgl:
|
||||
description: "Mochitest webgl run"
|
||||
suite: mochitest/mochitest-gl
|
||||
|
@ -460,6 +530,9 @@ mochitest-webgl:
|
|||
by-test-platform:
|
||||
win.*:
|
||||
- unittests/win_taskcluster_unittest.py
|
||||
macosx.*:
|
||||
- remove_executables.py
|
||||
- unittests/mac_unittest.py
|
||||
default:
|
||||
- unittests/linux_unittest.py
|
||||
- remove_executables.py
|
||||
|
@ -472,8 +545,11 @@ reftest:
|
|||
description: "Reftest run"
|
||||
suite: reftest/reftest
|
||||
treeherder-symbol: tc-R(R)
|
||||
chunks: 8
|
||||
docker-image: {"in-tree": "desktop1604-test"}
|
||||
chunks:
|
||||
by-test-platform:
|
||||
macosx.*: 1
|
||||
default: 8
|
||||
mozharness:
|
||||
script: desktop_unittest.py
|
||||
no-read-buildbot-config: true
|
||||
|
@ -481,6 +557,9 @@ reftest:
|
|||
by-test-platform:
|
||||
win.*:
|
||||
- unittests/win_taskcluster_unittest.py
|
||||
macosx.*:
|
||||
- remove_executables.py
|
||||
- unittests/mac_unittest.py
|
||||
default:
|
||||
- unittests/linux_unittest.py
|
||||
- remove_executables.py
|
||||
|
@ -491,8 +570,11 @@ reftest-no-accel:
|
|||
description: "Reftest not accelerated run"
|
||||
suite: reftest/reftest-no-accel
|
||||
treeherder-symbol: tc-R(Ru)
|
||||
chunks: 8
|
||||
docker-image: {"in-tree": "desktop1604-test"}
|
||||
chunks:
|
||||
by-test-platform:
|
||||
macosx.*: 1
|
||||
default: 8
|
||||
mozharness:
|
||||
script: desktop_unittest.py
|
||||
no-read-buildbot-config: true
|
||||
|
@ -500,6 +582,9 @@ reftest-no-accel:
|
|||
by-test-platform:
|
||||
win.*:
|
||||
- unittests/win_taskcluster_unittest.py
|
||||
macosx.*:
|
||||
- remove_executables.py
|
||||
- unittests/mac_unittest.py
|
||||
default:
|
||||
- unittests/linux_unittest.py
|
||||
- remove_executables.py
|
||||
|
@ -510,7 +595,10 @@ web-platform-tests:
|
|||
description: "Web platform test run"
|
||||
suite: web-platform-tests
|
||||
treeherder-symbol: tc-W()
|
||||
chunks: 12
|
||||
chunks:
|
||||
by-test-platform:
|
||||
macosx.*: 5
|
||||
default: 12
|
||||
max-run-time: 7200
|
||||
instance-size: xlarge
|
||||
docker-image: {"in-tree": "desktop1604-test"}
|
||||
|
@ -523,8 +611,8 @@ web-platform-tests:
|
|||
win.*:
|
||||
- web_platform_tests/prod_config_windows_taskcluster.py
|
||||
default:
|
||||
- web_platform_tests/prod_config.py
|
||||
- remove_executables.py
|
||||
- web_platform_tests/prod_config.py
|
||||
extra-options:
|
||||
- --test-type=testharness
|
||||
|
||||
|
@ -544,8 +632,8 @@ web-platform-tests-reftests:
|
|||
win.*:
|
||||
- web_platform_tests/prod_config_windows_taskcluster.py
|
||||
default:
|
||||
- web_platform_tests/prod_config.py
|
||||
- remove_executables.py
|
||||
- web_platform_tests/prod_config.py
|
||||
extra-options:
|
||||
- --test-type=reftest
|
||||
|
||||
|
@ -581,6 +669,7 @@ xpcshell:
|
|||
chunks:
|
||||
by-test-platform:
|
||||
# win.*: 1
|
||||
macosx.*: 1
|
||||
linux64/debug: 10
|
||||
default: 8
|
||||
max-run-time: 5400
|
||||
|
@ -592,6 +681,9 @@ xpcshell:
|
|||
by-test-platform:
|
||||
win.*:
|
||||
- unittests/win_taskcluster_unittest.py
|
||||
macosx.*:
|
||||
- remove_executables.py
|
||||
- unittests/mac_unittest.py
|
||||
default:
|
||||
- unittests/linux_unittest.py
|
||||
- remove_executables.py
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
#! /bin/bash -xe
|
||||
|
||||
set -x -e
|
||||
|
||||
echo "running as" $(id)
|
||||
|
||||
####
|
||||
# Taskcluster friendly wrapper for performing fx Mac OSX tests via mozharness.
|
||||
####
|
||||
|
||||
# Inputs, with defaults
|
||||
|
||||
: MOZHARNESS_URL ${MOZHARNESS_URL}
|
||||
: MOZHARNESS_SCRIPT ${MOZHARNESS_SCRIPT}
|
||||
: MOZHARNESS_CONFIG ${MOZHARNESS_CONFIG}
|
||||
|
||||
WORKSPACE=$HOME
|
||||
cd $WORKSPACE
|
||||
|
||||
rm -rf artifacts
|
||||
mkdir artifacts
|
||||
|
||||
# test required parameters are supplied
|
||||
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
|
||||
|
||||
# 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
|
||||
|
||||
# For telemetry purposes, the build process wants information about the
|
||||
# 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 ${cfg}"
|
||||
done
|
||||
|
||||
rm -rf build logs properties target.dmg
|
||||
|
||||
# run the given mozharness script and configs, but pass the rest of the
|
||||
# arguments in from our own invocation
|
||||
python2.7 $WORKSPACE/mozharness/scripts/${MOZHARNESS_SCRIPT} ${config_cmds} "${@}"
|
|
@ -47,6 +47,7 @@ JOB_NAME_WHITELIST = set([
|
|||
'macosx64-st-an-opt',
|
||||
'nexus-5-l-eng-debug',
|
||||
'nexus-5-l-eng-opt',
|
||||
'osx-10-10',
|
||||
'shell-haz-debug',
|
||||
'sm-arm64-sim-debug',
|
||||
'sm-arm-sim-debug',
|
||||
|
|
|
@ -250,6 +250,30 @@ task_description_schema = Schema({
|
|||
'product': basestring,
|
||||
Extra: basestring, # additional properties are allowed
|
||||
},
|
||||
}, {
|
||||
'implementation': 'macosx-engine',
|
||||
|
||||
# A link for an executable to download
|
||||
Optional('link'): basestring,
|
||||
|
||||
# the command to run
|
||||
Required('command'): [taskref_or_string],
|
||||
|
||||
# environment variables
|
||||
Optional('env'): {basestring: taskref_or_string},
|
||||
|
||||
# artifacts to extract from the task image after completion
|
||||
Optional('artifacts'): [{
|
||||
# type of artifact -- simple file, or recursive directory
|
||||
Required('type'): Any('file', 'directory'),
|
||||
|
||||
# task image path from which to read artifact
|
||||
Required('path'): basestring,
|
||||
|
||||
# name of the produced artifact (root of the names for
|
||||
# type=directory)
|
||||
Required('name'): basestring,
|
||||
}],
|
||||
}),
|
||||
|
||||
# The "when" section contains descriptions of the circumstances
|
||||
|
@ -429,6 +453,22 @@ def build_generic_worker_payload(config, task, task_def):
|
|||
if 'retry-exit-status' in worker:
|
||||
raise Exception("retry-exit-status not supported in generic-worker")
|
||||
|
||||
@payload_builder('macosx-engine')
|
||||
def build_macosx_engine_payload(config, task, task_def):
|
||||
worker = task['worker']
|
||||
artifacts = map(lambda artifact: {
|
||||
'name': artifact['name'],
|
||||
'path': artifact['path'],
|
||||
'type': artifact['type'],
|
||||
'expires': task_def['expires'],
|
||||
}, worker['artifacts'])
|
||||
|
||||
task_def['payload'] = {
|
||||
'link': worker['link'],
|
||||
'command': worker['command'],
|
||||
'env': worker['env'],
|
||||
'artifacts': artifacts,
|
||||
}
|
||||
|
||||
transforms = TransformSequence()
|
||||
|
||||
|
|
|
@ -26,6 +26,8 @@ def set_worker_implementation(config, tests):
|
|||
for test in tests:
|
||||
if test['test-platform'].startswith('win'):
|
||||
test['worker-implementation'] = 'generic-worker'
|
||||
elif test['test-platform'].startswith('macosx'):
|
||||
test['worker-implementation'] = 'macosx-engine'
|
||||
else:
|
||||
test['worker-implementation'] = 'docker-worker'
|
||||
yield test
|
||||
|
|
|
@ -21,7 +21,12 @@ transforms = TransformSequence()
|
|||
@transforms.add
|
||||
def set_defaults(config, tests):
|
||||
for test in tests:
|
||||
test['mozharness']['build-artifact-name'] = 'public/build/target.tar.bz2'
|
||||
build_platform = test['build-platform']
|
||||
if build_platform.startswith('macosx'):
|
||||
target = 'target.dmg'
|
||||
else:
|
||||
target = 'target.tar.bz2'
|
||||
test['mozharness']['build-artifact-name'] = 'public/build/' + target
|
||||
# all desktop tests want to run the bits that require node
|
||||
test['mozharness']['set-moz-node-path'] = True
|
||||
yield test
|
||||
|
@ -35,7 +40,9 @@ def set_treeherder_machine_platform(config, tests):
|
|||
# platforms
|
||||
translation = {
|
||||
'linux64-asan/opt': 'linux64/asan',
|
||||
'linux64-pgo/opt': 'linux64/pgo'
|
||||
'linux64-pgo/opt': 'linux64/pgo',
|
||||
'macosx64/debug': 'osx-10-10/debug',
|
||||
'macosx64/opt': 'osx-10-10/opt',
|
||||
}
|
||||
for test in tests:
|
||||
build_platform = test['build-platform']
|
||||
|
|
|
@ -25,6 +25,7 @@ from taskgraph.transforms.job.common import (
|
|||
)
|
||||
|
||||
import logging
|
||||
import os.path
|
||||
|
||||
ARTIFACT_URL = 'https://queue.taskcluster.net/v1/task/{}/artifacts/{}'
|
||||
WORKER_TYPE = {
|
||||
|
@ -40,6 +41,13 @@ WORKER_TYPE = {
|
|||
'windows10-64': 'aws-provisioner-v1/gecko-t-win10-64-gpu'
|
||||
}
|
||||
|
||||
ARTIFACTS = [
|
||||
# (artifact name prefix, in-image path)
|
||||
("public/logs/", "build/upload/logs/"),
|
||||
("public/test", "artifacts/"),
|
||||
("public/test_info/", "build/blobber_upload_dir/"),
|
||||
]
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
transforms = TransformSequence()
|
||||
|
@ -157,7 +165,7 @@ def docker_worker_setup(config, test, taskdesc):
|
|||
|
||||
worker['artifacts'] = [{
|
||||
'name': prefix,
|
||||
'path': path,
|
||||
'path': os.path.join('/home/worker/workspace', path),
|
||||
'type': 'directory',
|
||||
} for (prefix, path) in artifacts]
|
||||
|
||||
|
@ -369,3 +377,68 @@ def generic_worker_setup(config, test, taskdesc):
|
|||
'xcopy build\\blobber_upload_dir public\\test_info /e /i',
|
||||
'copy /y logs\\*.* public\\logs\\'
|
||||
]
|
||||
|
||||
@worker_setup_function("macosx-engine")
|
||||
def macosx_engine_setup(config, test, taskdesc):
|
||||
mozharness = test['mozharness']
|
||||
|
||||
installer_url = ARTIFACT_URL.format('<build>', mozharness['build-artifact-name'])
|
||||
test_packages_url = ARTIFACT_URL.format('<build>',
|
||||
'public/build/target.test_packages.json')
|
||||
mozharness_url = ARTIFACT_URL.format('<build>',
|
||||
'public/build/mozharness.zip')
|
||||
|
||||
# for now we have only 10.10 machines
|
||||
taskdesc['worker-type'] = 'tc-worker-provisioner/gecko-t-osx-10-10'
|
||||
|
||||
worker = taskdesc['worker'] = {}
|
||||
worker['implementation'] = test['worker-implementation']
|
||||
|
||||
worker['artifacts'] = [{
|
||||
'name': prefix.rstrip('/'),
|
||||
'path': path.rstrip('/'),
|
||||
'type': 'directory',
|
||||
} for (prefix, path) in ARTIFACTS]
|
||||
|
||||
env = worker['env'] = {
|
||||
'GECKO_HEAD_REPOSITORY': config.params['head_repository'],
|
||||
'GECKO_HEAD_REV': config.params['head_rev'],
|
||||
'MOZHARNESS_CONFIG': ' '.join(mozharness['config']),
|
||||
'MOZHARNESS_SCRIPT': mozharness['script'],
|
||||
'MOZHARNESS_URL': {'task-reference': mozharness_url},
|
||||
'MOZILLA_BUILD_URL': {'task-reference': installer_url},
|
||||
}
|
||||
|
||||
# assemble the command line
|
||||
|
||||
worker['link'] = '{}/raw-file/{}/taskcluster/scripts/tester/test-macosx.sh'.format(
|
||||
config.params['head_repository'], config.params['head_rev']
|
||||
)
|
||||
|
||||
command = worker['command'] = ["./test-macosx.sh"]
|
||||
if mozharness.get('no-read-buildbot-config'):
|
||||
command.append("--no-read-buildbot-config")
|
||||
command.extend([
|
||||
{"task-reference": "--installer-url=" + installer_url},
|
||||
{"task-reference": "--test-packages-url=" + test_packages_url},
|
||||
])
|
||||
if mozharness.get('include-blob-upload-branch'):
|
||||
command.append('--blob-upload-branch=' + config.params['project'])
|
||||
command.extend(mozharness.get('extra-options', []))
|
||||
|
||||
# TODO: remove the need for run['chunked']
|
||||
if mozharness.get('chunked') or test['chunks'] > 1:
|
||||
# Implement mozharness['chunking-args'], modifying command in place
|
||||
if mozharness['chunking-args'] == 'this-chunk':
|
||||
command.append('--total-chunk={}'.format(test['chunks']))
|
||||
command.append('--this-chunk={}'.format(test['this-chunk']))
|
||||
elif mozharness['chunking-args'] == 'test-suite-suffix':
|
||||
suffix = mozharness['chunk-suffix'].replace('<CHUNK>', str(test['this-chunk']))
|
||||
for i, c in enumerate(command):
|
||||
if isinstance(c, basestring) and c.startswith('--test-suite'):
|
||||
command[i] += suffix
|
||||
|
||||
if 'download-symbols' in mozharness:
|
||||
download_symbols = mozharness['download-symbols']
|
||||
download_symbols = {True: 'true', False: 'false'}.get(download_symbols, download_symbols)
|
||||
command.append('--download-symbols=' + download_symbols)
|
||||
|
|
|
@ -106,6 +106,7 @@ test_description_schema = Schema({
|
|||
# test platform.
|
||||
Optional('worker-implementation'): Any(
|
||||
'docker-worker',
|
||||
'macosx-engine',
|
||||
'generic-worker',
|
||||
# coming soon:
|
||||
'docker-engine',
|
||||
|
@ -168,6 +169,9 @@ test_description_schema = Schema({
|
|||
# buildbot config file, so tell it not to do so in TaskCluster
|
||||
Required('no-read-buildbot-config', default=False): bool,
|
||||
|
||||
# Add --blob-upload-branch=<project> mozharness parameter
|
||||
Optional('include-blob-upload-branch'): bool,
|
||||
|
||||
# The setting for --download-symbols (if omitted, the option will not
|
||||
# be passed to mozharness)
|
||||
Optional('download-symbols'): Any(True, 'ondemand'),
|
||||
|
|
Загрузка…
Ссылка в новой задаче