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

80 Коммитов

Автор SHA1 Сообщение Дата
Andrew Halberstadt 9a419e5b3f Bug 1555032 - [taskgraph] Add ability to pass external optimize strategies via env, r=tomprince
This allows users to set TASKGRAPH_OPTIMIZE_STRATEGIES to a
python_path.find_object string. E.g:

    TASKGRAPH_OPTIMIZE_STRATEGIES="module:strategies" ./mach taskgraph optimized

This opens the door to swap in external strategies at runtime and will be
used for back testing experimental strategies.

Differential Revision: https://phabricator.services.mozilla.com/D33203

--HG--
extra : moz-landing-system : lando
2019-05-31 12:56:47 +00:00
Bastien Abadie a56878376d Bug 1527895 - Add soft-dependencies to taskgraph, r=ahal,marco,tomprince,dustin
Differential Revision: https://phabricator.services.mozilla.com/D19791

--HG--
extra : moz-landing-system : lando
2019-03-04 17:07:34 +00:00
Tom Prince 6e635b61b5 Bug 1524639: [taskgraph] Change `load_yaml` to accept any number of path components; r=dustin
Differential Revision: https://phabricator.services.mozilla.com/D18374

--HG--
extra : moz-landing-system : lando
2019-02-04 16:55:54 +00:00
Tom Prince 710d91063a No bug: [taskgraph] Use `trust-domain` to determine what index routes to verify; r=dustin
Differential Revision: https://phabricator.services.mozilla.com/D14477

--HG--
extra : moz-landing-system : lando
2018-12-13 21:01:39 +00:00
Gurzau Raul 3587f96735 Backed out changeset 6ec585347976 on request from tomprince on a CLOSED TREE 2018-12-13 23:09:18 +02:00
Tom Prince 8b492b1d57 No bug: [taskgraph] Use `trust-domain` to determine what index routes to verify; r=dustin
Differential Revision: https://phabricator.services.mozilla.com/D14477

--HG--
extra : moz-landing-system : lando
2018-12-13 19:00:23 +00:00
Tom Prince a3540aa22f Bug 1397847: Pass the taskcluster root to `load_tasks_for_kind` in `mach artifact toolchain`; r=dustin a=tomprince
Differential Revision: https://phabricator.services.mozilla.com/D13433

--HG--
extra : rebase_source : ab46822cbf7cb72de61285eb336cb80356943752
extra : amend_source : 9ec807b18a8cc7d1b5d33cb4a4c65988fee4ff00
2018-11-29 09:37:39 -07:00
Tom Prince 8c933de83a Bug 1397847: Add supported API to get tasks of a given kind from a taskgraph; r=dustin
`mach artifact toolchain` gets task definitions from taskgraph, to get the
index path to find the artifacts at. Now that these index paths depend on the
digests of fetch tasks, those kinds need to be loaded as well. This adds a
supported API to get task definitions for a given kind, which loads all the
kind dependencies.

Differential Revision: https://phabricator.services.mozilla.com/D12161

--HG--
extra : moz-landing-system : lando
2018-11-28 17:55:35 +00:00
Tom Prince d490d292f2 Bug 1507860: [taskgraph] Move most classes to use attrs; r=dustin
This moves most of the low-hanging fruit to use attrs.

Differential Revision: https://phabricator.services.mozilla.com/D1141

--HG--
extra : moz-landing-system : lando
2018-11-21 23:50:04 +00:00
Tom Prince 8d4b163999 Backed out changeset d1d4e3bf3945 (Bug 1507860) for causing decision task failures a=backout
--HG--
extra : amend_source : 8217e2126eb8a3be15bef2761001140be9c3f1d0
2018-11-20 21:30:33 -07:00
Tom Prince d1c904d968 Bug 1507860: [taskgraph] Move most clases to use attrs; r=dustin
This moves most of the low-hanging fruit to use attrs.

Differential Revision: https://phabricator.services.mozilla.com/D1141

--HG--
extra : moz-landing-system : lando
2018-11-20 21:52:24 +00:00
Tom Prince a0c6899335 No bug: [taskgraph] Log which kind had an error; r=dustin
This makes it easier to see what failed, rather than have to guess based on
ordering.

