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

1058 Коммитов

Автор SHA1 Сообщение Дата
Joel Maher 9fbe3c3b85 Bug 1390858 - run mochitest-gpu and mochitest-chrome and mochitest-clipboard on windows 10. r=ahal 2017-09-07 10:23:48 -04:00
Dustin J. Mitchell d7b6f0148a Bug 1397318: mozlint -l py2 for taskcluster/; r=ahal
MozReview-Commit-ID: 1ZUOrIfxQef

--HG--
extra : rebase_source : c398af2faa83812a70213679d5cb4ad0024d8f7d
2017-09-06 17:29:32 +00:00
J. Ryan Stinnett aa01270ba7 Bug 1396997 - Update try pretty names for stylo-disabled jobs. r=froydnj
MozReview-Commit-ID: 9N54Hot4LdF

--HG--
extra : rebase_source : 3170a42139eecd25a8a50d6e51fdebbf7496f459
2017-09-05 15:52:52 -05:00
Andrew Halberstadt d54399c111 Bug 1395717 - Use filename source-test tasks are defined in as part of their label, r=dustin
This creates a new "job-from" field that contains the relative filename the job was defined
in. The filename is relative to 'config.path'. If the task came from the 'jobs' key defined
in kind.yml, this field will be set to 'kind.yml'.

MozReview-Commit-ID: 9e1tEb6XuZT

--HG--
rename : taskcluster/ci/source-test/python-tests.yml => taskcluster/ci/source-test/python.yml
extra : rebase_source : 89010f00a96f88a4eecc8b37028f26b483b820ec
2017-08-31 16:38:08 -04:00
Dustin J. Mitchell 4c07e1df91 Bug 1396657: really, finally, use /builds for old action tasks; r=wcosta
This is basically a revert
https://hg.mozilla.org/mozilla-central/rev/6490ba9e0ec7 that should have been
included in https://hg.mozilla.org/mozilla-central/rev/081f830cf285

MozReview-Commit-ID: HtO5b6WPYnB

--HG--
extra : rebase_source : a0b046c26fe75214d21043623e5459425aed867f
2017-09-05 13:27:06 +00:00
Sebastian Hengst 4d2231acf0 merge mozilla-central to autoland. r=merge a=merge 2017-09-05 23:58:08 +02:00
Nick Fitzgerald dbf3ca4b81 Bug 1277338 - Part 10: Add the SM-tc(rust) taskcluster task; r=sfink
This adds a new SpiderMonkey taskcluster test task that builds and tests the
js/rust crate.
2017-09-05 09:26:21 -07:00
J. Ryan Stinnett fcac089386 Bug 1330412 - Clean up Stylo Treeherder symbols. r=jmaher
Clean up and standardize Treeherder symbols for Talos and AWSY tasks:

* Stylo disabled groups include `sd`
* Stylo sequential groups include `ss`

MozReview-Commit-ID: 7cl6e0XvXNO

--HG--
extra : rebase_source : a7b4e7c78af673e204d7ff7479ce5fc87614248c
2017-09-01 13:07:48 -05:00
J. Ryan Stinnett 22df5aef06 Bug 1330412 - Convert Stylo jobs to Stylo disabled. r=jmaher
Convert all jobs that were exercising Stylo enabled to Stylo disabled instead.

Stylo enabled is now handled by the default jobs.

In Perfherder, Stylo enabled jobs will be untagged and take over the existing
Gecko series.  Stylo disabled jobs will have a new `stylo-disabled` tag and
create a new series.

MozReview-Commit-ID: BMXBRg3A95j

--HG--
extra : rebase_source : 0f3a6a1f6807dbb90c00d060a3a7f220c2141c64
2017-08-31 11:18:46 -05:00
J. Ryan Stinnett 15a0f40522 Bug 1330412 - Limit reftest-stylo to linux64. r=jmaher
MozReview-Commit-ID: 4GIr1fIoils

