Commit Graph

79 Commits

Author SHA1 Message Date
Hammad Akhtar
419f90c11b Bug 1322193 - Verify taskgraph implementations against documentation, with proper regex. Updated doc verification for fake values of kinds, parameters etc., regex optimized r=Callek
MozReview-Commit-ID: 56ZEJECbtK5
2016-12-06 12:03:36 +05:30
Hammad Akhtar
b7f4533590 Bug 1302800 - Verify taskgraph implementations against documentation; r=dustin
MozReview-Commit-ID: J8djr4ifvzm
2016-11-26 01:22:46 +05:30
Gregory Szorc
3423391b5b Bug 1318200 - Filter Stylo platforms when Servo isn't available; r=dustin
Stylo automation doesn't work unless Servo is present in the source
directory. This commit introduces a "check_servo" filter that prunes
tasks requiring Servo. Currently, this is implemented as a test against
platforms that are unique to Servo.

The use of relative path checking to find the topsrcdir is a bit
unfortunate. But we use this pattern elsewhere in this code.

MozReview-Commit-ID: IRtd53tudJW
2016-11-17 17:10:01 -08:00
Gregory Szorc
5d56d07832 Bug 1318200 - Introduce task graph filtering; r=dustin
Previously, we ran a single "target task" function to mutate the full
task graph into a subset based on input parameters (try syntax,
repository being built for, etc). This concept is useful. But
the implementation was limiting because we could only have a single
"target tasks" function.

This commit introduces the concept of "filters." They conceptually
do the same thing as "target tasks methods" but you can run more than
1 of them.

Filters are simply functions that examine an input graph+parameters
and emit nodes that should be retained. Filters, like target tasks
methods, are defined via decorated functions in a module.

TaskGraphGenerator has been converted to use filters. The list of
defined filters can be defined in the parameters dict passed into
TaskGraphGenerator. A default filter list is provided in decision.py.

The intent is to eventually convert target tasks to filters. Until
that happens, we always run the registered target tasks method via
a filter proxy function.

No new tests have been added because we don't yet have any
functionality relying explicitly on filters. Tests will be added in
a subsequent commit once we add a new filter.

While I was here, I also snuck in some logging on the size of the
graphs.

MozReview-Commit-ID: ERn2hIYbMRp
2016-11-17 15:53:30 -08:00
Gregory Szorc
49ecc723ac Bug 1318200 - Obtain target tasks method from parameters; r=dustin
Previously, all callers outside of tests that passed
"target_tasks_method" to TaskGraphGenerator all used the same pattern
of looking for a key in the parameters and calling a function in
the target_tasks module.

Future commits will refactor how target tasks graph work. To
make the transition easier, we move the logic for obtaining the
target tasks method into TaskGraphGenerator.

MozReview-Commit-ID: 3QU09iGhoXh
2016-11-17 16:29:51 -08:00
Kartikaya Gupta
71aa0fe72d Bug 1318099 - Disable artifact build tasks on the graphics branch. r=dustin
MozReview-Commit-ID: 2whpCUpZTtv
2016-11-16 15:40:55 -05:00
Kim Moir
471f57023a Bug 1315690 - Limit cedar TC tests to Linux64 mochitest* and xpcshell only u=aselagea r=dustin 2016-11-08 09:22:17 -05:00
Jordan Lund
9b9318450f Bug 1314795 - introduce build_date to params that defaults to pushdate, r=dustin
MozReview-Commit-ID: AviPKtw3BiY
2016-11-02 19:23:27 -07:00
Dustin J. Mitchell
1c1b8b2f3f Bug 1303556: ensure owner is always an email address; r=jonasfj
MozReview-Commit-ID: HPRQS9lYjhI
2016-10-03 22:28:02 +00:00
Iris Hsiao
a28f0ee740 merge mozilla-inbound to mozilla-central a=merge 2016-09-26 18:34:20 +08:00
Dustin J. Mitchell
66c14f0dc6 Bug 1302227: set the taskGroupId to match the decision task; r=garndt
In this case, the tasks must have the same schedulerId as the existing task,
so this is calculated using parameters['level'].

MozReview-Commit-ID: G8EE2kvFstT
2016-09-22 21:30:56 +00:00
Dustin J. Mitchell
f0e186cfc5 Bug 1286075: fix target task generation, including try; r=Callek
This uses the run_on_projects attribute introduced earlier for most branches,
adjusts the `ash` method to handle that branch as the legacy implementation
did, and updates try syntax to match builds as well as tests.

In the process, this enables optimizing target tasks, meaning that tasks
specifically requested in the try syntax might be optimized.  While this is
probably not ideal, it matches the existing behavior of try (where `-j all` is
the default but all jobs are set to run only when certain files have been
modified).  This change can be reverted later, in a more advanced version of
try.

