mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-08-20 14:17:07 +00:00
The e2e job overwrote the runner's sources.list with two azure-only lines and installed fuse from it, so the same mirror outage that took out the image builds failed the step outright - this time on the runner rather than inside the container, where the image-side fallback cannot reach. Install through the same helper, and widen its rewrite to match any archive host so it works whether the pristine list came from the base image (archive.ubuntu.com) or from a CI runner (azure.archive.ubuntu.com). Keeping the runner's original list also restores the security and backports pockets, which the hand-written two-line replacement dropped. Verified against the outage itself: with the pristine list pointed at Azure, the build logged the skip after Azure timed out for real and installed from archive.ubuntu.com.
26 lines
1.1 KiB
Bash
Executable File
26 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
# Install packages, falling through to the next Ubuntu mirror when one is
|
|
# unreachable. See docker/Dockerfile.e2e.
|
|
set -e
|
|
|
|
# Every rewrite starts from the pristine list, so a mirror that just failed does
|
|
# not become the pattern the next rewrite has to match.
|
|
[ -f /etc/apt/sources.list.orig ] || cp /etc/apt/sources.list /etc/apt/sources.list.orig
|
|
|
|
for mirror in azure.archive.ubuntu.com archive.ubuntu.com; do
|
|
# Any archive host, so this works whether the pristine list came from the
|
|
# base image (archive.ubuntu.com) or a CI runner (azure.archive.ubuntu.com).
|
|
sed "s|http://[a-z0-9.]*archive\.ubuntu\.com/ubuntu|http://$mirror/ubuntu|g; s|http://security\.ubuntu\.com/ubuntu|http://$mirror/ubuntu|g" \
|
|
/etc/apt/sources.list.orig > /etc/apt/sources.list
|
|
if apt-get -o Acquire::Retries=3 -o Acquire::http::Timeout=15 update && \
|
|
DEBIAN_FRONTEND=noninteractive apt-get -o Acquire::Retries=3 -o Acquire::http::Timeout=15 install -y \
|
|
--no-install-recommends --no-install-suggests "$@"; then
|
|
apt-get clean
|
|
rm -rf /var/lib/apt/lists/*
|
|
exit 0
|
|
fi
|
|
echo "apt: $mirror unreachable, trying the next mirror" >&2
|
|
done
|
|
|
|
exit 1
|