New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 666247 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner: ----
Closed: Jan 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: ----

Blocked on:
issue 667290



Sign in to add a comment

recipe_engine: use git cache

Project Member Reported by no...@chromium.org, Nov 17 2016

Issue description

GitBackend [1] is used to fetch recipe packages when running a remote recipe or fetching deps.

Teach it to use shared git cache. Add a flag to recipes.py for the path to the a git cache directory. If specified, use it.

We can set the flag in kitchen so LUCI builds do not fetch recipe packages over and over again. In addition, recipe engine will effectively pre-warm cache for the recipe itself which will likely want to checkout the same repo.

[1]: https://github.com/luci/recipes-py/blob/ae33ef8b45421475037af149dc9dadd8bcf03920/recipe_engine/fetch.py#L88
 

Comment 1 by no...@chromium.org, Nov 17 2016

i guess the main challenge is here is the chicken-and-egg problem: git_cache is in depot_tools typically fetched by recipe engine

Comment 2 by no...@chromium.org, Nov 17 2016

we could deploy a pinned version of depot_tools via CIPD just for the purpose to deliver git_cache.py. That would be an entry in swarmbucket config https://chrome-internal.googlesource.com/infradata/config/+/master/configs/cr-buildbucket/swarming_task_template.json#7

then add -git-cache-path flag to kitchen and recipe engine. We won't have to update the CIPD-deployed depot_tools because it is highly unlikely that we will make backward incompatible changes to git cache format/structure.

This solution is not great, but simpler than extracting git_cache.py out of depot_tools. Not sure it actually makes sense because we fetch archives from GS inside git_cache.py

Comment 3 by mar...@chromium.org, Jan 17 2017

Blockedon: 667290

Comment 4 by mar...@chromium.org, Jan 17 2017

Cc: mar...@chromium.org
Technically speaking, with named caches, it can be a relative directory and "it'll just work".

Comment 5 by no...@chromium.org, Feb 22 2017

(bulk edit) setting P2 because this bug has luci label and not _required_ for the current milestone

Comment 6 by no...@chromium.org, Feb 22 2017

Labels: Pri-2
the current thinking here is to build transparent caching into the new git executable wrapper (https://chromium.googlesource.com/infra/infra/+/master/go/src/infra/tools/git) and then remove git_cache.py entirely.

Comment 8 by estaab@chromium.org, Jun 21 2017

Status: Available (was: Untriaged)

Comment 9 by no...@chromium.org, Jan 9 2018

Status: WontFix (was: Available)
bug 800447 is the preferred solution to this problem

Sign in to add a comment