Commit Graph

316 Commits

Author SHA1 Message Date
Aki Sasaki
41503c7313 bug 1432364 - remove scriptworker requirement for docker images. r=nthomas 2018-06-28 12:38:27 -07:00
shindli
b797ab88fc Merge inbound to mozilla-central. a=merge 2018-06-29 00:53:32 +03:00
Nick Thomas
89580a2129 Bug 1471767 - taskcluster documentation fixes, r=dustin
Assorted fixes from trawling the sphinx logs - malformed formatting, broken references, leftovers from renaming action-task to action-callback and removing
yaml-templates, docstring fixes to make sphinx happier, and typos.

MozReview-Commit-ID: 6jUOljdLoE2
2018-06-27 21:48:10 +12:00
Mihai Tabara
16a22fbd2c Bug 1466627 - tweak mark-as-shipped to new structure. r=rail a=release
MozReview-Commit-ID: 6iFYXX8EbJz
2018-06-01 17:41:22 -07:00
Cosmin Sabou
bb987de702 Merge mozilla-inbound to mozilla-central. a=merge 2018-06-28 13:04:23 +03:00
Nick Thomas
878f4092d9 Bug 1355482 - documentation for partner repacks, r=aki
MozReview-Commit-ID: 5uRWpw2WJyE
2018-06-16 17:09:45 -07:00
Nick Thomas
76e74f3de9 Bug 1355482 - documentation cleanups for release promotion, r=aki
Various fixes for the docs to make docs better and sphinx happier
* remove unused targets which were duplicated in  balrog, partials
* fix up malformed targets and links
* convert docstrings to comments so sphinx ignores example response in utils/partials.py
* section underlines should match titles

MozReview-Commit-ID: GSYqsocBC4I
2018-06-27 17:42:08 +12:00
Simon Fraser
b69d5b7163 Bug 1469803 Separate bouncer-check for cron tests r=mtabara
We shouldn't run this on central, as it falls back to the dev configs, and fails.
It should be fine on beta/release/esr60. I had to move this version of the check to its own
kind to avoid the dependency tree bringing in the entire build process. Perhaps we can
refactor later to avoid duplication

Differential Revision: https://phabricator.services.mozilla.com/D1765
2018-06-27 07:34:19 +00:00
Dave Hunt
e4d5298a92 Bug 1388016 - Add support for specifying the Python version to use in TaskCluster; r=ahal
MozReview-Commit-ID: Mo6KWrzPU3
2018-06-21 06:07:01 +01:00
Coroiu Cristina
08d86896a8 Merge inbound to mozilla-central a=merge 2018-06-22 12:55:04 +03:00
Justin Wood
497b4f4ff8 Bug 1301782 - Perform buildN tagging at promote phase. r=aki
for Tag RC releases

Differential Revision: https://phabricator.services.mozilla.com/D1758
2018-06-21 14:01:02 -04:00
Dustin J. Mitchell
22c815af6e Bug 1468627 - add docs pointing to ci-admin and ci-configuration; r=tomprince
This is just enough to make these repos discoverable and suggest their usage.
Anything more would duplicate documentation in those repositories.

MozReview-Commit-ID: 1WNEsoQBB9U
2018-06-21 17:27:48 +00:00
Nick Thomas
a4ab83a171 Bug 1422471 - EME-free Firefox builds should be included in the checksums files (eg SHA256SUMS), r=aki
Chains a release-eme-free-repack-beetmover-checksums kind after release-eme-free-repack-beetmover, to move
the target.checksums generated by the latter into the beetmover-checksums/ in candidates directory. Those
are then consumed by release-generate-checksum kind.

A lot of details like scopes, worker & provisioner, attributes, as well as data like repack_id and
partner_path, are inherited directly from the parent beetmover task. Mainly to avoid recalculating them.

In contrast to nightly builds, GPG signing of target.checksums has not been implemented. I don't believe
that adds any value in our current system because the sigs are not verified.

MozReview-Commit-ID: 38iz3J2PAXh
2018-06-08 22:37:43 +12:00
Gregory Szorc
3697053827 Bug 1460777 - Taskgraph tasks for retrieving remote content; r=dustin, glandium
Currently, many tasks fetch content from the Internets. A problem with
that is fetching from the Internets is unreliable: servers may have
outages or be slow; content may disappear or change out from under us.

