Commit Graph

5 Commits

Author SHA1 Message Date
Dustin J. Mitchell
768a5716b6 Bug 1286075: introduce job descriptions and implementations; r=gps
MozReview-Commit-ID: HNXPjt3XnXe
2016-09-12 15:53:14 +00:00
Dustin J. Mitchell
fee709d273 Bug 1286075: add more functionality to the task description; r=mshal
The task description now includes

 * flexible specification of index routes (this will get simpler once buildbot
   and gecko.v1 routes are removed)

 * "run-on-projects", indicating the projects on which this task should run

 * "{level}" is allowed in workerTypes

 * For the docker-worker/docker-engine worker implementations, "docker-image"
   can have the form {in-tree: in-tree-name} to use an in-tree image.  This was
   previously implemented in the test transforms, but it is useful for other
   tasks too!

 * Optimizations, currently limited to "only-if-files-changed", can be specified
   for each task.

 * TreeHerder groupSymbol is optional

 * expires-after and and deadline-after have default values (with the former
   differing for try and non-try)

 * coalesce-name triggers creation of both a coalesce route and a superseder URL

MozReview-Commit-ID: 70vtYs5lz5P
2016-09-12 15:51:49 +00:00
Dustin J. Mitchell
c6bd386b78 Bug 1286075: rename taskgraph.transforms.make_task; r=wcosta
Rename to taskgraph.transforms.task.

This also adds some Required and Optional declarations to the schema to be explicit,
and adjusts the transform to handle treeherder being optional.

MozReview-Commit-ID: FuKYayvlwB9
2016-08-31 15:24:54 +00:00
Dustin J. Mitchell
6c17c48ab8 Bug 1290523: support generic-worker task descriptions; r=pmoore
MozReview-Commit-ID: CHIGSrB1MIu
2016-07-29 17:50:09 +00:00
Dustin J. Mitchell
7f8ec1b437 Bug 1281004: Specify test tasks more flexibly; r=gps; r=gbrown
This introduces a completely new way of specifying test task in-tree,
completely replacing the old spider-web of YAML files.

The high-level view is this:

 - some configuration files are used to determine which test suites to run
   for each test platform, and against which build platforms

 - each test suite is then represented by a dictionary, and modified by a
   sequence of transforms, duplicating as necessary (e.g., chunks), until
   it becomes a task definition

The transforms allow sufficient generality to support just about any desired
configuration, with the advantage that common configurations are "easy" while
unusual configurations are supported but notable for their oddness (they
require a custom transform).

As of this commit, this system produces the same set of test graphs as the
existing YAML, modulo:

  - extra.treeherder.groupName -- this was not consistent in the YAML
  - extra.treeherder.build -- this is ignored by taskcluster-treeherder anyway
  - mozharness command argument order
  - boolean True values for environment variables are now the string "true"
  - metadata -- this is now much more consistent, with task name being the label

Testing of this commit demonstrates that it produces the same set of test tasks for
the following projects (those which had special cases defined in the YAML):

  - autoland
  - ash (*)
  - willow
  - mozilla-inbound
  - mozilla-central
  - try:
    -b do -p all -t all -u all
    -b d -p linux64,linux64-asan -u reftest -t none
    -b d -p linux64,linux64-asan -u reftest[x64] -t none[x64]

(*) this patch omits the linux64/debug tc-M-e10s(dt) test, which is enabled on
ash; ash will require a small changeset to re-enable this test.

IGNORE BAD COMMIT MESSAGES (because the hook flags try syntax!)

MozReview-Commit-ID: G34dg9f17Hq
2016-07-11 23:27:14 +00:00