Bug 1277338 - Part 10: Add the SM-tc(rust) taskcluster task; r=sfink

This adds a new SpiderMonkey taskcluster test task that builds and tests the
js/rust crate.
This commit is contained in:
Nick Fitzgerald 2017-09-01 16:43:15 -07:00
parent 8ea43ad861
commit f9b4712e86
7 changed files with 54 additions and 3 deletions

View File

@ -35,6 +35,7 @@ job-defaults:
- intl/icu/**
- js/moz.configure
- js/public/**
- js/rust/**
- js/src/**
- layout/tools/reftest/reftest/**
- Makefile.in
@ -95,6 +96,23 @@ jobs:
spidermonkey-variant: plain
run-on-projects: ['integration', 'release', 'try']
sm-rust-bindings/debug:
description: "Build and test the Rust bindings for SpiderMonkey"
index:
job-name: sm-rust-bindings-debug
treeherder:
symbol: SM-tc(rust)
tier: 2
worker:
max-run-time: 36000
docker-image: {in-tree: desktop-build}
env:
TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/linux64/releng.manifest"
run:
using: spidermonkey-rust-bindings
spidermonkey-variant: plain
run-on-projects: ['integration', 'release', 'try']
sm-plain/debug:
description: "Spidermonkey Plain"
index:

View File

@ -142,7 +142,7 @@ following ``run-using`` are available
* ``mozharness``
* ``mozharness-test``
* ``run-task``
* ``spidermonkey`` or ``spidermonkey-package`` or ``spidermonkey-mozjs-crate``
* ``spidermonkey`` or ``spidermonkey-package`` or ``spidermonkey-mozjs-crate`` or ``spidermonkey-rust-bindings``
* ``toolchain-script``

View File

@ -0,0 +1,18 @@
#!/usr/bin/env bash
set -xe
source $(dirname $0)/sm-tooltool-config.sh
# Ensure that we have a .config/cargo that points us to our vendored crates
# rather than to crates.io.
cd "$SRCDIR/.cargo"
sed -e "s|@top_srcdir@|$SRCDIR|" < config.in | tee config
cd "$SRCDIR/js/rust"
# Enable backtraces if we panic.
export RUST_BACKTRACE=1
cargo test --verbose --frozen --features debugmozjs
cargo test --verbose --frozen

View File

@ -47,3 +47,8 @@ BROWSER_PLATFORM=$PLATFORM_OS$BITS
export TOOLTOOL_CHECKOUT
(cd $TOOLTOOL_CHECKOUT && ${SRCDIR}/mach artifact toolchain -v --tooltool-url $TOOLTOOL_SERVER --tooltool-manifest $SRCDIR/$TOOLTOOL_MANIFEST ${TOOLTOOL_CACHE:+ --cache-dir $TOOLTOOL_CACHE}${MOZ_TOOLCHAINS:+ ${MOZ_TOOLCHAINS}})
# Add all the tooltool binaries to our $PATH.
for bin in ls $TOOLTOOL_CHECKOUT/*/bin; do
export PATH="$bin:$PATH"
done

View File

@ -88,6 +88,7 @@ JOB_NAME_WHITELIST = set([
'sm-plaindebug-debug',
'sm-win-plaindebug-debug',
'sm-rootanalysis-debug',
'sm-rust-bindings-debug',
'sm-tsan-opt',
'win32-add-on-devel',
'win32-clang-tidy',

View File

@ -20,7 +20,7 @@ from taskgraph.transforms.job.common import (
)
sm_run_schema = Schema({
Required('using'): Any('spidermonkey', 'spidermonkey-package', 'spidermonkey-mozjs-crate'),
Required('using'): Any('spidermonkey', 'spidermonkey-package', 'spidermonkey-mozjs-crate', 'spidermonkey-rust-bindings'),
# The SPIDERMONKEY_VARIANT
Required('spidermonkey-variant'): basestring,
@ -31,6 +31,8 @@ sm_run_schema = Schema({
@run_job_using("docker-worker", "spidermonkey-package", schema=sm_run_schema)
@run_job_using("docker-worker", "spidermonkey-mozjs-crate",
schema=sm_run_schema)
@run_job_using("docker-worker", "spidermonkey-rust-bindings",
schema=sm_run_schema)
def docker_worker_spidermonkey(config, job, taskdesc):
run = job['run']
@ -62,6 +64,8 @@ def docker_worker_spidermonkey(config, job, taskdesc):
script = "build-sm-package.sh"
elif run['using'] == 'spidermonkey-mozjs-crate':
script = "build-sm-mozjs-crate.sh"
elif run['using'] == 'spidermonkey-rust-bindings':
script = "build-sm-rust-bindings.sh"
worker['command'] = [
'/builds/worker/bin/run-task',
@ -104,7 +108,11 @@ def generic_worker_spidermonkey(config, job, taskdesc):
elif run['using'] == 'spidermonkey-mozjs-crate':
script = "build-sm-mozjs-crate.sh"
# Don't allow untested configurations yet
raise Exception("spidermonkey-mozhs-crate is not a supported configuration")
raise Exception("spidermonkey-mozjs-crate is not a supported configuration")
elif run['using'] == 'spidermonkey-rust-bindings':
script = "build-sm-rust-bindings.sh"
# Don't allow untested configurations yet
raise Exception("spidermonkey-rust-bindings is not a supported configuration")
hg_command = ['"c:\\Program Files\\Mercurial\\hg.exe"']
hg_command.append('robustcheckout')

View File

@ -167,6 +167,7 @@ RIDEALONG_BUILDS = {
'sm-mozjs-sys',
'sm-msan',
'sm-fuzzing',
'sm-rust-bindings',
],
}