--HG--
extra : rebase_source : dcbd763b617eb0dba3901317333a46ca19eb6c26
2017-08-31 11:57:27 -05:00
Aki Sasaki 3c26537de4 bug 1394130 - point osx l10n at the repackage task to avoid re-signing widevine. r=callek
The signing pool is a limited resource. We already have logic to avoid re-signing
widevine if the .sig files are there, and we're taking advantage of that on linux
and windows. OSX was the lone desktop os still pointing at the unsigned bits for
l10n.

We're pointing at repackage instead of signing because the l10n logic expects a dmg.

MozReview-Commit-ID: FtWa4o5s7aJ

--HG--
extra : rebase_source : f704a97293a231d26a4806543f53fc7e83eb9ca9
2017-08-30 09:50:07 -07: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 cb543f8ecc Bug 1383880: add only-if-dependencies-run optimization for follow-ons; r=ahal
MozReview-Commit-ID: JuhwyQIx3Mh

--HG--
extra : rebase_source : ea02aed4d2f716315c3e51553c3a0d19d40d7679
2017-08-25 21:18:13 +00:00
Dustin J. Mitchell 545d06f9f9 Bug 1383880: Annotate builds and tests with SCHEDULES-related optimizations; r=ahal
This means that a push to try affecting only Android will only run android builds
and tests, for example.

MozReview-Commit-ID: HVUvIg0EUZn

--HG--
extra : rebase_source : 5007d3723cd863e4e98fdbdd874e5ba70b44ba0c
2017-08-25 19:15:12 +00:00
Dustin J. Mitchell 671dda0818 Bug 1383880: add support for optimizing tasks based on SCHEDULES; r=ahal
This adds some new optimization strategies.  For tests, we use Either(SETA,
SkipUnlessSchedules), thereby giving both mechanisms a chance to skip tasks. On
try, SETA is omitted.

MozReview-Commit-ID: GL4tlwyeBa6

--HG--
extra : rebase_source : 0c1ce762afc7a691788379d4f4206df106f6df63
2017-08-23 16:21:06 +00: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 7b7bcad347 Bug 1383880: optimize in three phases; r=ahal
In preparation for much more thorough optimization of task-graphs, this
makes a few changes:

 * optimization is split into thre phases, with task removal in one phase
   (following dependency links) and task replacement in the next (in the
   reverse order).
 * optimization uses class instances instead of functions for optimizations;
   this allows different functions for different phases, and also leaves open
   the possibility of composing optimizations.
 * the replacement phase can also support removal; this is when utility tasks
   like symbol uploads can be optimized away iff their parent task is
   optimized.

MozReview-Commit-ID: C5QznNpwqXn

--HG--
extra : rebase_source : f8e65ee3ebb9fb584b00ee0db518b790a9c1b233
2017-08-20 20:00:17 +00:00
Dustin J. Mitchell 553b0d0e71 Bug 1383880: add Graph.visit_preorder; r=ahal
MozReview-Commit-ID: BWGqLUuWlN9

--HG--
extra : rebase_source : 84321e62d789faa7972ac92486e9831684f7d50d
2017-08-20 16:29:12 +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
Dustin J. Mitchell 16488779cd Bug 1394883: use /builds/worker in decision images; r=wcosta
MozReview-Commit-ID: 29cnSAr3zCW

--HG--
extra : rebase_source : dab573ee114729822c5ad9bd2674062f7ee24502
2017-08-30 15:55:35 +00:00
Dustin J. Mitchell 2e7ca17010 Bug 1394883: use /builds/worker in image building; r=gps
This includes adding TASKCLUSTER_VOLUMES to docker image builds directly.  The
env variable is not added as part of the task transform because `run-task` is
not in payload.command.  In fact, build-image.sh calls run-task after doing
some other housekeeping.

Ideally image builds would be turned into jobs and all of this would occur
automatically, but that turns out to be quite a bit too complex for this
incidental fix -- perhaps best solved in another bug.

MozReview-Commit-ID: FYHvafJras7

