fix(rebuild): harden split workflow setup
This change will:\n\n- retry transient uvr dependency resolution failures with bounded backoff\n- reuse the re-index checkout when purging the CDN
This commit is contained in:
parent
4b7dc28cc8
commit
e4f8250d0b
1 changed files with 16 additions and 7 deletions
|
|
@ -84,9 +84,20 @@ trap 'rm -rf "$project_dir"' EXIT
|
|||
cd "$project_dir"
|
||||
|
||||
"$uvr_bin" init --here --r-version "$r_full"
|
||||
# --no-install: resolve and lock only. The install happens in the sync below,
|
||||
# which is the only command that honours --library.
|
||||
"$uvr_bin" add --no-install "$@"
|
||||
# --no-install resolves and locks only; retry because concurrent shards can
|
||||
# expose short-lived DNS or CRAN-index failures and uvr rolls the manifest back
|
||||
# cleanly after an unsuccessful resolution.
|
||||
add_attempt=1
|
||||
while ! "$uvr_bin" add --no-install "$@"; do
|
||||
if [ "$add_attempt" -ge 4 ]; then
|
||||
echo "error: uvr add failed after ${add_attempt} attempts" >&2
|
||||
exit 1
|
||||
fi
|
||||
add_delay=$((add_attempt * 10))
|
||||
echo "warning: uvr add attempt ${add_attempt} failed; retrying in ${add_delay}s" >&2
|
||||
sleep "$add_delay"
|
||||
add_attempt=$((add_attempt + 1))
|
||||
done
|
||||
|
||||
# TEMPORARY (drop once the images ship a uvr above v0.4.5): the sync below runs
|
||||
# `apt-get install` for every resolved system dependency without refreshing the
|
||||
|
|
|
|||
Loading…
Reference in a new issue