Differential Revision: https://phabricator.services.mozilla.com/D9848

--HG--
extra : moz-landing-system : lando
2018-10-25 21:02:05 +00:00
Tom Prince 6a5841d5d7 Bug 1495480: [taskgraph] Load taskgraph config before loading parameters; r=dustin
Differential Revision: https://phabricator.services.mozilla.com/D7304

--HG--
extra : moz-landing-system : lando
2018-10-01 23:37:53 +00:00
Tom Prince 55d39c3a67 Bug 1481121: [release] Add support for tasks declaring the release-relevant artifacts, for downstream tasks to inspect; r=Callek
Differential Revision: https://phabricator.services.mozilla.com/D3814

--HG--
extra : rebase_source : a62ba2732aa1ad1e5377dff60b61c78a573e84c2
extra : histedit_source : 7c180e6fd3117004a2567f606e1e68db387d3a13
2018-08-20 12:29:15 -06:00
Gregory Szorc 3f4ac974d3 Bug 1469999 - Use yaml.safe_load() in taskgraph; r=dustin
yaml.load() can evaluate arbitrary Python code via syntax such as
`!!python/object/apply:os.system`. Seriously.

Let's switch taskgraph to yaml.safe_load(), which is reasonable
about limiting magic.

Differential Revision: https://phabricator.services.mozilla.com/D1736
2018-06-25 21:34:30 +00:00
Tom Prince 9be271f7c9 Bug 1458700: [taskgraph] Move `load_graph_config` into `taskgraph.config`; r=dustin
Differential Revision: https://phabricator.services.mozilla.com/D1123

--HG--
extra : source : 38407a04fc43074648430482c6d4b0860cb9473d
extra : histedit_source : 09c671d2923789aae334e3c8df8510a1a9f07bd0
2018-05-02 19:28:43 -06:00
Tom Prince ec7000854d Bug 1418058: [taskcluster] Pass a graph_config through action task generation; r=dustin
Differential Revision: https://phabricator.services.mozilla.com/D912

--HG--
extra : rebase_source : 7773c3f795e42e470c16986bd71e044169ac0f99
2018-04-11 10:24:14 -06:00
Chris AtLee 44e2a953f3 Bug 1420449: Skip schema validation with --fast r=dustin,ahal
MozReview-Commit-ID: 6wWYrNOG677

--HG--
extra : rebase_source : 316a9941c0c77c9f6dcd665bc7ca84914ad4f415
2017-12-07 22:23:57 -05:00
Coroiu Cristina ee5a3e707d Backed out changeset 7a47accb11c5 (bug 1420449) for build bustage r=backout on a CLOSED TREE 2018-01-03 19:04:32 +02:00
Chris AtLee 326ac3186e Bug 1420449: Skip schema validation with --fast r=dustin,ahal 2018-01-03 10:27:16 -05:00
Tom Prince 2db78e3fcd Bug 1415199: Move some logic for loading taskgraph kinds from mozbuild.mach_bootstrap to taskgraph. r=dustin
This fixes the fallout from the mach command not being updated for 69c60c8fc528d8d038e22a2ae62f5ff7b1131231.

MozReview-Commit-ID: 7WZ8wW4gnCY

--HG--
extra : rebase_source : 36caffb4a8631ea478ec6f8d509a82c01016eeb5
2017-11-07 10:08:49 -07:00
Sebastian Hengst 1aa3eb5efc Backed out changeset ec6b9fda1868 (bug 1415199) for breaking gecko decision task. r=backout on a CLOSED TREE 2017-11-07 19:50:30 +02:00
Tom Prince 032b57d3ec Bug 1415199: Move some logic for loading taskgraph kinds from mozbuild.mach_bootstrap to taskgraph. r=dustin
This fixes the fallout from the mach command not being updated for 69c60c8fc528d8d038e22a2ae62f5ff7b1131231.

MozReview-Commit-ID: 7WZ8wW4gnCY