--HG--
extra : rebase_source : 4e3b9ae9900727e7932c13ced34b3f8596d755d9
2017-08-30 16:30:13 +00:00
Phil Ringnalda 2c559035f7 Backed out 4 changesets (bug 1394883) for Windows signing chain-of-trust failures
CLOSED TREE

Backed out changeset e3f42eca51c1 (bug 1394883)
Backed out changeset 081f830cf285 (bug 1394883)
Backed out changeset 9426705a05af (bug 1394883)
Backed out changeset 3a579a5054ef (bug 1394883)

MozReview-Commit-ID: 2viO8A8arHd
2017-08-31 20:02:34 -07:00
Wes Kocher cf93b6ca0d Merge m-c to autoland, a=merge
MozReview-Commit-ID: BlE0HFQUP9c
2017-08-31 16:56:58 -07:00
Sebastian Hengst 444f7c3600 merge mozilla-central to mozilla-inbound. r=merge a=merge 2017-08-31 14:39:13 +02:00
Johan Lorenzo fb7ce1747e Bug 1384482 - Comply to Treeherder's nomenclature r=mtabara
MozReview-Commit-ID: 8bh8gI577sr
2017-08-31 11:17:54 +02:00
Dustin J. Mitchell a77e898223 Bug 1394952: it's /builds/worker, not /home/builds; r=wcosta
MozReview-Commit-ID: C6CuekloQIN

--HG--
extra : rebase_source : 975dcfa2c47deb4152322a7e5867036aaac587ec
2017-08-29 21:34:54 +00:00
Wes Kocher 80bdfcfdd0 Backed out 4 changesets (bug 1394026) for busted decision tasks a=backout
Backed out changeset 951cfc00293a (bug 1394026)
Backed out changeset 0ad4c9bbfc1f (bug 1394026)
Backed out changeset eb47ff423f2e (bug 1394026)
Backed out changeset 58c64dc1a7d1 (bug 1394026)

MozReview-Commit-ID: 7PHWSW9WxVD
2017-08-29 12:54:59 -07:00
Brian Stack 9ebdf74bf9 Bug 1394026 - Make an interactive loaner action task for linux. r=dustin
MozReview-Commit-ID: 3Jbbo7VvuDl

--HG--
extra : rebase_source : fca4569a7dd7508d227b152e921eaab902e35cce
2017-08-28 13:53:56 -07:00
Brian Stack f97fcdfd4b Bug 1394026 - Enable yaml-based simple actions. r=dustin
MozReview-Commit-ID: 3RC2MaxcsQp

--HG--
extra : rebase_source : 7db5ccc7b9eba43dd2ac8d30775ab02965a7605c
2017-08-28 13:53:30 -07:00
Brian Stack 119bd583db Bug 1394026 - Tag tasks with os and worker implementation. r=dustin
MozReview-Commit-ID: GWNiq6a3hlZ

--HG--
extra : rebase_source : 2dbae1591ec5190f9e058bf786e755fdb5f00da6
2017-08-25 15:30:34 -07:00
Dustin J. Mitchell 0e3aba2f71 Bug 1394779: decision image still uses /home; r=wcosta
MozReview-Commit-ID: 77d7Mze0CRJ

--HG--
extra : rebase_source : 3903121d194d577303ca41702afa67a4b41220b3
2017-08-29 12:55:11 +00:00
Dustin J. Mitchell 8ff9eec55c Bug 1390968: python-3 compatibility for taskcluster/**/*.py; r=Alex_Gaynor,gps
MozReview-Commit-ID: Hyfn2PlXvhd

--HG--
extra : rebase_source : 504337cd3742c36f37c059ef2b8cd04067f58277
2017-08-28 21:53:04 +00:00
Johan Lorenzo a716c447c0 Bug 1384482 - Rename android-api-15 into android-api-16 r=mtabara
MozReview-Commit-ID: 4j66pTZEJzq

