Граф коммитов

29 Коммитов

Автор SHA1 Сообщение Дата
Dustin J. Mitchell 98a3631d7b Bug 1391776: cleanup of taskgraph docs; r=ahal
* eliminate heading for test kinds, of which there is now only one
* make the caches document have a single heading in the TOC
* break out mach commands into a separate document, add ./mach taskgraph morphed
* remove docs for YAML templates support (the .yml file wasn't actually
  used -- I expect it was a merge leftover); these are still used for actions.yml,
  but once that is gone the code should be removed, too.
* break try out into its own document, edit to distinguish "how to run try"
  from "how to generate config"

MozReview-Commit-ID: 76ZopWA9TPL

--HG--
extra : rebase_source : 6946d866f9df6eec591b9a05ddedc6467dd69e4b
2017-08-23 15:22:10 -04:00
Simon Fraser 3d9c373c16 Bug 1387044 Update taskgraph how-to with mention of 'gron' r=dustin DONTBUILD
MozReview-Commit-ID: I3c9p014MF8

--HG--
extra : rebase_source : 02a037ce3c200b91c8121da9a59f4f4f0ad13d1a
2017-08-03 14:30:59 +01:00
Peter Moore f1992a1f4b Bug 1349980 - Highlight the '-J' flag of mach taskgraph command in taskcluster docs,r=dustin 2017-04-06 19:10:52 +02:00
Paul Bignier ff2e59d1cd Bug 1352802 - Typo fixes around 'accessible'. r=MattN
MozReview-Commit-ID: 27CyNOMXkRq

--HG--
extra : rebase_source : 30e8891fa40cb497ab695e72b179c850a3a5c8d9
2017-04-03 09:47:00 -07:00
Justin Wood 54a5d59c87 Bug 1347889 - use 'relative-datestamp' instead of typo 'relative-timestamp' in morphs, to unbreak task submission. r=dustin
MozReview-Commit-ID: 8GCKi6r4WUD

--HG--
extra : rebase_source : 511a7d54d23133b255d364b87207244d4cff7775
2017-03-16 09:44:36 -04:00
Dustin J. Mitchell 335fa26ed0 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

--HG--
extra : rebase_source : d61e7462defd41e7112739fb057edb493f495430
extra : source : c580568ed47c1ed2af40d98b47fbb0d136e63060
2017-03-07 20:39:27 +00:00
Dustin J. Mitchell d46264d259 Bug 1333255: and then there was only one Task class; r=jonasfj
Note that the to_json method prefers the taskgraph's dependencies information
(edges) to that from the task.dependencies entries. At a few points in
task-graph generation, these values differ, although that is expected (for
example, the full task set contains no edges, but that information is still in
task.dependencies). Unifying that representation leads to some difficulty with
task transforms that reach into the dependency tree (beetmover), so the
different representations are left as-is.

MozReview-Commit-ID: GeW8HNwFA9Z

--HG--
extra : rebase_source : 549773e05e18371a399612d9bceccffc29be8cf2
2017-03-09 23:14:30 -05:00
Dustin J. Mitchell bf33dfcabd Bug 1333255: implement optimizations as named functions; r=jonasfj
MozReview-Commit-ID: 9xkHny7IYfA

--HG--
extra : rebase_source : 201cf73414aee4bab407c67cb95e08fd2b794ba5
2017-03-10 18:17:43 +00:00
Gregory Szorc 0e12f1cc60 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

--HG--
extra : rebase_source : 36b8e86aa64b2f52b03b31b5497759b0009fb921
2016-11-17 15:53:30 -08:00
Dustin J. Mitchell a4290a7d44 Bug 1307571: fix lost action-tasks docs; r=martianwars
MozReview-Commit-ID: HDs8J3EmmVB

--HG--
extra : rebase_source : a89ccac74ae45fe5d5cc12f6074d1199beb19e88
2016-10-04 19:48:31 +00:00
Dustin J. Mitchell 28eaabb6b2 Bug 1294065: describe transitive closure; r=garndt
MozReview-Commit-ID: GYPKA81gkJP

--HG--
extra : rebase_source : cdc61a431a7118e10b9fb2709f616c17db599652
2016-08-10 14:37:32 +00:00
Dustin J. Mitchell ffca84ff7d 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

--HG--
rename : taskcluster/taskgraph/kind/base.py => taskcluster/taskgraph/task/base.py
rename : taskcluster/taskgraph/kind/docker_image.py => taskcluster/taskgraph/task/docker_image.py
rename : taskcluster/taskgraph/kind/legacy.py => taskcluster/taskgraph/task/legacy.py
extra : rebase_source : 03e70902c2d3a297eb9e3ce852f8737c2550d5a6
extra : histedit_source : d4d9f4b192605af21f41d83495fc3c923759c3cb
2016-07-11 23:27:14 +00:00
Kalpesh Krishna 7eccb69c1c Bug 1281062 - Create Action Tasks to schedule new jobs. r=dustin
MozReview-Commit-ID: 5MvqLfGrlLC