--HG--
extra : rebase_source : 887b386480b9cb69c8b7e0196851862fceec2dfe
2017-11-07 10:08:49 -07:00
Tom Prince 2d833ffd8a Bug 1410513: Move ridealong build configuration to ci/config.yml; r=dustin
MozReview-Commit-ID: 761zWtiZFtz

--HG--
extra : rebase_source : 7eb318fcb73b89fe3d8995bbb4f5661239450c87
2017-11-02 14:34:47 -06:00
Tom Prince 73e5e1e2b3 Bug 1410513: Treeherder group names from config file; r=dustin
MozReview-Commit-ID: CuEQyn03Anh

--HG--
extra : rebase_source : 2fa6e873643723a869154c33a0f466a36cdb5172
2017-11-02 11:37:20 -06:00
Andrew Halberstadt 7e8349c9a0 Bug 1408352 - [taskgraph] Implement 'always_target' attribute, r=dustin
Tasks that have the 'always_target' attribute set will be always be included
in the target_task_graph, regardless of target task filtering.

Furthermore, if they were only added because of this attribute (i.e, the
filters would have excluded the task), then the task will be a candidate for
optimization even if the 'optimize_target_tasks' parameter is False.

MozReview-Commit-ID: 9eoVJ5qpAMO

--HG--
extra : rebase_source : 9635002720d088ca9870649f3143d6293c666610
2017-10-30 09:41:51 -04:00
Andrew Halberstadt 164eee4b73 Bug 1411796 - [taskgraph] Skip parameters.rst doc verification if parameters.strict is False, r=dustin
This is needed to prevent parameter mismatch errors when using |mach try fuzzy|
from an older revision. This can happen if the parameters.yml is being
downloaded from a commit with a recently added parameter.

MozReview-Commit-ID: 4NxCM7i8B4W

--HG--
extra : rebase_source : c47de38ad295e14c80c99806ea430fa641ae2be6
2017-10-25 20:27:17 -04:00
Sebastian Hengst 0328fc03b2 Backed out changeset 6f205bfdd139 (bug 1411796) for failing e.g. taskgraph's taskcluster/taskgraph/test/test_generator.py::TestGenerator::test_full_task_graph. r=backout on a CLOSED TREE 2017-10-26 17:39:25 +02:00
Andrew Halberstadt c91c991524 Bug 1411796 - [taskgraph] Skip parameters.rst doc verification if parameters.strict is False, r=dustin
This is needed to prevent parameter mismatch errors when using |mach try fuzzy|
from an older revision. This can happen if the parameters.yml is being
downloaded from a commit with a recently added parameter.

MozReview-Commit-ID: 4NxCM7i8B4W

--HG--
extra : rebase_source : 4d2052aae33292fbd7928a79bfedba76426206b9
2017-10-25 20:27:17 -04:00
Aki Sasaki f6e2f73426 bug 1397552 - add a release promotion action. r=bstack
Add a release promotion custom action for releng's TC release promotion migration work.

This action generates a graph dependent on previously built tasks. To track these, we add the `do_not_optimize` and `existing_tasks` parameters. The `do_not_optimize` parameter specifies tasks that we want to explicitly exclude from taskgraph optimization. The `existing_tasks` parameter specifies a label-to-taskid map for tasks from previous graphs.

MozReview-Commit-ID: 1vKrNUavM4V

--HG--
extra : rebase_source : b8ba95d270aafe1464c2b3bfc318b9568500a7a1
2017-10-24 15:28:19 -07:00
Dustin J. Mitchell 0ee5e3c281 Bug 1383880: parse try config during the decision task; r=ahal
This sets the try_mode property, and parses the try message (if given), early
in the decision task and puts the results into the parameters.

The proximate need is to set optimze_target_tasks for some try modes and not
others. This also replaces the existing logic for parsing messages for certain
kinds, and makes the distinction between the different try modes a little
clearer.

MozReview-Commit-ID: AXJEGLh6pEV