--HG--
rename : mobile/android/config/mozconfigs/android-api-15-frontend/nightly => mobile/android/config/mozconfigs/android-api-16-frontend/nightly
rename : mobile/android/config/mozconfigs/android-api-15-gradle-dependencies/nightly => mobile/android/config/mozconfigs/android-api-16-gradle-dependencies/nightly
rename : mobile/android/config/mozconfigs/android-api-15-gradle/nightly => mobile/android/config/mozconfigs/android-api-16-gradle/nightly
rename : mobile/android/config/mozconfigs/android-api-15-gradle/nightly-artifact => mobile/android/config/mozconfigs/android-api-16-gradle/nightly-artifact
rename : mobile/android/config/mozconfigs/android-api-15/debug => mobile/android/config/mozconfigs/android-api-16/debug
rename : mobile/android/config/mozconfigs/android-api-15/debug-artifact => mobile/android/config/mozconfigs/android-api-16/debug-artifact
rename : mobile/android/config/mozconfigs/android-api-15/l10n-nightly => mobile/android/config/mozconfigs/android-api-16/l10n-nightly
rename : mobile/android/config/mozconfigs/android-api-15/nightly => mobile/android/config/mozconfigs/android-api-16/nightly
rename : mobile/android/config/mozconfigs/android-api-15/nightly-artifact => mobile/android/config/mozconfigs/android-api-16/nightly-artifact
rename : mobile/android/config/mozconfigs/android-api-15/nightly-old-id => mobile/android/config/mozconfigs/android-api-16/nightly-old-id
rename : testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15.py => testing/mozharness/configs/builds/releng_sub_android_configs/64_api_16.py
rename : testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_artifact.py => testing/mozharness/configs/builds/releng_sub_android_configs/64_api_16_artifact.py
rename : testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_debug.py => testing/mozharness/configs/builds/releng_sub_android_configs/64_api_16_debug.py
rename : testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_debug_artifact.py => testing/mozharness/configs/builds/releng_sub_android_configs/64_api_16_debug_artifact.py
rename : testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_gradle.py => testing/mozharness/configs/builds/releng_sub_android_configs/64_api_16_gradle.py
rename : testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_gradle_artifact.py => testing/mozharness/configs/builds/releng_sub_android_configs/64_api_16_gradle_artifact.py
rename : testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_gradle_dependencies.py => testing/mozharness/configs/builds/releng_sub_android_configs/64_api_16_gradle_dependencies.py
rename : testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_old_id.py => testing/mozharness/configs/builds/releng_sub_android_configs/64_api_16_old_id.py
rename : testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_partner_sample1.py => testing/mozharness/configs/builds/releng_sub_android_configs/64_api_16_partner_sample1.py
rename : testing/mozharness/configs/single_locale/ash_android-api-15.py => testing/mozharness/configs/single_locale/ash_android-api-16.py
rename : testing/mozharness/configs/single_locale/date_android-api-15.py => testing/mozharness/configs/single_locale/date_android-api-16.py
rename : testing/mozharness/configs/single_locale/jamun_android-api-15.py => testing/mozharness/configs/single_locale/jamun_android-api-16.py
rename : testing/mozharness/configs/single_locale/mozilla-aurora_android-api-15.py => testing/mozharness/configs/single_locale/mozilla-aurora_android-api-16.py
rename : testing/mozharness/configs/single_locale/mozilla-beta_android-api-15.py => testing/mozharness/configs/single_locale/mozilla-beta_android-api-16.py
rename : testing/mozharness/configs/single_locale/mozilla-central_android-api-15.py => testing/mozharness/configs/single_locale/mozilla-central_android-api-16.py
rename : testing/mozharness/configs/single_locale/mozilla-release_android-api-15.py => testing/mozharness/configs/single_locale/mozilla-release_android-api-16.py
rename : testing/mozharness/configs/single_locale/staging_release_mozilla-beta_android_api_15.py => testing/mozharness/configs/single_locale/staging_release_mozilla-beta_android_api_16.py
rename : testing/mozharness/configs/single_locale/staging_release_mozilla-release_android_api_15.py => testing/mozharness/configs/single_locale/staging_release_mozilla-release_android_api_16.py
rename : testing/mozharness/configs/single_locale/tc_android-api-15.py => testing/mozharness/configs/single_locale/tc_android-api-16.py
rename : testing/mozharness/configs/single_locale/try_android-api-15.py => testing/mozharness/configs/single_locale/try_android-api-16.py
extra : rebase_source : d24bd3b0298e4fc21e9e8029e5f69a65fd1012f9
2017-08-09 16:18:15 +02:00
Mike Hommey be2befe9f2 Bug 1384433 - Add a verification that tiers are consistent across dependencies. r=dustin 2017-08-29 07:53:59 +09:00
Mike Hommey 7d14206e34 Bug 1384433 - Generalize verifications done on task graphs. r=dustin 2017-08-29 07:53:57 +09:00
Andrew Halberstadt c451dcfe84 Bug 1391075 - Add template to modify task env from |mach try fuzzy|, r=dustin
This adds a new morph template for modifying a task's env and the corresponding glue
to specify it from |mach try fuzzy|. It can be used like:

