ci(lx-release): retry Debian-dependent musl toolchain steps (flaky snapshot.debian.org)

rc.22 linux-musl jobs failed on 'get-clang.sh: 503 No healthy backends' from
snapshot.debian.org (transient mirror outage). get-clang.sh retries internally
but back-to-back, so a whole outage window fails all attempts. Wrap the two
Debian-fetching steps with an external retry + growing backoff:
- Download Chromium musl toolchain: 5 attempts, 30→60→120→240s
- Regenerate Debian keyring: 4 attempts, 20→40→80s

Conservative: publish still needs all builds (a real musl breakage still blocks
the release, only transient mirror flakes are ridden out). No code change.
This commit is contained in:
Leadaxe
2026-07-02 11:03:39 +03:00
parent d5864bddd4
commit 1c5a0eb64b
+25 -2
View File
@@ -183,7 +183,17 @@ jobs:
set -xeuo pipefail
rm -f ~/cronet-go/naiveproxy/src/build/linux/sysroot_scripts/keyring.gpg
cd ~/cronet-go
GPG_TTY=/dev/null ./naiveproxy/src/build/linux/sysroot_scripts/generate_keyring.sh
# generate_keyring.sh fetches Debian archive keys from keyservers,
# which can also be flaky — retry with backoff. (lx CI)
n=0; max=4; delay=20
until GPG_TTY=/dev/null ./naiveproxy/src/build/linux/sysroot_scripts/generate_keyring.sh; do
n=$((n+1))
if [ "$n" -ge "$max" ]; then
echo "keyring regen failed after $max attempts"; exit 1
fi
echo "keyring regen attempt $n failed; retrying in ${delay}s"
sleep "$delay"; delay=$((delay*2))
done
- name: Cache Chromium toolchain
uses: actions/cache@v4
@@ -199,7 +209,20 @@ jobs:
run: |
set -xeuo pipefail
cd ~/cronet-go
go run ./cmd/build-naive --target=linux/${{ matrix.arch }} --libc=musl download-toolchain
# The toolchain download pulls sysroot .deb packages from
# snapshot.debian.org, which intermittently 503s ("No healthy
# backends"). get-clang.sh already retries internally but back-to-back,
# so a whole outage window fails all attempts. Retry the step with a
# growing backoff to ride out a transient mirror outage. (lx CI)
n=0; max=5; delay=30
until go run ./cmd/build-naive --target=linux/${{ matrix.arch }} --libc=musl download-toolchain; do
n=$((n+1))
if [ "$n" -ge "$max" ]; then
echo "toolchain download failed after $max attempts"; exit 1
fi
echo "toolchain download attempt $n failed; retrying in ${delay}s (snapshot.debian.org may be flaky)"
sleep "$delay"; delay=$((delay*2))
done
- name: Set Chromium toolchain environment
run: |