- Bug 1163826 - Add remainder of top .jp sites to CSS unprefixing service whitelist. r=dholbert (8ed22f2638) - Bug 1165834: Add alicdn.com (used by taobao.com) to the CSS Unprefixing Service whitelist. r=miketaylr (30d150c28c) - Bug 1166792 - Add 3rd batch of top .jp sites to CSS unprefixing service whitelists. r=dholbert (e4073c1f09) - Bug 1170375 - Add 4th batch of top .jp sites to CSS unprefixing service whitelists. r=dholbert (d741e57cb0) - Bug 1207850 - Temporary fix for canceling the pump used by FetchBody. r=nsm (bc85cb1500) - Bug 1224865: Don't set a document in FetchDriver for requests in workers. r=bkelly (7bcb0bd16b) - Bug 1108181 - Make Headers iterable; r=bzbarsky (da8d6f8bb2) - Bug 1217501 P5 Relax guard checking on Headers with existing headers. r=ehsan (75ec3b6ae5) - Bug 1207882 - Use a separate build target for config/buildid. r=gps (ad9f536aac) - Bug 1216697 - Unship Request.cache until the implementation is finished; r=bzbarsky (49264a21d8) - Bug 1218119 - Simplify defining worker prefs; r=baku (8987aa23c3) - namespace (d88c3b7fc6) - Bug 1179489 - Don't count service workers towards an origin's max worker quota; r=nsm (ce5e1345ba) - Bug 1151646 - Cleanup, r=khuey. (d119d19ea7) - Bug 1118778 - Write upload properties from upload.py; r=glandium (f8745ffda8) - Bug 1194741 - Display upload output; r=nalexander (7adaa41d11) - Bug 1197293 - allow for TC builds that don't use 'make upload'; r=ted (e671e7c651) - Bug 1137000 - Add support for SDK building to moz-automation.mk. r=mshal (69b7ccb3c8) - Bug 1175895 - aid greppability of MOZ_AUTOMATION_*; r=ted (c9a099f168) - Bug 1198179 - Kill gen_mach_buildprops.py; r=ted (fa74e1930f) - Bug 1198179 - make upload.py write properties even if not uploading; r=ted (e7ca79b807) - Bug 8623031 - Move desktop build logic to a container neutral location; r=dustin (81dc866373) - Bug 1187139 (part 1) - Replace nsBaseHashtable::Enumerate() calls in accessible/ with iterators. r=tbsaunde. (7a75c73d17) - Bug 1187139 (part 2) - Replace nsBaseHashtable::Enumerate() calls in accessible/ with iterators. r=tbsaunde. (c631350ddb) - Bug 1187139 (part 3) - Replace nsBaseHashtable::Enumerate() calls in accessible/ with iterators. r=tbsaunde. (052cced2ca) - Bug 1225396 part 4 - Remove @@iterator workaround in Codegen.py. r=bz (3b05ddc4f0) - Bug 1048695 part 1. Pass the set of globals where a member should NOT be exposed to MemberCondition. r=peterv (d5c9040323) - Bug 1048695 part 2. Make interface members not be exposed based on their nonExposedGlobals. r=peterv (e852319bd0) - Bug 1229493 - Stop shell-only modules classes being reported as standard classes r=shu (4a6457af8d) - Bug 1151646 - Fix static analysis bustage. (347564b4d2) - Bug 1231051 - Moz2Dify nsNativeThemeCocoa::DrawWidgetBackground. r=mstange. (cbcbe17e30) - Bug 1178984 - Crashes at nsMenuBarX::RemoveMenuAtIndex. r=spohl (6e5869ae28) - leftovers of Bug 1151345 - Add debug logging to help decipher this bug. r=spohl (22d42fc66d)
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 gecko
-
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 gecko
-
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