./mach try fuzzy --env FOO=1 --env BAR=baz

This will simply set those environment variables in *all* tasks. We could add the
ability to only specify it for a subset of tasks in the future, but that seems like
a hard problem that probably isn't worth it.

MozReview-Commit-ID: C4sokv886PU

--HG--
extra : rebase_source : 64c9105848e6becd33fae63aeabc3423cfda3bdf
2017-08-25 15:24:22 -04:00
Wander Lairson Costa 6332ed5b0a Bug 1338651 part 1: Change docker image home dir to /build. r=dustin,mshal
Using /home/worker is the build directory has a 30% talos performance
loss, because test machines has a /home mount directory.

MozReview-Commit-ID: 554IPMRWgzK

--HG--
extra : rebase_source : 00827d3f6bd705419bc801eb05b543af1ddc274f
2017-08-28 08:44:51 -03:00
Maja Frydrychowicz fbfedce632 Bug 1393865 - Add try aliases for web-platform-tests-wdspec; r=dustin
This fixes the issue where "-u web-platform-tests-wdspec" scheduled
nothing. Now it will schedule a e10s-enabled run of wdspec tests.

MozReview-Commit-ID: AdHZqtk1hLy

--HG--
extra : rebase_source : 8d5926277b37952616c4dffdb20133868913bab2
2017-08-25 15:52:07 -04:00
Gregory Szorc 22bae15639 Bug 1390700 - Support sparse checkouts in run-task; r=dustin
`run-task` is taught a --sparse-profile argument to be passed down
to `hg robustcheckout` for the main source checkout. It does what
you expect: performs a sparse checkout using the named profile.

The Taskgraph YAML for run-task is taught a "sparse-profile"
property to define the sparse profile. When defined, --sparse-profile
will be passed down to `run-task` and the cache name will be updated
to reflect the use of sparse checkout.

Our cache checking transform is updated to audit for the use of
--sparse-profile without the corresponding "-sparse" cache name
variation.

The reason we need a distinct cache name for sparse is because
clients that aren't sparse aware will be unable to read checkouts
that are sparse. By forcing sparse and non-sparse into different
cache pools, we avoid compatibility issues.

In the ideal world, we probably support sparse profiles on all the
VCS checkouts that `run-task` supports (e.g. --tools-checkout).
Perfect is the enemy of done. All of this is defined in-tree and
it is easy enough to change atomically.

MozReview-Commit-ID: 79k7Vul0hHO