--HG--
extra : rebase_source : 25e9966696d78d899783d9f38533d5ae66f9ccb9
extra : source : b53ff084c2d7968a1d9864d1343f2d9381fb652b
2017-08-21 23:14:14 +00:00
Dustin J. Mitchell e8c05596d8 Bug 1383880: allow only one optimization per task; r=ahal,glandium
It is not at *all* clear how multiple optimizations for a single task should
interact. No simple logical operation is right in all cases, and in fact in
most imaginable cases the desired behavior turns out to be independent of all
but one of the optimizations. For example, given both `seta` and
`skip-unless-files-changed` optimizations, if SETA says to skip a test, it is
low value and should be skipped regardless of what files have changed. But if
SETA says to run a test, then it has likely been skipped in previous pushes, so
it should be run regardless of what has changed in this push.

This also adds a bit more output about optimization, that may be useful for
anyone wondering why a particular job didn't run.

MozReview-Commit-ID: 3OsvRnWjai4

--HG--
extra : rebase_source : ba0aa536e8c474b36c63d1447c83ed9885f1e3e6
extra : source : a3b7bdfdb116300daa3f49e0dfc96177e1369440
2017-08-01 20:02:59 +00:00
Phil Ringnalda aad01e0dc2 Backed out 12 changesets (bug 1383880) for decision task bustage
CLOSED TREE

Backed out changeset fd3615e7e0a3 (bug 1383880)
Backed out changeset 8cceb6a82bfb (bug 1383880)
Backed out changeset 571a6c9054a5 (bug 1383880)
Backed out changeset ec2b8ba5a949 (bug 1383880)
Backed out changeset 8e5847d9acda (bug 1383880)
Backed out changeset b354fdf6e233 (bug 1383880)
Backed out changeset ebdd6ccbcfca (bug 1383880)
Backed out changeset ebcc9d20981a (bug 1383880)
Backed out changeset 97eedc84d6e8 (bug 1383880)
Backed out changeset a3116da52b4e (bug 1383880)
Backed out changeset b3eb0c939720 (bug 1383880)
Backed out changeset 7c07cb798530 (bug 1383880)

MozReview-Commit-ID: EPDuQHr7w2y
2017-09-20 19:57:39 -07:00
Dustin J. Mitchell 7e1b6b079a Bug 1383880: parse try config during the decision task; r=ahal
This sets the try_mode property, and parses the try message (if given), early
in the decision task and puts the results into the parameters.

The proximate need is to set optimze_target_tasks for some try modes and not
others. This also replaces the existing logic for parsing messages for certain
kinds, and makes the distinction between the different try modes a little
clearer.

MozReview-Commit-ID: AXJEGLh6pEV

--HG--
extra : rebase_source : 03a10610aa3337269fe76a1196bb9b1665e1ab20
extra : source : b53ff084c2d7968a1d9864d1343f2d9381fb652b
2017-08-21 23:14:14 +00:00
Dustin J. Mitchell 938bafc956 Bug 1383880: allow only one optimization per task; r=ahal,glandium
It is not at *all* clear how multiple optimizations for a single task should
interact. No simple logical operation is right in all cases, and in fact in
most imaginable cases the desired behavior turns out to be independent of all
but one of the optimizations. For example, given both `seta` and
`skip-unless-files-changed` optimizations, if SETA says to skip a test, it is
low value and should be skipped regardless of what files have changed. But if
SETA says to run a test, then it has likely been skipped in previous pushes, so
it should be run regardless of what has changed in this push.

This also adds a bit more output about optimization, that may be useful for
anyone wondering why a particular job didn't run.

MozReview-Commit-ID: 3OsvRnWjai4

--HG--
extra : rebase_source : d5bce42fc0ea24616d885eed62e5e5a42b4fce24
extra : source : a3b7bdfdb116300daa3f49e0dfc96177e1369440
2017-08-01 20:02:59 +00:00
Ryan VanderMeulen 1a86da24ad Backed out 9 changesets (bug 1383880) for decision task bustage.
Backed out changeset 53f5d47a7cb0 (bug 1383880)
Backed out changeset a0abda41172a (bug 1383880)
Backed out changeset 729a7e2091e8 (bug 1383880)
Backed out changeset a33f5a14a471 (bug 1383880)
Backed out changeset 5b10d321cfee (bug 1383880)
Backed out changeset 8056488d8aed (bug 1383880)
Backed out changeset e62c90e3c1e8 (bug 1383880)
Backed out changeset 91f116ce6c2a (bug 1383880)
Backed out changeset 045498bc36c4 (bug 1383880)
2017-09-01 15:37:08 -04:00
Dustin J. Mitchell 8929e3e341 Bug 1383880: parse try config during the decision task; r=ahal
This sets the try_mode property, and parses the try message (if given), early
in the decision task and puts the results into the parameters.