MozReview-Commit-ID: 5FYeUTAsafr
2016-09-12 18:41:58 +00:00
Jordan Lund
0ec941f097 Bug 1277595 - Add a --triggered-by=nightly flag to taskgraph, r=dustin
MozReview-Commit-ID: 3ipPgeFTWFu
2016-09-02 10:29:07 -07:00
Kalpesh Krishna
c9a71b5cf2 Bug 1304428 - Adding a from_json test in decision task. r=jlund
MozReview-Commit-ID: 7QgfSutjoFZ
2016-09-23 19:26:39 +05:30
Jordan Lund
8dd0586fa5 backed out Bug 1277595, revs d5d26aa0f369, 42ab74605817, c1aa2a15b4eb, 32a569f4df06, dee2532bdc95, 5809a56922ed CLOSED TREE
* backed out Bug 1277595 - rev: d5d26aa0f369
* backed out Bug 1277595 - rev: 42ab74605817
* backed out Bug 1277595 - rev: c1aa2a15b4eb
* backed out Bug 1277595 - rev: 32a569f4df06
* backed out Bug 1277595 - rev: dee2532bdc95
* backed out Bug 1277595 - rev: 5809a56922ed
2016-09-01 09:56:54 -07:00
68c97e3321 Bug 1277595 - Add a --triggered-by=nightly flag to taskgraph, r=dustin
MozReview-Commit-ID: DztkFP8nCwc
2016-09-01 09:20:51 -07:00
Dustin J. Mitchell
3abcfe9038 Bug 1293733: accept pushdate from command line; r=garndt
MozReview-Commit-ID: BrGiowlMVCa
2016-07-13 18:50:50 +00:00
Gregory Szorc
b671404cef Backed out changeset fc1ed3fd8584 (bug 1291473) on suspicion of breaking decision tasks 2016-08-08 13:15:37 -07:00
Dustin J. Mitchell
f2b47e6e61 Bug 1291473: accept pushdate from command line; r=garndt
MozReview-Commit-ID: BrGiowlMVCa
2016-07-13 18:50:50 +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
Kalpesh Krishna
701956d8fb Bug 1281062 - Create Action Tasks to schedule new jobs. r=dustin
MozReview-Commit-ID: 5MvqLfGrlLC
2016-07-11 22:43:58 +05:30
Justin Wood
46e1d74044 Bug 1280956 - Use in-tree linter job to flake8 test taskcluster directory. r=dustin
MozReview-Commit-ID: FsWmAnnycZ2
2016-06-20 21:06:55 -04:00
Gregory Arndt
02dc4d8855 Bug 1280129 - Update tasks to use v2 treeherder routes r=dustin
Jobs reporting to treeherder should rely on the task route for project,
revision, and pushlog ID rather than things stuffed into task.extra.treeherder.

This also removes the need for a revision_hash that was calculated by mozilla-taskcluster.

MozReview-Commit-ID: EcQM9QRZzgG
2016-06-14 12:56:25 -05:00
Dustin J. Mitchell
6df2fabd03 Bug 1277417: output task information in JSON or just labels; r=ahal
The JSON output is suitable for processing with `jq` to extract features of
interest.

MozReview-Commit-ID: 5wpV7sXlOz3
2016-06-07 03:09:48 +00:00
Dustin J. Mitchell
2aaf17058e Bug 1274611: spell target-tasks.json with -; r=wcosta
MozReview-Commit-ID: Aij7wL3onop
2016-06-01 20:29:08 +00:00
Dustin J. Mitchell
833bb86436 Bug 1274611: Implement task-graph optimization; r=gps
* Implement & document optimization (although legacy kind doesn't do much of it)
 * Introduce `optimize_target_tasks` parameter to control whether tasks in the
   target set can be optimized (no for try, yes for most other branches)
 * Refactor to include resolved taskIds in the optimized task graph
 * Include a `label-to-taskid.json` artifact.
 * Introduce {'task-reference': '... <dependency-name> ...'} for referring to
   parent tasks' taskId.

MozReview-Commit-ID: LWvlWNz49U5
2016-06-05 19:49:41 +00:00
Dustin J. Mitchell
856120aa44 Bug 1273673: use Python logging for taskgraph generation; r=gps
MozReview-Commit-ID: EYI6hGFUWP8
2016-05-18 18:02:51 +00:00
Dustin J. Mitchell
27cf2061df Bug 1273633: support per-branch config in the decision task; r=garndt
MozReview-Commit-ID: LXQIaSzPpr4
2016-05-17 21:27:11 +00:00
Dustin J. Mitchell
2db03e8aeb Bug 1258497: Implement a new taskgraph generation system; r=gps
The `taskgraph` package generates TaskCluster task graphs based on collections
of task "kinds".  Initially, there is only one kind, the "legacy" kind, which
reads the YAML files from `testing/taskcluster/tasks` to generate the task
graph.

Try syntax is implemented by filtering the tasks in the taskgraph after it has
been created, then extending the result to include any prerequisite tasks.

A collection of `mach taskgraph` subcommands are provided for developers to
extend or debug the task-graph generation process.

MozReview-Commit-ID: 1TJCns4XxZ8
2016-05-16 22:53:22 +00:00