fix(ci): retry ARM apt prerequisites

This commit is contained in:
Kayshen-X 2026-07-15 23:22:22 +08:00
parent d978a63d63
commit 52260c3155
2 changed files with 50 additions and 4 deletions

View file

@ -88,14 +88,37 @@ jobs:
key: ${{ matrix.target }}
- name: Install Linux GL/EGL prereqs
if: runner.os == 'Linux' && matrix.cross == false
shell: bash
run: |
sudo apt-get update
sudo apt-get install -y \
set -euo pipefail
packages=(
libxkbcommon-dev libxkbcommon-x11-dev \
libwayland-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev \
libegl1-mesa-dev libgles2-mesa-dev libgbm-dev mesa-utils \
libfreetype-dev libfontconfig1-dev fonts-noto-cjk \
xvfb
)
for attempt in 1 2 3 4; do
if sudo apt-get \
-o Acquire::ForceIPv4=true \
-o Acquire::Retries=3 \
-o Acquire::http::Timeout=30 \
update && \
sudo apt-get \
-o Acquire::ForceIPv4=true \
-o Acquire::Retries=3 \
-o Acquire::http::Timeout=30 \
install --yes "${packages[@]}"; then
break
fi
if [[ "$attempt" == 4 ]]; then
echo "::error::apt prerequisites failed after $attempt attempts"
exit 1
fi
delay=$((attempt * 20))
echo "::warning::apt prerequisites attempt $attempt failed; retrying in ${delay}s"
sleep "$delay"
done
- name: Build (host)
if: matrix.cross == false && matrix.check_only != true
run: cargo build --workspace --target ${{ matrix.target }} --release

View file

@ -169,13 +169,36 @@ jobs:
key: release-${{ matrix.target }}
- name: Install Linux GL/EGL prereqs
if: runner.os == 'Linux'
shell: bash
run: |
sudo apt-get update
sudo apt-get install -y \
set -euo pipefail
packages=(
libxkbcommon-dev libxkbcommon-x11-dev \
libwayland-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev \
libegl1-mesa-dev libgles2-mesa-dev libgbm-dev \
libfreetype-dev libfontconfig1-dev
)
for attempt in 1 2 3 4; do
if sudo apt-get \
-o Acquire::ForceIPv4=true \
-o Acquire::Retries=3 \
-o Acquire::http::Timeout=30 \
update && \
sudo apt-get \
-o Acquire::ForceIPv4=true \
-o Acquire::Retries=3 \
-o Acquire::http::Timeout=30 \
install --yes "${packages[@]}"; then
break
fi
if [[ "$attempt" == 4 ]]; then
echo "::error::apt prerequisites failed after $attempt attempts"
exit 1
fi
delay=$((attempt * 20))
echo "::warning::apt prerequisites attempt $attempt failed; retrying in ${delay}s"
sleep "$delay"
done
- name: Build (host)
run: cargo build -p op-host-desktop -p op-cli --target ${{ matrix.target }} --release
- name: Package archives (unix)