The proximate need is to set optimze_target_tasks for some try modes and not
others. This also replaces the existing logic for parsing messages for certain
kinds, and makes the distinction between the different try modes a little
clearer.

MozReview-Commit-ID: AXJEGLh6pEV

--HG--
extra : rebase_source : fdd8c3cfb9abf759a3c43c5713e62e4772c5bd06
2017-08-21 23:14:14 +00:00
Dustin J. Mitchell 7e084ff0ae Bug 1383880: allow only one optimization per task; r=ahal
It is not at *all* clear how multiple optimizations for a single task should
interact. No simple logical operation is right in all cases, and in fact in
most imaginable cases the desired behavior turns out to be independent of all
but one of the optimizations. For example, given both `seta` and
`skip-unless-files-changed` optimizations, if SETA says to skip a test, it is
low value and should be skipped regardless of what files have changed. But if
SETA says to run a test, then it has likely been skipped in previous pushes, so
it should be run regardless of what has changed in this push.

This also adds a bit more output about optimization, that may be useful for
anyone wondering why a particular job didn't run.

MozReview-Commit-ID: 3OsvRnWjai4

--HG--
extra : rebase_source : 4ac6a5cc592f4210918c73e667f3b5dd50230894
2017-08-01 20:02:59 +00:00
Mike Hommey 7d14206e34 Bug 1384433 - Generalize verifications done on task graphs. r=dustin 2017-08-29 07:53:57 +09:00
Andrew Halberstadt d042e4c525 Bug 1387135 - Add ability to apply templates to task definitions via try_task_config.json, r=dustin
This provides a mechanism to modify the behaviour of tasks from a try push. The try_task_config.json
looks something like:

{
  "tasks": ["build-linux64/opt", "test-linux64/opt-mochitest-e10s-1"],
  "templates": {
    "artifact": {"enabled": 1}
  }
}

This tells taskgraph to apply the 'artifact' template to all tasks. Templates are JSONe based
.yml files that live under taskcluster/taskgraph/templates. Taskgraph will render every template
against every task definition. The templates themselves can then use JSONe condition statements to
filter out which tasks they should or shouldn't apply to.

MozReview-Commit-ID: J8HVZzOt4mX

--HG--
extra : rebase_source : 95a78bc56d3f90ff1b34aabd84ed92aff1e3d954
2017-08-15 11:36:29 -04:00
Mike Hommey dfdf3bda57 Bug 1374940 - Allow transforms to access info about tasks from kind dependencies of the current kind. r=dustin
--HG--
extra : rebase_source : e5da20afbf84480366cdc197fd25f12237f99346
2017-07-19 07:25:26 +09: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 378a0e0712 Bug 1333255: always include docker-image tasks in the target task graph; r=jonasfj
MozReview-Commit-ID: GX18D68TAWG

--HG--
extra : rebase_source : 1883fa5198f21354dbb9904a0ed28ad062f1f413
2017-03-10 17:08:34 +00:00
Dustin J. Mitchell 449d528cf3 Bug 1333255: rename taskgraph.task to taskgraph.loader; r=jonasfj
MozReview-Commit-ID: 6aPdGbxn0D1