The unreliability of 3rd party services poses a risk to Firefox CI.
If services aren't available, we could potentially not run some CI tasks.
In the worst case, we might not be able to release Firefox. That would
be bad. In fact, as I write this, gmplib.org has been unavailable for
~24 hours and Firefox CI is unable to retrieve the GMP source code.
As a result, building GCC toolchains is failing.

A solution to this is to make tasks more hermetic by depending on
fewer network services (which by definition aren't reliable over time
and therefore introduce instability).

This commit attempts to mitigate some external service dependencies
by introducing the *fetch* task kind.

The primary goal of the *fetch* kind is to obtain remote content and
re-expose it as a task artifact. By making external content available
as a cached task artifact, we allow dependent tasks to consume this
content without touching the service originally providing that
content, thus eliminating a run-time dependency and making tasks more
hermetic and reproducible over time.

We introduce a single "fetch-url" "using" flavor to define tasks that
fetch single URLs and then re-expose that URL as an artifact. Powering
this is a new, minimal "fetch" Docker image that contains a
"fetch-content" Python script that does the work for us.

We have added tasks to fetch source archives used to build the GCC
toolchains.

Fetching remote content and re-exposing it as an artifact is not
very useful by itself: the value is in having tasks use those
artifacts.

We introduce a taskgraph transform that allows tasks to define an
array of "fetches." Each entry corresponds to the name of a "fetch"
task kind. When present, the corresponding "fetch" task is added as a
dependency. And the task ID and artifact path from that "fetch" task
is added to the MOZ_FETCHES environment variable of the task depending
on it. Our "fetch-content" script has a "task-artifacts"
sub-command that tasks can execute to perform retrieval of all
artifacts listed in MOZ_FETCHES.

To prove all of this works, the code for fetching dependencies when
building GCC toolchains has been updated to use `fetch-content`. The
now-unused legacy code has been deleted.

This commit improves the reliability and efficiency of GCC toolchain
tasks. Dependencies now all come from task artifacts and should always
be available in the common case. In addition, `fetch-content` downloads
and extracts files concurrently. This makes it faster than the serial
application which we were previously using.

There are some things I don't like about this commit.

First, a new Docker image and Python script for downloading URLs feels
a bit heavyweight. The Docker image is definitely overkill as things
stand. I can eventually justify it because I want to implement support
for fetching and repackaging VCS repositories and for caching Debian
packages. These will require more packages than what I'm comfortable
installing on the base Debian image, therefore justifying a dedicated
image.

The `fetch-content static-url` sub-command could definitely be
implemented as a shell script. But Python is readily available and
is more pleasant to maintain than shell, so I wrote it in Python.

`fetch-content task-artifacts` is more advanced and writing it in
Python is more justified, IMO. FWIW, the script is Python 3 only,
which conveniently gives us access to `concurrent.futures`, which
facilitates concurrent download.

`fetch-content` also duplicates functionality found elsewhere.
generic-worker's task payload supports a "mounts" feature which
facilitates downloading remote content, including from a task
artifact. However, this feature doesn't exist on docker-worker.
So we have to implement downloading inside the task rather than
at the worker level. I concede that if all workers had generic-worker's
"mounts" feature and supported concurrent download, `fetch-content`
wouldn't need to exist.

`fetch-content` also duplicates functionality of
`mach artifact toolchain`. I probably could have used
`mach artifact toolchain` instead of writing
`fetch-content task-artifacts`. However, I didn't want to introduce
the requirement of a VCS checkout. `mach artifact toolchain` has its
origins in providing a feature to the build system. And "fetching
artifacts from tasks" is a more generic feature than that. I think
it should be implemented as a generic feature and not something that is
"toolchain" specific.

I think the best place for a generic "fetch content" feature is in
the worker, where content can be defined in the task payload. But as
explained above, that feature isn't universally available. The next
best place is probably run-task. run-task already performs generic,
very-early task preparation steps, such as performing a VCS checkout.
I would like to fold `fetch-content` into run-task and make it all
driven by environment variables. But run-task is currently Python 2
and achieving concurrency would involve a bit of programming (or
adding package dependencies). I may very well port run-task to Python
3 and then fold fetch-content into it. Or maybe we leave
`fetch-content` as a standalone script.

