- Bug 1161101 - Use JS_GetOwnPropertyDescriptor instead of GetPropertyDescriptor in dom/bindings. r=bz (918d7961c) - Bug 1119387 part 5: Update docker images. (0d47fde65) - Bug 1144463 - Add dolphin-512 and update docker. r=jlal,wcosta (aa6a55cab) - Bug 1134226: Add lightsaber nightly builds. (7926eff96) - Bug 1151981 - Properly check for MSVC (mingw fixup). (d95e17266) - Bug 1154947 part 3: Add aries nightly user, userdebug and eng builds. (45e096ed6) - Bug 1178932 - Implement Reflect.construct. r=Waldo. (4c5f0e72e) - Bug 1131206 - Remove the less useful commands from taskcluster mach r=garndt (e4c8ed78a) - Bug 1131206 - Select mozharness version from in tree r=garndt (fdab5140d) - bug 1156816 - Fix scopes for aws-provisioner. Switch nightly builds to production balrog. r=garndt (561d5cd58) - Bug 1166073 - change docker registry to hub r=garndt (17faea355) - Bug 1166233: Bring taskcluster-build mach command back. (c0a719c6b) - Bug 1142779 - Add buildbot steps for cloning and running tests r=lightsofapollo (304235375) - Bug 1142779 - Update job tasks to include functional unit and dual sim r=lightsofapollo (09b320602) - Bug 1147605 - Disable tests on phone builds r=me CLOSED TREE (0912de6ba) - Bug 1142779 - Update job tasks to use new chunking logic r=lightsofapollo (70c531920) - Bug 1144994 part 1: Update provisioner. (2447affa4) - Bug 1144994 part 2: Switch aries nightlies from cypress to m-c. (3019a6878) - Bug 1164939: Provide flame-kk user, userdebug and eng builds. (ab7ad22a7) - goanna->gecko (70b49bb18) - Bug 1166745: Reorganize tasks. (d3090e0a9) - Bug 1170378: Create tasks timestamps in UTC. r=jonasfj a=jonasfj (60160f061) - Bug 987902 - Add a "doctor" mach command; r=gps (be60e7df6) - Bug 985857 - Automatically log mach output and add a command to display it. r=gps (90993b77f) - Bug 991983 - Add a ContextDerivedTypedListWithItems type. r=gps (ad9482c7b) - Bug 991983 - Don't pass template paths to contexts. r=gps (30a4f2038) - Bug 991983 - Refactor SourcePath handling for moz.build, add new classes and extensive tests. r=gps (00aeb401b) - Bug 1142494 - Only package the steeplechase tests if webrtc is enabled. r=ted, f=drno (760943034) - Bug 1142494 - Fix OSX packaging mistake. r=glandium, a=bustage (03cd3ca35) - Bug 1147029 - Land luciddream in-tree, r=ted (8a4d2651b) - Bug 1147031 - Write mach command for luciddream. r=jgriffin (b913c4df4) - Bug 1171446 - Add a description to the luciddream mach target r=ochameau (c807799b6) - Bug 1176642 - Remove unused imports; r=glandium (b0e458f5d) - Bug 1151080: Rewrite NR_async_timer_set(0) to use direct dispatch. r=mt (6c3dda54d) - Bug 1152185 - Include port/generic/include also for mtransport/test and webrtc/signaling/test. r=ekr (969ce4205) - Bug 1156621 - Don't assume --without-system-nspr. r=glandium (4cf9c3e76) - Bug 1035468: A NAT simulator based on NrSocket, and integrate into ice_unittest. r=ekr (903d8f6c8) - Bug 1162026 - move WrapRunnable &co over to variadic templates; r=ekr (6224de8e9) - Bug 1163328 - Add a Tuple class to MFBT. r=froydnj (ba3276ef3) - Bug 1163328 - Add an And<...> class to TemplateLib.h which performs logical and on a variadic number of booleans known at compile time. r=froydnj (ac3afcabd) - Bug 1175621 - make WrapRunnable* more efficient by utilizing moves in wrapper functions; r=ekr (15cf9f55a)
Taskcluster + Gecko Integration
Directory structure:
-
tasks/ : All task definitions
-
tests/ : Tests for the mach target internals related to task graph generation
-
scripts : Various scripts used by taskcluster docker images and utilities these exist in tree primarily to avoid rebuilding docker images.
Task conventions
In order to properly enable task reuse there are a small number of conventions and parameters that are specialized for build tasks vs test tasks. The goal here should be to provide as much of the power as taskcluster but not at the cost of making it easy to support the current model of build/test.
All tasks are in the YAML format and are also processed via mustache to allow for greater customizations. All tasks have the following templates variables:
-
docker_image: Helper for always using the latest version of a docker image that exist in tree.{{#docker_image}}base{{/docker_image}}Will produce something like (see the docker folder):
quay.io/mozilla.com/base:0.11 -
from_now: Helper for crafting a JSON date in the future.{{#from_now}}1 year{{/from_now}}Will produce:
2014-10-19T22:45:45.655Z -
now: Current time as a json formatted date.
Build tasks
By convention build tasks are stored in tasks/builds/ the location of
each particular type of build is specified in job_flags.yml (and more
locations in the future)
Task format
To facilitate better reuse of tasks there are some expectations of the build tasks. These are required for the test tasks to interact with the builds correctly but may not effect the builds or indexing services.
# This is an example of just the special fields. Other fields that are
# required by taskcluster are omitted and documented on http://docs.taskcluster.net/
task:
payload:
# Builders usually create at least two important artifacts the build
# and the tests these can be anywhere in the task and also may have
# different path names to include things like arch and extension
artifacts:
# The build this can be anything as long as its referenced in
# locations.
'public/name_i_made_up.tar.gz': '/path/to/build'
'public/some_tests.zip': '/path/to/tests'
extra:
# Build tasks may put their artifacts anywhere but there are common
# resources that test tasks need to do their job correctly so we
# need to provide an easy way to lookup the correct aritfact path.
locations:
build: 'public/name_i_made_up.tar.gz'
tests: 'public/some_tests.zip'
Templates properties
-
repository: Target HG repository (ex: https://hg.mozilla.org/mozilla-central)
-
revision: Target HG revision for goanna
-
owner: Email address of the committer
Test Tasks
By convention test tasks are stored in tasks/tests/ the location of
each particular type of build is specified in job_flags.yml (and more
locations in the future)
Template properties
-
repository: Target HG repository (ex: https://hg.mozilla.org/mozilla-central)
-
revision: Target HG revision for goanna
-
owner: Email address of the committer
-
build_url: Location of the build
-
tests_url: Location of the tests.zip package
-
chunk: Current chunk
-
total_chunks: Total number of chunks
Developing
Running commands via mach is the best way to invoke commands testing works a little differently (I have not figured out how to invoke python-test without running install steps first)
mach python-test tests/
Examples:
Requires taskcluster-cli.
mach taskcluster-trygraph --message 'try: -b do -p all' \
--head-rev=33c0181c4a25 \
--head-repository=http://hg.mozilla.org/mozilla-central \
--owner=jlal@mozilla.com | taskcluster run-graph
Creating only a build task and submitting to taskcluster:
mach taskcluster-build \
--head-revision=33c0181c4a25 \
--head-repository=http://hg.mozilla.org/mozilla-central \
--owner=user@domain.com tasks/builds/b2g_desktop.yml | taskcluster run-task --verbose
mach taskcluster-tests --task-id=Mcnvz7wUR_SEMhmWb7cGdQ \
--owner=user@domain.com tasks/tests/b2g_mochitest.yml | taskcluster run-task --verbose