Commit Graph

47 Commits

Author SHA1 Message Date
Kim Moir
f67722b50b Bug 1339542 - When Servo vcs sync service lands Servo commits in autoland repo, run linux64-stylo tests but skip other platforms (to reduce test load) r=dustin DONTBUILD 2017-04-03 15:48:09 -04:00
Wes Kocher
650b2cfe08 Merge m-c to inbound, a=merge
MozReview-Commit-ID: AzYu7EXTIlg
2017-03-14 17:23:26 -07:00
Aki Sasaki
2a0d264176 bug 1344321 - fix flake8. r=bustage a=release DONTBUILD 2017-03-14 16:39:03 -07:00
Aki Sasaki
82ede80faa bug 1344321 - enable run-on-projects for nightlies. r=dustin a=release
This patch enables `run-on-projects` to work appropriately for
nightly builds and tests.  Initially, we were setting an empty
`run-on-projects` for nightly `build_platform`s, then explicitly
targeting the platforms in nightly-specific `target_task_method`s.

Instead, this patch enables nightlies to `run-on-projects` everywhere,
but governs the use of nightlies by either the `include_nightly`
parameter, or the `--include-nightly` try option.  This lets us filter
nightly-related `target_task_method`s against `run-on-projects` without
losing all nightly tasks.

Then, enable spidermonkey tests by removing optimization from beta and
release.  This patch also enables everything then disables specific
tasks, rather than disabling everything and enabling specific tasks.
Since we're beginning with a `filter_for_project` call, we should be
able to reduce these if blocks to zero over time, if desired.

MozReview-Commit-ID: A9tolynaChF
2017-03-14 15:31:58 -07:00
Dustin J. Mitchell
cef5efbeff Bug 1333255: introduce graph morphs, use them to make index tasks; r=jonasfj
Graph morphs modify the graph after optimization, without changing its meaning.
In this case, that means adding index tasks that will insert paths into the
index beyond the relatively limited number afforded in task.routes.

MozReview-Commit-ID: AJy4exX7q2v
2017-03-07 20:39:27 +00:00
Aki Sasaki
3f38919567 bug 1344321 - add nightly test support. r=dustin a=release
this patch:

- adds linux{32,64}-nightly/opt test platforms that mirror the non-nightly test platforms.

- adds an `include_nightly` per-project parameter; this is refered to in the default `target_task_method`.  It's still possible to launch custom `target_task_method`s to trigger nightlies against, say, try.

- adds a `filter_for_project` method in `target_tasks.py` that allows for `include_nightly` and `run_on_projects` filtering in the various `target_task_method`s.

- adds nightly filtering into the `TryOptionSyntax` object.  By default, this will be off.  To trigger nightly tests on try, either submit a new decision task with a different `target_task_method` (e.g. `nightly_fennec`) or flip the `include_nightly` flag to True.

- adds the `nightly` attribute to tests if their builds have that attribute.

MozReview-Commit-ID: DttIZH0BHS2
2017-03-09 16:32:41 -08:00
Mike Hommey
32f26de395 Bug 1341214 - Define GECKO in a single location. r=dustin
Instead of every file trying to get the top source directory having an
ad-hoc definition that gets wrong if the files gets moved around for
some reason, define it in a more central location.
2017-02-17 11:56:12 +09:00
Alin Selagea
072571c24f Bug 1339179 - Set up pine for activity-stream builds & tests, r=kmoir 2017-02-24 17:19:04 +02:00
Wes Kocher
d1b8cb0d97 Merge m-c to inbound, a=merge
MozReview-Commit-ID: HDHJC8X9xWG
2017-02-22 15:06:46 -08:00
Aki Sasaki
61096c536f bug 1340609 - promotable beta linux builds on push. r=dustin a=release
MozReview-Commit-ID: JAqifpgD3vW
2017-02-22 10:24:58 -08:00
Carsten "Tomcat" Book
20a26945dc Backed out changeset d8122277e9fd (bug 1341214) for causing on m-c problems in vp tc tasks 2017-02-22 15:33:42 +01:00
Mike Hommey
eb5916da95 Bug 1341214 - Define GECKO in a single location. r=dustin
Instead of every file trying to get the top source directory having an
ad-hoc definition that gets wrong if the files gets moved around for
some reason, define it in a more central location.
2017-02-17 11:56:12 +09:00
Gregory Szorc
71072181cc Bug 1336607 - Remove dummy geckolib and taskgraph filter; r=froydnj
Now that we use the real geckolib and have all dependencies vendored,
the dummy geckolib is no longer required, so we remove it.

Also, the taskgraph code for testing for Servo's presence always
passes and is no longer needed, so we remove it.

Pushed on a CLOSED TREE because ¯\_(ツ)_/¯

MozReview-Commit-ID: ITAqArK4Bks
2017-02-03 16:23:14 -08:00
Jonas Finnemann Jensen
c8c1bd5578 Bug 1332506 - Treeherder actions defined in-tree. r=dustin
Framework for defining actions in-tree that can be displayed
and triggered from Treeherder.

MozReview-Commit-ID: 3rvwgy2i4xu
2017-01-31 15:34:05 -08:00
Brian Stack
d28e91043e Bug 1325479 - Fix repo scopes in action task r=dustin
MozReview-Commit-ID: AGfoFtjR5LI
2016-12-22 17:08:33 -05:00
Brian Stack
18ccebf6e8 Bug 1324094 - Add correct cache scopes to action tasks r=armenzg,dustin
MozReview-Commit-ID: KxtG4cHU0Mm
2016-12-16 13:06:57 -08:00
Brian Stack
5e07795db3 Bug 1289823 - Add backfilling as an action-task r=armenzg,dustin
MozReview-Commit-ID: HALwE6Q0Lch
2016-12-07 13:33:20 -10:00
Brian Stack
37e9b8f820 Bug 1289823 - Make taskcluster action-task more flexible r=armenzg,dustin
MozReview-Commit-ID: 8qoJsFeFm6I
2016-11-28 14:15:31 -08:00
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