MozReview-Commit-ID: AGuTcwNcNJR
2018-06-06 14:37:49 -07:00
Gurzau Raul
e787324b17 Backed out 2 changesets (bug 1460777) for Toolchains failure on a CLOSED TREE
Backed out changeset 52ef9348401d (bug 1460777)
Backed out changeset 60ed097650b8 (bug 1460777)
2018-06-06 20:57:29 +03:00
Gregory Szorc
c9ef9aa239 Bug 1460777 - Taskgraph tasks for retrieving remote content; r=dustin,glandium
Currently, many tasks fetch content from the Internets. A problem with
that is fetching from the Internets is unreliable: servers may have
outages or be slow; content may disappear or change out from under us.

The unreliability of 3rd party services poses a risk to Firefox CI.
If services aren't available, we could potentially not run some CI tasks.
In the worst case, we might not be able to release Firefox. That would
be bad. In fact, as I write this, gmplib.org has been unavailable for
~24 hours and Firefox CI is unable to retrieve the GMP source code.
As a result, building GCC toolchains is failing.

A solution to this is to make tasks more hermetic by depending on
fewer network services (which by definition aren't reliable over time
and therefore introduce instability).

This commit attempts to mitigate some external service dependencies
by introducing the *fetch* task kind.

The primary goal of the *fetch* kind is to obtain remote content and
re-expose it as a task artifact. By making external content available
as a cached task artifact, we allow dependent tasks to consume this
content without touching the service originally providing that
content, thus eliminating a run-time dependency and making tasks more
hermetic and reproducible over time.

We introduce a single "fetch-url" "using" flavor to define tasks that
fetch single URLs and then re-expose that URL as an artifact. Powering
this is a new, minimal "fetch" Docker image that contains a
"fetch-content" Python script that does the work for us.

We have added tasks to fetch source archives used to build the GCC
toolchains.

Fetching remote content and re-exposing it as an artifact is not
very useful by itself: the value is in having tasks use those
artifacts.

We introduce a taskgraph transform that allows tasks to define an
array of "fetches." Each entry corresponds to the name of a "fetch"
task kind. When present, the corresponding "fetch" task is added as a
dependency. And the task ID and artifact path from that "fetch" task
is added to the MOZ_FETCHES environment variable of the task depending
on it. Our "fetch-content" script has a "task-artifacts"
sub-command that tasks can execute to perform retrieval of all
artifacts listed in MOZ_FETCHES.

To prove all of this works, the code for fetching dependencies when
building GCC toolchains has been updated to use `fetch-content`. The
now-unused legacy code has been deleted.

This commit improves the reliability and efficiency of GCC toolchain
tasks. Dependencies now all come from task artifacts and should always
be available in the common case. In addition, `fetch-content` downloads
and extracts files concurrently. This makes it faster than the serial
application which we were previously using.

There are some things I don't like about this commit.

First, a new Docker image and Python script for downloading URLs feels
a bit heavyweight. The Docker image is definitely overkill as things
stand. I can eventually justify it because I want to implement support
for fetching and repackaging VCS repositories and for caching Debian
packages. These will require more packages than what I'm comfortable
installing on the base Debian image, therefore justifying a dedicated
image.

The `fetch-content static-url` sub-command could definitely be
implemented as a shell script. But Python is readily available and
is more pleasant to maintain than shell, so I wrote it in Python.

`fetch-content task-artifacts` is more advanced and writing it in
Python is more justified, IMO. FWIW, the script is Python 3 only,
which conveniently gives us access to `concurrent.futures`, which
facilitates concurrent download.

`fetch-content` also duplicates functionality found elsewhere.
generic-worker's task payload supports a "mounts" feature which
facilitates downloading remote content, including from a task
artifact. However, this feature doesn't exist on docker-worker.
So we have to implement downloading inside the task rather than
at the worker level. I concede that if all workers had generic-worker's
"mounts" feature and supported concurrent download, `fetch-content`
wouldn't need to exist.

`fetch-content` also duplicates functionality of
`mach artifact toolchain`. I probably could have used
`mach artifact toolchain` instead of writing
`fetch-content task-artifacts`. However, I didn't want to introduce
the requirement of a VCS checkout. `mach artifact toolchain` has its
origins in providing a feature to the build system. And "fetching
artifacts from tasks" is a more generic feature than that. I think
it should be implemented as a generic feature and not something that is
"toolchain" specific.