--HG--
extra : rebase_source : babe9b42e2796c2341bffc6ecfe829f4daff9e0f
2017-08-23 18:54:14 -07:00
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
Mike Hommey e5f075d9b4 Bug 1391744 - Make tooltool manifests influence the index path for toolchain jobs. r=dustin
--HG--
extra : rebase_source : 6fc636fbd8cd8d55d0912cb8a429415a43707c53
2017-08-23 14:53:56 +09:00
Gregory Szorc 5fb99cdfc3 Bug 1391476 - Add UID and GID to cache parameters; r=dustin
The UID and GID that a task executes under is dynamic. As a result,
caches need to be aware of the UID and GID that owns files otherwise
subsequent tasks could run into permission denied errors. This is
why `run-task --chown-recursive` exists. By recursively changing
ownership of persisted files, we ensure the current task is able
to read and write all existing files.

When you take a step back, you realize that chowning of cached
files is an expensive workaround. Yes, this results in cache hits.
But the cost is you potentially have to perform hundreds of thousands
of I/O system calls to mass chown. The ideal situation is that
UID/GID is consistent across tasks on any given cache and
potentially expensive permissions setting can be avoided. So, that's
what this commit does.

We add the task's UID and GID to run-task's requirements. When we
first see a cache, we record a UID and GID with it and chown the
empty cache directory to that UID and GID. Subsequent tasks using
this cache *must* use the same UID and GID or else run-task will
fail.

Since run-task now guarantees that all cache consumers use the same
UID and GID, we can avoid a potentially expensive recursive chown.

But there is an exception. In untrusted environments (namely Try),
we recursively chown existing caches if there is a uid/gid mismatch.
We do this because Try is a sandbox and any random task could
experiment with a non-standard uid/gid. That populated cache would
"poison" the cache for the next caller. Or vice-versa. It would be
annoying if caches were randomly poisoned due to Try pushes that
didn't realize there was a UID/GID mismatch. We could outlaw "bad"
UID and GIDs. But that makes the barrier to testing things on Try
harder. So, we go with the flow and recursively chown caches in
this scenario.

This change will shine light on all tasks using inconsistent UID
and GID values on the same cache. Bustage is anticipated.
Unfortunately, we can't easily know what will break. So it will be
one of those things where we will have to fix problems as they arise.
Fortunately, because caches are now tied to the content of run-task,
we only need to back out this change and tasks should revert to caches
without UID and GID pinning requirements and everything will work
again.

MozReview-Commit-ID: 2ka4rOnnXIp

--HG--
extra : rebase_source : ccb2b0a9230694f989775b26d5276fd3ac928af3
extra : source : 083d2e1cc8fe44b04e44f74bda3dd8bc75ba826c
2017-08-22 16:49:26 -07:00
Gregory Szorc 4e063535e6 Bug 1391476 - Automatically set cache/volume permissions in run-task; r=dustin
run-task's --chown and --chown-recursive are only used on volumes and
caches - the only locations that aren't controlled by the Docker image
itself and thus whose permissions could be "undefined."

Previous commits have taught run-task about the locations of all caches
and volumes. Therefore, we no longer need to manually define paths to
chown. Instead, we can chown as a side-effect of the path being a
cache or a volume.

So, this commit changes run-task to chown caches and volumes
automatically. Since we no longer have a use for --chown and
--chown-recursive, those arguments are removed.

There /could/ be some paths that are caches or volumes but aren't
getting defined as such in Taskgraph. I consider this a bug in
Taskgraph and the recourse is to properly define a path as a cache or
a volume there.

MozReview-Commit-ID: 1yqrhjil6gy

--HG--
extra : rebase_source : 82c9ccb33f09d3ce50a6b7c6021e1e5b77d1b738
2017-08-23 12:07:18 -07:00
Gregory Szorc 8711c29066 Bug 1391476 - Tell run-task about volumes so it can sanitize them; r=dustin
We recently introduced support for telling run-task about caches so
it could sanitize them automatically. We also recently taught
docker-worker and docker-engine how to declare volumes.

Building on that work, we now pass a list of paths corresponding
to Docker volumes to run-task.

run-task now verifies volumes behave as expected. Unless the volume
paths correspond to caches, run-task verifies they are empty and chowns
them to an appropriate owner.

