Commit Graph

47 Commits

Author SHA1 Message Date
Tom Prince
4818f03dae Bug 1458700: [release-promotion] Use a common target task for firefox and devedition; r=aki
Differential Revision: https://phabricator.services.mozilla.com/D1122
2018-05-02 18:33:52 -06:00
Tom Prince
11501da0e5 Bug 1455448: [taskcluster] Use taskgraph indexed decision tasks for finding parameters; r=me
Now that 28db2c96ac69 has been uplifted, get parameters from the new index paths.
2018-04-23 22:59:59 -06:00
Tom Prince
dec851055b Bug 1455448: Don't include firefox in the decision task index; r=dustin,mshal,rail,Callek a=release
The decision task is used for everything built as part of a push (for
mozilla-central, this is firefox, devedition and fennec, as well as tasks that
aren't strictly part of any product). Thus, having `firefox` encoded as part of
the decision task doesn't make sense.

This changes the route from
    index.gecko.v2.${repository.project}.latest.firefox.decision
to
    index.gecko.v2.${repository.project}.latest.taskgraph.decision
while leaving the latter for backwards compatability with tools that expect it.

Differential Revision: https://phabricator.services.mozilla.com/D996
2018-04-19 15:32:02 -06:00
Tom Prince
40fef19922 Bug 1442545: [partner-repack] Add parameters needed for doing partner repacks; r=Callek
Differential Revision: https://phabricator.services.mozilla.com/D977
2018-04-16 20:48:40 -06:00
Aki Sasaki
99eca8a17e bug 1431799 - rename desktop_release_type -> release_type. r=bhearsum
This used to only be relevant to Devedition and Firefox releases.
In bug 1433536 we're going to add RC Fennec releases. Let's rename
the parameter now, for less parameters churn.

MozReview-Commit-ID: 28e1Y5FG4On
2018-02-01 10:07:03 -08:00
Aki Sasaki
8da6b5789a bug 1431799 - add version input to release promotion action. r=bhearsum
also clean up and move more config to the promotion config.

MozReview-Commit-ID: FmTWNNPcEaZ
2018-01-26 13:09:35 -08:00
Johan Lorenzo
dcf41d2be7 Bug 1431397 - Pass release_eta down from action task input r=bhearsum
MozReview-Commit-ID: Ggybpiv5XQo
2018-01-18 15:10:53 +01:00
Tom Prince
761b5216ad Bug 1430823: Correctly link to source kind in task metadata; r=dustin
Differential Revision: https://phabricator.services.mozilla.com/D399
2018-01-16 00:29:30 -07:00
Tom Prince
9bbcd72367 Bug 1410255: Factor out determination of try to helper function; r=dustin
Differential Revision: https://phabricator.services.mozilla.com/D398
2018-01-16 00:15:59 -07:00
Aki Sasaki
33400c3571 bug 1423081 - add firefox + devedition relpro. r=callek
Add support for the three firefox and devedition relpro flavors (we
could probably reduce devedition to 2).

Also, instead of defining which kinds to use from the previous graph
in `previous_graph_kinds`, specify which kinds to rebuild (ignore)
from the previous graph in `rebuild_kinds`. This list will be much
smaller (currently empty).

MozReview-Commit-ID: 5rH1TW7GbAD
2017-12-05 19:09:19 -08:00
Aki Sasaki
e110348615 bug 1415391 - parameterize next_version and build_number. r=dustin
Instead of relying on environment variables, pass these in as parameters.

MozReview-Commit-ID: An58Bu2kd1g
2017-11-08 15:52:48 -08:00
Aki Sasaki
c121be27ac 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
2017-10-24 15:28:19 -07:00
Tom Prince
25e12b05a3 Bug 1385055 - Add some taskgraph parameters for dealing with comm-central and related repositories. r=dustin
MozReview-Commit-ID: 4tdxfJcx8Fz
2017-07-27 12:26:48 -06:00
Andrew Halberstadt
0bb75a6263 Bug 1401199 - [taskgraph] Use default parameter values when strict=False, r=dustin
MozReview-Commit-ID: 9XWlLeGcPeQ
2017-09-29 11:35:30 -04:00
Andrew Halberstadt
cb3e21d4f2 Bug 1404067 - [tryselect] Improve error message on parameter mismatch, r=dustin
MozReview-Commit-ID: GMiGuNApoUF
2017-09-28 15:25:34 -04:00
Dustin J. Mitchell
d08f492fb6 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
2017-08-21 23:14:14 +00:00
Phil Ringnalda
b76b48b887 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
a7457a95f7 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
2017-08-21 23:14:14 +00:00
Simon Fraser
0ab9dada04 Bug 1342392 Migrate partial update generation in-tree r=rail
MozReview-Commit-ID: G6EFXY0UzSa
2017-09-18 13:36:36 +01:00
Sebastian Hengst
f1bbda3eeb Backed out changeset 0d71c0be62de (bug 1342392) for bustage in partial update generator for docker images: recompress.sh not found. r=backout 2017-09-18 14:15:42 +02:00
Simon Fraser
d2b8ac4d0d Bug 1342392 Migrate partial update generation in-tree r=rail
MozReview-Commit-ID: 84fP48sMYhS
2017-09-15 11:04:35 +01:00
Sebastian Hengst
ca434b9d52 Backed out changeset a43387ee65d7 (bug 1342392) for failing flake8 and py-compat jobs. r=backout 2017-09-18 13:50:16 +02:00
Simon Fraser
498d6b87a7 Bug 1342392 Migrate partial update generation in-tree r=rail
MozReview-Commit-ID: 84fP48sMYhS
2017-09-15 11:04:35 +01:00
Wes Kocher
d62fefa0af Backed out 2 changesets (bug 1342392) for bustage a=backout
Backed out changeset b0e86286b173 (bug 1342392)
Backed out changeset 01bf0c29331e (bug 1342392)

MozReview-Commit-ID: 71fcOZ2RgEp
2017-09-11 17:35:09 -07:00
Simon Fraser
278648e798 Bug 1342392 Move partial update generation in-tree r=dustin,jlorenzo 2017-09-11 09:55:52 +01:00
Sebastian Hengst
27461f48cf Backed out 2 changesets (bug 1342392) for adding .orig file and flake lint failures. r=backout on a CLOSED TREE
Backed out changeset bf0bcdc7482e (bug 1342392)
Backed out changeset 7f5ae5ff1181 (bug 1342392)
2017-09-11 10:38:08 +02:00
Simon Fraser
e9d9241564 Bug 1342392 Move partial update generation in-tree r=dustin,jlorenzo 2017-09-11 09:24:10 +01:00
Sebastian Hengst
cd4005d4a7 Backed out changeset b53ff084c2d7 (bug 1383880) 2017-09-06 17:47:45 +02:00
Dustin J. Mitchell
40fa2c8f48 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
2017-08-21 23:14:14 +00:00
Ryan VanderMeulen
c41dc43ff0 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
464d6eeb31 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
2017-08-21 23:14:14 +00:00
Andrew Halberstadt
91fd656da8 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
2017-08-15 11:36:29 -04:00
Andrew Halberstadt
87d4a15ff3 Bug 1378212 - Default to grabbing 'parameters.yml' file from latest mozilla-central decision task, r=dustin
MozReview-Commit-ID: 1993ISgb1Dn
2017-07-04 16:10:05 -04:00
Dustin J. Mitchell
9035033b90 Bug 1351011: remove unused triggered_by property; r=Callek
The purpose of this parameter has been superseded by the `include_nightly`
property.

MozReview-Commit-ID: 4iXQsv9Drqg
2017-03-27 20:10:08 +00: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
Mike Hommey
59882266b7 Bug 1341214 - Add a small API to handle taskcluster queue and index requests. r=dustin
Various modules under taskcluster are doing ad-hoc url formatting or
requests to taskcluster services. While we could use the taskcluster
client python module, it's kind of overkill for the simple requests done
here. So instead of vendoring that module, create a smaller one with
a limited set of functions we need.

This changes the behavior of the get_artifact function to return a
file-like object when the file is neither a json nor a yaml, but that
branch was never used (and was actually returning an unassigned
variable, so it was broken anyways).

At the same time, make the function that does HTTP requests more
error-resistant, using urllib3's Retry with a backoff factor.

Also add a function that retrieves the list of artifacts, that while
currently unused, will be used by `mach artifact` shortly.
2017-02-17 12:04:48 +09:00
Carsten "Tomcat" Book
711501d98d Backed out changeset 5ffd6c7264ce (bug 1341214) 2017-02-22 15:33:17 +01:00
Mike Hommey
c7945d8ea1 Bug 1341214 - Add a small API to handle taskcluster queue and index requests. r=dustin
Various modules under taskcluster are doing ad-hoc url formatting or
requests to taskcluster services. While we could use the taskcluster
client python module, it's kind of overkill for the simple requests done
here. So instead of vendoring that module, create a smaller one with
a limited set of functions we need.

This changes the behavior of the get_artifact function to return a
file-like object when the file is neither a json nor a yaml, but that
branch was never used (and was actually returning an unassigned
variable, so it was broken anyways).

At the same time, make the function that does HTTP requests more
error-resistant, using urllib3's Retry with a backoff factor.

Also add a function that retrieves the list of artifacts, that while
currently unused, will be used by `mach artifact` shortly.
2017-02-17 12:04:48 +09:00
Hammad Akhtar
9d68fe27aa Bug 1302765 - Allow ./mach taskgraph .. --parameters P to take a URL. URL building mechanism fixed; r=dustin
MozReview-Commit-ID: 7reezQj9Bds
2016-11-24 01:15:33 +05:30
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
Dustin J. Mitchell
8d20917cdf Bug 1296842: check parameters; r=jmaher
MozReview-Commit-ID: 1JCpufowNHD
2016-11-07 19:13:40 +00:00
Gregory Szorc
248b1e1823 Backed out changeset 7a3a65ff5865 (bug 1295486) for test failures 2016-08-18 10:21:26 -07:00
Gregory Szorc
5fe1f3f6e3 Bug 1295486 - Decode YAML files to UTF-8 at read time; r=dustin
Before, we'd open files and feed bytes to yaml.load(). When a str
is fed to yaml.load(), it attempts to guess the encoding. It defaults
to UTF-8 unless somebody set us up the BOM. This is probably OK.
Except if the file isn't valid UTF-8, the exception will be raised
in the bowels of YAML parsing and it may not be obvious the failure
is due to invalid UTF-8 input versus say Python str/unicode
coercion foo.

We change all call sites that load YAML from a file to use
codecs.open() to open the file in UTF-8 and perform UTF-8
decoding/validation at file read time. This should make any UTF-8
failures more obvious. Furthermore, it reinforces that our YAML files
are UTF-8 and not some other encoding.

I discovered this issue as part of trying to get emoji symbols to
render on Treeherder. Unfortunately, it appears pyyaml detects
many emoji as unprintable characters and refuses to load them. This
makes me sad and makes me want to abandon pyyaml/YAML in favor of
something that supports emoji :P

MozReview-Commit-ID: AOvAruZFfnK
2016-08-18 08:58:59 -07:00
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
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
2653040718 Bug 1258497: wrap mach Commands in try/except; r=gps
MozReview-Commit-ID: FTPDTjw4gR
2016-05-16 17:44:24 +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