--HG--
extra : rebase_source : dd954acce8ef9ed2f3b9aa7c5c2cbd916a82f1f1
2016-07-11 22:43:58 +05:30
Kalpesh Krishna e5474c6adb Bug 1285755 - Adding a from_json function to TaskGraph and each Task subclass. r=dustin
MozReview-Commit-ID: 8fmALSP8nDs

--HG--
extra : rebase_source : 52729a77206498ca32e716ae3774e21f6329f805
2016-07-11 22:39:04 +05:30
Kalpesh Krishna 3112858067 Bug 1284005 - Replacing timestamps with relative timestamps. r=dustin 2016-07-06 03:03:00 +02:00
Ryan VanderMeulen 93a1a23b6b Backed out changeset 320ee1117179 (bug 1284005) for gecko-decision task failures. 2016-07-07 00:16:45 -04:00
Kalpesh Krishna 110a36bb4b Bug 1284005 - Replace timestamps with relative timestamps. r=dustin
--HG--
extra : rebase_source : 0628ff7f93cab9e690fd9d7015783cbc6048d058
2016-07-06 03:03:00 -04:00
Carsten "Tomcat" Book 1add070144 Backed out changeset 8c9ee38712de (bug 1284005) for gecko-decision task failures 2016-07-07 05:56:00 +02:00
Kalpesh Krishna 84704cb30e Bug 1284005 - Replacing timestamps with relative timestamps.
--HG--
extra : rebase_source : 4b7e931d33208e987932d41761725e2769de42a8
2016-07-06 03:03:00 +02:00
Carsten "Tomcat" Book fb7e5c4f86 Backed out changeset cc4009e9cecc (bug 1284005) for causing merge conflicts when merging to m-c
--HG--
extra : rebase_source : 1076f58b4aa748ddc35920d1591bb99b8c1a7358
2016-07-06 11:49:59 +02:00
Kalpesh Krishna 2445bb037a Bug 1284005 - Replacing timestamps with relative timestamps. r=dustin 2016-07-05 11:50:50 -07:00
Dustin J. Mitchell 5c1233316f Bug 1229178: modify --json output to contain a single object r=mshal
MozReview-Commit-ID: DNlxPfQh3o0

--HG--
extra : rebase_source : 0f3f9e73e37efcc53df0e475b8f9cbea21b4de32
2016-06-09 11:15:23 -05:00
Dustin J. Mitchell 77ad76d2ad Bug 1280231: Load kinds in order by dependencies; r=jonasfj
This enables kinds that generate tasks based on those output by another kind.
For example, the test kind might generate a set of test tasks for each build
task.

MozReview-Commit-ID: K7ha9OmJ6gd

--HG--
extra : rebase_source : 36fc7e2d9c5987a4bb8b3779cf1a9308f5561828
extra : intermediate-source : 7898d1ab1afc08f78445165d0c94566b0682a2f7
extra : source : 0852b38cd86c42ebba0f9e74d7470a263969b784
2016-06-27 22:31:06 +00:00
Wes Kocher c9059e6a53 Backed out 3 changesets (bug 1280231) for decision task failures CLOSED TREE
Backed out changeset 4b1d94901b4d (bug 1280231)
Backed out changeset 7898d1ab1afc (bug 1280231)
Backed out changeset ba5cbf4e06a5 (bug 1280231)

--HG--
rename : taskcluster/taskgraph/taskgraph.py => taskcluster/taskgraph/types.py
2016-06-27 15:45:44 -07:00
Dustin J. Mitchell c0fe75d7d2 Bug 1280231: Load kinds in order by dependencies; r=jonasfj
This enables kinds that generate tasks based on those output by another kind.
For example, the test kind might generate a set of test tasks for each build
task.

MozReview-Commit-ID: K7ha9OmJ6gd

--HG--
extra : source : 0852b38cd86c42ebba0f9e74d7470a263969b784
extra : amend_source : f3e8c306afe29ae75bd1f93d8b76ff2b27ad8ed1
extra : histedit_source : aa1ae93aba51025a0e1bd2ecf473aaa33235e4c7%2C2c704328e983a3d75a834b069431e4f166389b02
2016-06-27 22:31:06 +00:00
Dustin J. Mitchell 710fa43288 Bug 1280691: remove old decision tasks and references to them; r=garndt
MozReview-Commit-ID: 3o1nz7sP0j1

--HG--
extra : rebase_source : 7a9c37a2b37806a7ec0bca60b78c6d6d3d236f8a
2016-06-20 18:33:05 +00:00
Dustin J. Mitchell 6ea3546a3e 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

--HG--
extra : rebase_source : 4ffb78ab7a85b32e64d10218a4a8841c22e689f8
2016-06-07 03:09:48 +00:00
Dustin J. Mitchell 722b95f979 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

--HG--
extra : rebase_source : 780e0e23d24b268ade33ecdcbccb5081f32aac48
2016-06-05 19:49:41 +00:00
Dustin J. Mitchell cea2249ca3 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

--HG--
rename : testing/taskcluster/docs/index.rst => taskcluster/docs/index.rst
extra : rebase_source : 7b9125281d66044db9bd8e4a1fade16136f384b9
extra : histedit_source : 47640d27080acda0279270babbcf33f5badb0d1c
2016-05-16 22:53:22 +00:00