Commit Graph

32 Commits

Author SHA1 Message Date
Aki Sasaki
c9431f881e bug 1442793 - job public_artifacts -> artifacts. r=bhearsum
MozReview-Commit-ID: F1byXqn5Yan
2018-03-07 14:07:58 -08:00
Tom Prince
aa6491479e Bug 1418671: Use a separate cache for builds that checkout comm-central; r=gps
MozReview-Commit-ID: DxmPkgvQYnp
2017-11-18 17:43:45 -07:00
Mike Hommey
cc19cad53a Bug 1409260 - Remove tc-vcs caches. r=dustin,gps 2017-10-17 15:12:18 +09:00
Tom Prince
79d01593e3 Bug 1385055 - Add taskgraph support for checking out comm-central and related branches. r=dustin
MozReview-Commit-ID: 1eU567Cuc8a
2017-07-27 12:39:08 -06:00
Wander Lairson Costa
6b7f9ef0d1 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
2017-08-28 08:44:51 -03:00
Gregory Szorc
a7ff09d251 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
2017-08-23 18:54:14 -07:00
Gregory Szorc
c122832581 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
2017-08-22 15:06:40 -07:00
Gregory Szorc
f3e600696e 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
2017-08-21 17:11:49 -07:00
Gregory Szorc
a09344b44c Bug 1391789 - Set relengapi-proxy on correct object; r=bustage
This corrects a bug introduced in 265873cf1388.

MozReview-Commit-ID: LkZlTVAM17E
2017-08-21 10:30:42 -07:00
Gregory Szorc
1db4880f89 Bug 1391789 - Stop versioning version control cache; r=dustin
We added this versioning as a mechanism to create clean breaks when
version control mechanisms change in significant ways. Now that
run-task's content influences cache names and this cache name
pattern must be used with run-task, we no longer need this
versioning and can rely on run-task's content and cache requirements
to switch to new caches.

MozReview-Commit-ID: KJ7IF7UzDsg
2017-08-18 17:05:26 -07:00
Gregory Szorc
02ead359ab Bug 1391789 - Validate certain caches are used with run-task; r=dustin
run-task just grew features to aid with cache validation.
Attempts by run-task to use caches not under its control will fail.

So, we add a transform that audits for and ensures that certain
caches are only being used with run-task. This will help catch
stragglers attempting to use e.g. the legacy VCS checkouts or
tooltool caches without run-task. Fortunately, there are no
violations for this policy. Yay!

MozReview-Commit-ID: LBCmDUdgcuM
2017-08-18 15:30:32 -07:00
Gregory Szorc
90bc333dde Bug 1391789 - Make tooltool cache level dependent; r=dustin
Caches shared across levels scare me, even if readers are purported to
perform content verification. We shouldn't take any risks with released
Firefox builds being contaminated by e.g. Try tasks.

Also, the old cache name interferes with my desire to make cache
names dynamic. This requires dynamic scopes. We already have
have level-{{level}}-* scopes for caches. So having all caches
prefixed with this makes things flexible.

MozReview-Commit-ID: LsrcxIYoEh1
2017-08-18 16:15:44 -07:00
Gregory Szorc
5be5579a6a Bug 1391789 - Consolidate tooltool modifications to shared function; r=dustin
This pattern is repeated a number of times. Let's consolidate it.

A few places set relengapi-proxy=False. AFAICT this was a no-op because
the default value in the worker schema is False. So, these assignments
were dropped.

MozReview-Commit-ID: EoNPBhaMT2J
2017-08-18 16:06:19 -07:00
Ryan VanderMeulen
6d43cb38ae Backed out changeset 314ffe5d7d40 (bug 1385055) for decision task bustage. 2017-08-20 21:59:03 -04:00
Tom Prince
655eb0161c Bug 1385055 - Add taskgraph support for checking out comm-central and related branches. r=dustin
MozReview-Commit-ID: 1eU567Cuc8a
2017-07-27 12:39:08 -06:00
Justin Wood
cd8118dbeb Bug 1381577 - Part F; Make artifact path setting more generic for windows worker. r=dustin
Land date changes to support windows nightlies onto central

