Bazel: allow LFS rules to use cached downloads without internet #16522
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
If the cache is prefilled, LFS rules were still trying to query for LFS urls.
Now the strategy is to first try to fetch the files from the repository cache (which is possible by providing an empty url list and
allow_fail
torepository_ctx.download
), and only run the LFS protocol if that fails. Technically this is made possible by enhancinggit_lfs_probe.py
with a--hash-only
flag.This is also an optimization where no uneeded internet access is done (including the slightly slow SSH call) if the repository cache is warm.
Additionally,
-oStrictHostKeyChecking=accept-new
is now passed to the SSH call for LFS authentication. This makes a difference in the case the build is executed within a container on an already checked-out repository.