ci(e2e): retry QEMU/ROM downloads to survive transient velxio.dev blips

The 5 binary downloads used a bare `curl -fSL` with no retries. The
assets are served from velxio.dev, which has brief unavailable windows
during a deploy (the app container is recreated -> a few seconds of
502). A single blip mid-download failed the whole Backend E2E job even
though nothing was wrong with the change under test.

Add a shared retry policy (--retry 5 --retry-delay 10 --retry-all-errors
--retry-connrefused --connect-timeout 15) so the step rides out a
container recreate (~50s of headroom) instead of failing hard.
This commit is contained in:
David Montero 2026-06-12 04:39:41 +02:00
parent 1d65badcae
commit cd4a6bd3a8
1 changed files with 13 additions and 5 deletions

View File

@ -50,14 +50,22 @@ jobs:
mkdir -p $QEMU_DIR
cd $QEMU_DIR
# Retry on transient blips: the binaries are served from velxio.dev,
# which has brief windows of unavailability during a deploy (the app
# container is recreated -> a few seconds of 502). Without retries a
# single blip mid-download fails the whole e2e job. --retry-all-errors
# covers 5xx (the deploy case), --retry-connrefused the cold-restart
# case; 5 x 10s buys ~50s, enough to ride out a container recreate.
RETRY="--retry 5 --retry-delay 10 --retry-all-errors --retry-connrefused --connect-timeout 15"
echo "Downloading QEMU shared libraries..."
curl -fSL -o libqemu-xtensa.so "$VELXIO_BINARY_BASE_URL/libqemu-xtensa-amd64?key=$VELXIO_LICENSE_KEY"
curl -fSL -o libqemu-riscv32.so "$VELXIO_BINARY_BASE_URL/libqemu-riscv32-amd64?key=$VELXIO_LICENSE_KEY"
curl -fSL $RETRY -o libqemu-xtensa.so "$VELXIO_BINARY_BASE_URL/libqemu-xtensa-amd64?key=$VELXIO_LICENSE_KEY"
curl -fSL $RETRY -o libqemu-riscv32.so "$VELXIO_BINARY_BASE_URL/libqemu-riscv32-amd64?key=$VELXIO_LICENSE_KEY"
echo "Downloading ROM files..."
curl -fSL -o esp32-v3-rom.bin "$VELXIO_BINARY_BASE_URL/esp32-v3-rom?key=$VELXIO_LICENSE_KEY"
curl -fSL -o esp32-v3-rom-app.bin "$VELXIO_BINARY_BASE_URL/esp32-v3-rom-app?key=$VELXIO_LICENSE_KEY"
curl -fSL -o esp32c3-rom.bin "$VELXIO_BINARY_BASE_URL/esp32c3-rom?key=$VELXIO_LICENSE_KEY"
curl -fSL $RETRY -o esp32-v3-rom.bin "$VELXIO_BINARY_BASE_URL/esp32-v3-rom?key=$VELXIO_LICENSE_KEY"
curl -fSL $RETRY -o esp32-v3-rom-app.bin "$VELXIO_BINARY_BASE_URL/esp32-v3-rom-app?key=$VELXIO_LICENSE_KEY"
curl -fSL $RETRY -o esp32c3-rom.bin "$VELXIO_BINARY_BASE_URL/esp32c3-rom?key=$VELXIO_LICENSE_KEY"
chmod +x libqemu-xtensa.so libqemu-riscv32.so
ls -lh .