MozReview-Commit-ID: BwBvzr46d20
2017-07-17 15:40:57 -04:00
Wes Kocher
87809bff97 Backed out changeset f8a62747c51c (bug 1338651) for valgrind issues a=backout 2017-06-30 14:45:26 -07:00
Wander Lairson Costa
484b2f6d33 Bug 1338651: Change docker image home dir to /build. r=dustin,mshal a=hopefullyavoidingmergebustagelater
Using /home/worker is the build directory has a 30% talos performance
loss, because test machines has a /home mount directory.

MozReview-Commit-ID: zehcGJrUQX
2017-06-29 15:45:01 -07:00
Justin Wood
f13692f0e1 Bug 1373326 - Reformat repackage tasks taskgraph to support new input style. r=dustin
(For Landing more OSX Nightly Support from date to central)

MozReview-Commit-ID: F8Dl1502D4L
2017-06-16 15:34:43 -04:00
Wes Kocher
882dffad8c Backed out 5 changesets (bug 1373326) for breaking the decision task a=backout
Backed out changeset 7f0177a71077 (bug 1373326)
Backed out changeset a678d4b0ee78 (bug 1373326)
Backed out changeset 2fdc6c2ad384 (bug 1373326)
Backed out changeset 97b785a31a3c (bug 1373326)
Backed out changeset a5fcfe57e6d4 (bug 1373326)

MozReview-Commit-ID: 9kcJzI1hFja
2017-06-20 17:43:37 -07:00
Justin Wood
46956a98b0 Bug 1373326 - Reformat repackage tasks taskgraph to support new input style. r=dustin
(For Landing more OSX Nightly Support from date to central)

MozReview-Commit-ID: F8Dl1502D4L
2017-06-16 15:34:43 -04:00
Andrew Halberstadt
3d1b8119dd Bug 1048446 - [taskcluster] Move 'require-build' out of run_task and into source_test, r=dustin
The 'platform' key was recently moved out of 'job' tasks and into the 'source-test' kind. Since
the concept of requiring a build depends on this key, let's move that back to source-test as
well.

MozReview-Commit-ID: 4bs8G4wN5OH
2017-05-29 15:34:54 -04:00
Dustin J. Mitchell
edcf391095 Bug 1340564: specify the target name explicitly for dependent tasks; r=gps
MozReview-Commit-ID: D7TeFDmXeVr
2017-04-25 22:30:09 +00:00
Carsten "Tomcat" Book
ef8528e254 Backed out changeset 516721f50c1e (bug 1340564) 2017-05-12 15:59:28 +02:00
Dustin J. Mitchell
d98c431744 Bug 1340564: specify the target name explicitly for dependent tasks; r=gps
MozReview-Commit-ID: D7TeFDmXeVr
2017-04-25 22:30:09 +00:00
Dustin J. Mitchell
4e0aee3873 Bug 1337903: add support for OS X in run-task; r=ahal
* add run.using = 'run-task' for native-engine
* modify run-task to run on OS X
  - not as root
  - without assuming /home/worker (using ~ and os.expanduser instead)
  - hg is in /usr/local/bin on OS X; trust the PATH
* add_build_dependency isn't docker-worker specific, so just rename
* support_vcs_checkout modified to omit caches on native-engine
* don't download fingerprints on OS X; these hosts are configured with
  the proper fingerprint via puppet

MozReview-Commit-ID: C83XClXtcn4
2017-03-03 22:49:23 +00:00
Andrew Halberstadt
e35ca8cc00 Bug 1336559 - Add ability to depend on build artifacts to 'run_task' based tasks, r=dustin
Currently 'run_task' tasks have no easy way to depend on a build task. For example, some
python unittests need a Firefox binary for their tests, like the mozrunner tests and future
test harness selftests (like mochitest tests).