Requiring empty volumes is an arbitrary decision. But as the inline
comment says, it keeps things simpler and makes caches and volumes
behave more like each other.

MozReview-Commit-ID: 5lm2uIitrS3

--HG--
extra : rebase_source : abb0be1a36f24d8d818515885dd2a75d13aed48a
2017-08-23 10:47:37 -07:00
Gregory Szorc 4e98543647 Bug 1391476 - Require that all cache paths be declared as volumes; r=dustin
See the inline comment for the rationale here.

This check may not catch all volumes and caches. But after subsequent
commits refactor how permissions for caches and volumes are handled,
this edge case will likely result in permissions errors in the task,
so it isn't worth worrying about.

Several Dockerfile have been updated to add missing VOLUME so the check
passes.

In the case of desktop1604-test, we stopped removing
/home/worker/.cache because you can't remove a mount point, which is
what volumes are inside Docker containers.

MozReview-Commit-ID: GEyNkkX00kN

--HG--
extra : rebase_source : 19b3165d8c6e4431aa43dca51828be255e82e34f
2017-08-23 08:57:59 -07:00
Gregory Szorc d0e06fff99 Bug 1391476 - Capture Docker volumes in docker-worker config; r=dustin
Docker volumes are host-mounted filesystems. We typically mount
caches at their location. But not always. The reason we define
VOLUME in Dockerfiles is we're guaranteed to get a fast host
filesystem instead of AUFS when a cache isn't mounted.

In this commit, we teach the docker-worker payload builder about
the existence of Docker volumes. Docker volumes can be declared
inline in the YAML. More conveniently, we automatically parse out
VOLUME lines from corresponding in-tree Dockerfile.

We'll do useful things with this data in subsequent commits.

MozReview-Commit-ID: BNxp8EDEYw

--HG--
extra : rebase_source : 1aa6dbb000386cd2789d526708ce369640d532c9
2017-08-23 08:53:56 -07:00
Gregory Szorc 29d31d4990 Bug 1391476 - Track whether caches should be used in untrusted environments; r=dustin
Previously, we conditionally added caches to a task if the current
parameters warranted it.

In order to audit that all caches fulfill basic requirements, we need
to have unconditional knowledge of all caches.

This commit introduces an optional key on each cache entry stating
whether it should be skipped in "untrusted" environments. When we
convert a task definition to a worker payload, we filter out these
caches if necessary.

This change uncovered an inconsistency with filtering caches. In
one location we filtered on the source repo name. In others, we
filtered on the SCM level.

Setting the caches in the spidermonkey kind also changed slightly
to ensure we're not overwriting existing caches. I don't think this
has any behavior changes. But the new method is more correct.

MozReview-Commit-ID: 1crpdWHqQ68

--HG--
extra : rebase_source : 69469014dcc92d4de98d5e887b10542af00e05be
2017-08-22 15:06:40 -07:00
Gregory Szorc ffc20b23b1 Bug 1391476 - Don't use ~ in paths; r=dustin
~ in paths is mostly a shell-ism. Let's not use it.

The real reason for this is it interfes with upcoming commits that
audit cache and volume paths.

MozReview-Commit-ID: AhjMwg5gexx

--HG--
extra : rebase_source : dd997a5d9c1123beecaa14bc5458a9338b3e07db
2017-08-21 17:11:49 -07:00
Gregory Szorc 148577452a Bug 1391476 - Inline list append; r=dustin
Static analysis in my editor was complaining about the old pattern.
Why not fix it while I'm here.

MozReview-Commit-ID: HtrGenolNXb

--HG--
extra : rebase_source : e3ffc4f7961dfd90767b6d1af2b93ad7551de3be
2017-08-21 10:55:10 -07:00
Aki Sasaki 8d6f733276 bug 1392803 - fix bm-r. r=aki
MozReview-Commit-ID: 87Zdbh7o3lH

--HG--
extra : rebase_source : 9dcab195a8ce5cf1ec39b7333f32aa4cfac8b3b0
2017-08-23 14:57:10 -07:00