--HG--
rename : taskcluster/taskgraph/task/__init__.py => taskcluster/taskgraph/loader/__init__.py
rename : taskcluster/taskgraph/task/balrog.py => taskcluster/taskgraph/loader/balrog.py
rename : taskcluster/taskgraph/task/beetmover.py => taskcluster/taskgraph/loader/beetmover.py
rename : taskcluster/taskgraph/task/beetmover_checksums.py => taskcluster/taskgraph/loader/beetmover_checksums.py
rename : taskcluster/taskgraph/task/checksums_signing.py => taskcluster/taskgraph/loader/checksums_signing.py
rename : taskcluster/taskgraph/task/post_build.py => taskcluster/taskgraph/loader/post_build.py
rename : taskcluster/taskgraph/task/repacks.py => taskcluster/taskgraph/loader/repacks.py
rename : taskcluster/taskgraph/task/signing.py => taskcluster/taskgraph/loader/signing.py
rename : taskcluster/taskgraph/task/test.py => taskcluster/taskgraph/loader/test.py
rename : taskcluster/taskgraph/task/transform.py => taskcluster/taskgraph/loader/transform.py
rename : taskcluster/taskgraph/task/base.py => taskcluster/taskgraph/task.py
extra : rebase_source : 42a183bae9aedfa04876d99a59119fd08bbf7d73
2017-03-09 19:00:49 -05:00
Dustin J. Mitchell 7e3408a70e Bug 1333255: always transform tasks; r=jonasfj
MozReview-Commit-ID: 3A5wzXKG0Yp

--HG--
extra : rebase_source : 10063aa354d18b08db182b41e9ae61f2f884becd
2017-03-09 16:40:33 -05:00
Dustin J. Mitchell 4950be4e4f Bug 1333255: remove t.get_dependencies(); r=jonasfj
MozReview-Commit-ID: 1UF9yKXeRt7

--HG--
extra : rebase_source : f2fd8d2bafb36f88f490ff31e50550e7b1f423ef
2017-03-08 21:22:31 +00:00
Dustin J. Mitchell b0117f4f53 Bug 1333255: use normal old functions to load tasks; r=jonasfj
Instead of using a class's static method, use a simple function, specified by
the `loader` key.

MozReview-Commit-ID: IeOl9qiSCXf

--HG--
extra : rebase_source : 72e0a9dd8385b250a46c9f4adf8a8a0e5b01c156
2017-03-09 23:14:40 -05:00
Wander Lairson Costa 56c96fa18d Bug 1333167: Add extra try options to taskcluster. r=dustin a=jmaher
We add the following command line options to Taskcluster try syntax:

--spsProfile - enable profile mode.
--rebuild-talos <N> - retrigger talos tests N times.
--setenv <VAR>=<val> - add extra environments variables.
--tag <TAG> - run tests only the tag TAG.
--no-retry - doesn't retry failed jobs.

We have a chicken-egg problem, as we first generate the full task graph
and then parse the try message. But the graph generation step needs to
know the try message to process the aforementioned options. The
solution is to parse the message before graph generation and then
pass the command line options to the transforms. Then, each transform
can look at the option that interests it and process it accordingly.

The message parse function is configured in kind.yml, which gives some
flexibility for future implementations of alternative syntaxes.

MozReview-Commit-ID: GPFdi0FD6Vn

--HG--
extra : rebase_source : b992786158851f1099aedfce8669a163228edc51
2017-02-02 09:34:43 -02:00
Sebastian Hengst c69d28f8f8 Backed out changeset d6648b8f36ed (bug 1333167) for breaking gecko decision task. r=backout on a CLOSED TREE 2017-01-31 21:47:45 +01:00
Wander Lairson Costa aa5f7afcb9 Bug 1333167: Add extra try options to taskcluster. r=dustin a=jmaher
We add the following command line options to Taskcluster try syntax:

--spsProfile - enable profile mode.
--rebuild-talos <N> - retrigger talos tests N times.
--setenv <VAR>=<val> - add extra environments variables.
--tag <TAG> - run tests only the tag TAG.
--no-retry - doesn't retry failed jobs.

We have a chicken-egg problem, as we first generate the full task graph
and then parse the try message. But the graph generation step needs to
know the try message to process the aforementioned options. The
solution is to parse the message before graph generation and then
pass the command line options to the transforms. Then, each transform
can look at the option that interests it and process it accordingly.

The message parse function is configured in kind.yml, which gives some
flexibility for future implementations of alternative syntaxes.

MozReview-Commit-ID: DMwRjuV2vpf

--HG--
extra : rebase_source : 211ecf52694078986caf290c5b0cca35c775da61
2017-01-31 18:16:07 -02:00