This patch allows kinds to add a new key to the kind config which maps test platforms to
build-labels. Then 'run_task' jobs can add a 'requires-build': true field to get a build
dependency automatically added. The build artifact url will also be stored in the
$GECKO_INSTALLER_URL environment variable on the test host.

MozReview-Commit-ID: Jqyhbj7nC6z
2017-02-24 09:04:22 -05:00
Gregory Szorc
d8c36bdacc Bug 1312475 - Add a version parameter to checkouts cache; r=dustin
ff5a4bab0813 (bug 1311791) and 332a08725ed0 (bug 1292071) changed
behavior of the VCS caches. First, the store cache / path was merged
into the checkouts cache. Then the path of the Mercurial shared store
was moved within the cache to always be rooted at the cache root.

Caches are shared across tasks. Tasks can execute on any revision
configured to use a cache. So, when interacting with caches, it is
important to consider how every revision configured to use that
cache will interact with it.

Take this scenario for example.

A worker executes a task where the hg shared store is rooted at
/home/worker/checkouts/src/hg-shared. Then the worker executes a
task where the hg shared store is rooted at
/home/worker/checkouts/hg-store. `hg robustcheckout` will see the
checkout from the first task. But then it sees that the store
it is pointing to is at an unexpected location
(checkouts/src/hg-shared instead of checkouts/hg-store). `hg
robustcheckout` aggressively normalizes state to ensure
consistency. So when it sees this mismatch, it blows away the
checkout and creates one from checkouts/hg-store to replace it.
That's a lot of overhead. And this cycle can repeat itself if
the right combination of revisions run on the worker!

A solution to this problem is to create a clean break from caches
when cache semantics change. In TaskCluster, that means using a
different cache.

This commit introduces a "version" component to the checkouts
cache name. By doing so, we create a clean break from all previous
caches, ensuring all revisions this point forward won't encounter
an hg shared store at an unexpected location. This also paves the
road for easily making additional clean breaks in the future.

MozReview-Commit-ID: JT8yuULKpch
2016-10-24 09:58:01 -07:00
Gregory Szorc
ca434f80a4 Bug 1311791 - Explicitly declare path to shared hg store; r=dustin
332a08725ed0 changed the store path logic in a quick and crude manner.
The code could lead to multiple shared stores existing on a cache
if checkouts were in different parent directories.

This commit refactors the code to explicitly declare a path to the
shared hg store. This restores the behavior of ensuring there is only
a single shared store per cache.

MozReview-Commit-ID: 19Aa1QVrVQ8
2016-10-20 12:56:43 -07:00
Gregory Szorc
af5fb4af80 Bug 1292071 - Put Mercurial store on same cache as checkout; r=dustin
We were seeing issues with the Mercurial working directory not being
pristine. While I can't reproduce this, I have a hunch it is due to
mixing and matching stores and checkouts in TaskCluster. For example,
if a worker supports running concurrent tasks and 2 tasks arrive at
the same time, the caches for the store and checkout may look like:

  (store0, checkout0)
  (store1, checkout1)

However, the next task may get:

  (store1, checkout0)

This may confuse Mercurial.

This commit eliminates the "hg-shared" cache and places the shared
stores as a sibling directory of the checkout.

MozReview-Commit-ID: 8SzyS6wWf9C
2016-10-18 09:46:55 -07:00
Gregory Szorc
d85649478b Bug 1296397 - Move VCS task setup functionality to standalone function; r=dustin
Tasks that aren't using run-task may want to configure a task for
optimal VCS setup. Also, having all the code in the same place makes
it easier to keep track of.

MozReview-Commit-ID: GkB2YEUIQiX
2016-09-13 13:56:46 -07:00
Dustin J. Mitchell
5a2e6a001c Bug 1286075: add a build kind, modify tests to use it; r=jlund
MozReview-Commit-ID: DkpkkSRxVB9
2016-09-12 18:34:06 +00:00