I think the best place for a generic "fetch content" feature is in
the worker, where content can be defined in the task payload. But as
explained above, that feature isn't universally available. The next
best place is probably run-task. run-task already performs generic,
very-early task preparation steps, such as performing a VCS checkout.
I would like to fold `fetch-content` into run-task and make it all
driven by environment variables. But run-task is currently Python 2
and achieving concurrency would involve a bit of programming (or
adding package dependencies). I may very well port run-task to Python
3 and then fold fetch-content into it. Or maybe we leave
`fetch-content` as a standalone script.

MozReview-Commit-ID: AGuTcwNcNJR
2018-06-06 09:37:38 -07:00
Johan Lorenzo
cda84e6fd0 Bug 1355482 - Add pushapk documentation r=bhearsum
MozReview-Commit-ID: JtT8TyROLaw
2018-05-24 18:59:22 +02:00
Justin Wood
4f3fcf3b77 Bug 1286092 - Stub installer attribute. r=aki
for L10n jobs should run per-push based on the corresponding builds

Differential Revision: https://phabricator.services.mozilla.com/D1406
2018-05-22 18:22:37 -04:00
Bogdan Tara
1e1736aa53 Backed out 16 changesets (bug 1286092) for L10n bustages CLOSED TREE
Backed out changeset ef828badfd93 (bug 1286092)
Backed out changeset 57a592e33f36 (bug 1286092)
Backed out changeset c9cf945aa4f9 (bug 1286092)
Backed out changeset d8c01d976acd (bug 1286092)
Backed out changeset 5d68dfd6325c (bug 1286092)
Backed out changeset 878e174255ff (bug 1286092)
Backed out changeset fa3e38422d49 (bug 1286092)
Backed out changeset fc6aebca89e3 (bug 1286092)
Backed out changeset f2271cd6af26 (bug 1286092)
Backed out changeset 7b828445f551 (bug 1286092)
Backed out changeset 5617053b1740 (bug 1286092)
Backed out changeset 556f54c5e209 (bug 1286092)
Backed out changeset db19ea492b02 (bug 1286092)
Backed out changeset 6eb40b38f9c9 (bug 1286092)
Backed out changeset 3eb4e39b9bcd (bug 1286092)
Backed out changeset b3c05f6e6a57 (bug 1286092)
2018-05-30 16:16:24 +03:00
Justin Wood
e2dbdf1e90 Bug 1286092 - Stub installer attribute. r=aki
for L10n jobs should run per-push based on the corresponding builds

