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

12 Коммитов

Автор SHA1 Сообщение Дата
Gregory Szorc 1deb8dd0e5 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

--HG--
extra : rebase_source : f74c0ab9cba2bf18e335f24c86dd095335961723
2016-10-20 12:56:43 -07:00
Gregory Szorc f67f676a52 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

--HG--
extra : rebase_source : 6205f3fe944a6ad2cb833a5a7c0ae5ba136eaea6
2016-10-18 09:46:55 -07:00
Kalpesh Krishna 87f3ac8197 Bug 1305989 - Update usage of create_tasks() in action tasks. r=dustin
--HG--
extra : rebase_source : c8bdd1c4972ec2363f31d371ed9e1e9368d367f0
2016-09-28 09:43:00 -04:00
Gregory Szorc ef92f5ddf5 Bug 1298947 - Tag and use decision image 0.1.6; r=dustin
Containing the Mercurial 3.9.1 version bump and the change to pin the
hg.mo fingerprint from a TC secret.

MozReview-Commit-ID: LVU7P0LqIvD

--HG--
extra : rebase_source : 8ad46e014ba9840c9972b51ea43e8ccf14492cf2
2016-09-01 15:21:02 -07:00
Gregory Szorc e1f9b3132b Bug 1298455 - Tag and use decision image 0.1.5; r=dustin
MozReview-Commit-ID: Fmc4l70onV2

--HG--
extra : rebase_source : 08a34e48faa44a25a52273a35b835c71ef178c15
2016-08-26 11:10:30 -07:00
Gregory Szorc 08d735f41f Bug 1291070 - Tag and use decision image 0.1.4; r=dustin
To pull in run-task exit code fix.

MozReview-Commit-ID: 5QvcQijTRKH

--HG--
extra : rebase_source : cac011e2835f18e620293e8c05a8f49da472d925
2016-08-01 18:09:09 -07:00
Gregory Szorc 66dab0495d Bug 1290620 - Use run-task from decision task; r=dustin
This commit does a lot. But it's really not too difficult to comprehend
once you focus on the final state, which is basically the same as the
"lint" image and derived tasks.

Before, the "decision" image contained a "checkout-gecko" script and
"run-action" and "run-decision" scripts. The latter 2 invoked the first
script.

The "run-task" script basically does what the combination of these
scripts were doing before. So we switch to it.

While we're here, we also replaced the custom Mercurial installation in
this image with the shared install-mercurial.sh script. The
system-setup.sh script for the decision image is now short and sweet.

The YAML files for tasks using this image have been updated to use
"run-task." We no longer have to pass an environment variable to hold
command arguments. So we revert to putting these arguments inline in
the task's command. Dustin never liked passing the arguments as
environment variables, so it should make him happy ;) We add
--log-no-times because "run-task" prefixes its own timestamps on output
lines.

The path to the Gecko checkout has been changed from
/home/worker/workspace to /home/worker/checkouts to match changes made
in bug 1289643.

Finally, since "checkout-gecko-and-run" is no longer used, we delete it.

The Docker image version has been bumped accordingly.

MozReview-Commit-ID: HAGuCz6668Q

--HG--
extra : rebase_source : 9586873c21d67f8ce869b7ceee221e8fa8775539
2016-07-29 21:03:48 -07:00
Gregory Szorc a91e4e11c1 Bug 1290516 - Remove {{project}} from cache path for decision and action tasks; r=dustin
Currently, the gecko-decision and action tasks maintain a separate cache
for each "project" (Firefox repo) source checkout. In my opinion, this
is not necessary.

Separate caches/source checkouts mean a lower chance for a cache hit:
a lower chance that any given worker will have a source checkout readily
available for the "project" being built. They also mean workers store
more data and files in caches.

By using a shared cache for source checkouts, workers will ideally
only have a single source checkout cache and will be pretty much
guaranteed to have a checkout readily available (the main exception
being the first task on a freshly-provisioned worker).

A downside of a shared cache is that workers may spend more time doing
`hg update` operations. e.g. if the last task was from mozilla-release
and the current task is from mozilla-central, thousands of files will
be updated. However, I believe we will still be better off because
separate caches *increase* the probability for a full checkout, which
involves writing ~150,000 files! So I believe this change will lower
the overall amount of VCS work done by workers while possibly
sacrificing the lowest possible execution time (which is achieved by
minimizing the `hg update` work).

It's worth noting that `hg robustcheckout` (which is used by these
tasks) does the equivalent of an `hg purge --all`. This ensures that all
untracked and ignored files from previous tasks are deleted. So there
should be no contamination from previous tasks.

MozReview-Commit-ID: I5Ng3xFEfou

--HG--
extra : rebase_source : db423e5005d1e26d7dfebbbfa28893fc32caef6f
2016-07-29 10:09:06 -07:00
Gregory Szorc df70fc2d86 Bug 1247168 - Make mozilla-unified the base repository for Firefox; r=dustin
https://hg.mozilla.org/mozilla-unified contains heads from all the
major Firefox repos. In addition, it is encoded on the server in such a
way that it is several hundred megabytes smaller despite containing
30,000+ more changesets. This means faster clones and faster
operations.

Cloning this repo does require a new version of Mercurial. So if any
TC tasks are using an ancient Mercurial - one that is vulnerable to
known CVE issues in fact - this will flush them out.

MozReview-Commit-ID: 2VHDa6FEeeJ

--HG--
extra : rebase_source : db4990bcde0503fd14d82a5d16c71adbb4f92be3
extra : histedit_source : 6c555bd3df12536d1c48b45d8cc76611e3f7032f
2016-07-19 16:46:25 -07:00
Gregory Szorc 6aa899bbf4 Bug 1247168 - Tag and use version 0.1.2 of the decision image; r=dustin
Changes to the decision Docker image have been compelted. We're ready to
use the new image.

We tag the image, update version references, change the task caches
so the new Mercurial pooled storage from the robustcheckout extension is
used, and convert the decision tasks to run as the "worker" user.

MozReview-Commit-ID: 61v9Ivy59zG

--HG--
extra : rebase_source : 640318a87660950c5e0680867a1bfdd68e35f127
extra : histedit_source : ec53fc576c00e5f2053167b37544ac7afccaecb5
2016-07-21 11:32:07 -07:00
Gregory Szorc 94d4854313 Bug 1247168 - Actually use workspace cache in decision task; r=dustin
The decision task configures a /home/worker/workspace cache. However,
the command we run in the container references a "workspace" relative
path. From logs in automation, it appears that PWD during execution
is "/" because "workspace" is being resolved to "/workspace." The
net result of this is we appear to be performing a VCS clone+checkout
on every single task.

This commit fixes the paths so our workspace cache is actually used.

MozReview-Commit-ID: Kj6REep5bSs

--HG--
extra : rebase_source : 8cd8be43dfd34f2970b47721c3da8e3957a8bfed
extra : histedit_source : b81dce523a88e44eb3fa8b1a68840066edca382d
2016-07-20 15:34:10 -07:00
Kalpesh Krishna 7eccb69c1c Bug 1281062 - Create Action Tasks to schedule new jobs. r=dustin
MozReview-Commit-ID: 5MvqLfGrlLC

--HG--
extra : rebase_source : dd954acce8ef9ed2f3b9aa7c5c2cbd916a82f1f1
2016-07-11 22:43:58 +05:30