Differential Revision: https://phabricator.services.mozilla.com/D1406
2018-05-22 18:22:37 -04:00
Aki Sasaki
794d4cea0d bug 1355482 - add in-tree signing docs. r=catlee 2018-05-15 19:01:17 -07:00
Dustin J. Mitchell
b17138b7da Bug 1415868 - add 'mach taskgraph actions'; r=jonasfj,tomprince
MozReview-Commit-ID: ExVRgcD02GK
2018-04-23 21:14:14 +00:00
Sylvestre Ledru
ac45976b91 Bug 1462405 - Fix a typo r=callek 2018-05-20 13:08:35 +02:00
Sylvestre Ledru
9f1f7dc105 Bug 1462405 - Fix some new typos found by codespell v1.13 r=sylvestre
MozReview-Commit-ID: Fz126NcT5Ur
2018-05-19 20:17:43 +02:00
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
30ff257010 Bug 1458700: [release-promotion] Move configuration of flavors into the graph configuration; r=aki,dustin
Differential Revision: https://phabricator.services.mozilla.com/D1121
2018-04-23 00:17:30 -06:00
Tom Prince
21cbd2073d 487c3 Bug 1456234: [release] Use -release platforms for bouncer tasks; r=aki
Differential Revision: https://phabricator.services.mozilla.com/D1288
2018-05-15 13:09:12 -06:00
Tom Prince
e8d00a40b3 Bug 1456234: [release] Rename beetmover-cdns to release-beetmover-push-to-release; r=aki
Differential Revision: https://phabricator.services.mozilla.com/D1138
2018-05-04 09:37:46 -06:00
Andi-Bogdan Postelnicu
ee08e5e2a3 Bug 1432410 - Add tests in tree to make sure we don't regress with clang-tidy on static-analisys. Tests wrote in part by :sylvestre. r=gps
MozReview-Commit-ID: IWxzKfWNIHG
2018-05-03 20:06:16 +03:00
Rob Wood
3ba1d0ccb1 Bug 1455872 - Add taskcluster configs for raptor on OSX; r=jmaher
MozReview-Commit-ID: I67InZTEziy
2018-04-24 10:30:42 -04:00
Mihai Tabara
d99476156b Bug 1446815 - cleanup in naming beetmover source checksums for consistency. r=tomprince 2018-05-03 19:51:20 +03:00
Dave Hunt
6678d9f458 Bug 1455570 - Build and publish TPS add-on; r=dustin,ted
MozReview-Commit-ID: HOsTcmg1m7e
2018-04-23 14:32:05 +01:00
Chris AtLee
280a2c7b21 Bug 1450029: Remove buildbot/buildbot-bridge references from taskcluster r=aki,tomprince
MozReview-Commit-ID: Hu9ju4XVQpA
2018-05-01 16:07:19 -04:00
Mihai Tabara
74459bc8eb Bug 1446815 - add source shas in release checksums. r=aki a=release 2018-04-30 19:05:35 +03:00
Tom Prince
399b6874fa Bug 1442545: [partner-repack] Sign repacked partner builds; r=Callek CLOSED TREE
Differential Revision: https://phabricator.services.mozilla.com/D983
2018-04-18 12:17:09 -06:00
Tom Prince
8d8d2888e9 Bug 1442545: [partner-repack] Beetmove the partner repacks; r=Callek
Differential Revision: https://phabricator.services.mozilla.com/D992
2018-04-18 12:19:14 -06:00
Tom Prince
2c01c6c1fb Bug 1442545: [partner-repack] Repackage signed partner builds; r=Callek
Differential Revision: https://phabricator.services.mozilla.com/D982
2018-04-18 12:06:17 -06:00
Tom Prince
e9c5494e2d Bug 1442545: [partner-repack] Sign partner builds; r=Callek
Differential Revision: https://phabricator.services.mozilla.com/D981
2018-04-18 12:02:24 -06:00
Tom Prince
6e6f16e6f2 Bug 1442545: [partner-repack] Add repack partner builds; r=Callek
Differential Revision: https://phabricator.services.mozilla.com/D980
2018-04-18 11:02: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
Simon Fraser
dd882ee3f3 Bug 1355482 Fix partials documentation code block r=bhearsum
Summary: A space was needed to make the code block show up

Reviewers: bhearsum

Reviewed By: bhearsum

Bug #: 1355482

Differential Revision: https://phabricator.services.mozilla.com/D957
2018-04-18 15:01:36 +01:00
Brindusan Cristian
92c33e66e9 Merge mozilla-central to inbound. a=merge CLOSED TREE 2018-04-17 13:10:25 +03:00
Simon Fraser
e8d88e9469 Bug 1454343 Update taskcluster cron documentation r=dustin
Reviewers: dustin

Reviewed By: dustin

Bug #: 1454343

Differential Revision: https://phabricator.services.mozilla.com/D950
2018-04-17 07:42:23 +01:00
shindli
35293e36cf Merge mozilla-central to autoland. a=merge CLOSED TREE 2018-04-17 01:45:58 +03:00
Ben Hearsum
b860615981 bug 1355482: document taskcluster releng implementation and release promotion - add missing file. r=aki 2018-04-16 11:25:24 -04:00
Tom Prince
e398b7c2d9 Bug 1418058: [taskcluster] Update actions to take and use graph configuration; r=dustin
Differential Revision: https://phabricator.services.mozilla.com/D916
2018-04-09 21:30:36 -06:00
Tom Prince
e5bb2514f3 Bug 1418058: [taskcluster] Pass a graph_config through action task generation; r=dustin
Differential Revision: https://phabricator.services.mozilla.com/D912
2018-04-11 10:24:14 -06:00
Simon Fraser
44a3ea6242 Bug 1453616 Disable buildbot periodic file updates r=Callek
Summary:
Disable just the buildbot version of the periodic file updates in the file_update action.
Removing the code will happen later.

Reviewers: Callek

Reviewed By: Callek

Bug #: 1453616

Differential Revision: https://phabricator.services.mozilla.com/D921
2018-04-13 15:20:11 +01:00
Justin Wood
e28c820802 Bug 1441353. Fix beta decision bustage. r=aki a=bustage on a CLOSED TREE 2018-04-12 13:11:04 -04:00
Johan Lorenzo
ed1688ffcd Bug 1441353 - part 2: Add beetmover job to publish signed langpacks r=Callek
MozReview-Commit-ID: HXjcclf3OeX
2018-04-06 16:04:27 +02:00