Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 61 additions & 5 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,24 @@ jobs:

- name: Install dependencies
run: |
sudo apt-get update -q=2
set +e # Disable errexit
# Configure apt to tolerate mirror sync failures
sudo tee /etc/apt/apt.conf.d/99-ci-reliability > /dev/null << 'EOF'
APT::Update::Error-Mode "any";
Acquire::IndexTargets::deb::DEP-11::DefaultEnabled "false";
Acquire::IndexTargets::deb::DEP-11-icons::DefaultEnabled "false";
Acquire::IndexTargets::deb::DEP-11-icons-hidpi::DefaultEnabled "false";
Acquire::Retries "3";
Acquire::Check-Valid-Until "false";
EOF
# Update with error tolerance
sudo apt-get update -q=2 2>&1
UPDATE_EXIT=$?
if [ $UPDATE_EXIT -ne 0 ]; then
echo "WARNING: apt update exited with code $UPDATE_EXIT, continuing..."
fi
sudo apt-get install -q=2 curl libsdl2-dev libsdl2-mixer-dev device-tree-compiler expect bc p7zip-full
set -e # Re-enable errexit
shell: bash

- name: Install RISC-V Toolchain
Expand Down Expand Up @@ -301,17 +317,41 @@ jobs:
githubToken: ${{ github.token }}
# No 'sudo' is available
install: |
apt update -qq
apt install -yqq make git curl wget clang libsdl2-dev libsdl2-mixer-dev lsb-release software-properties-common gnupg bc
set +e # Disable errexit for entire install block
# Configure apt to tolerate mirror sync failures
cat > /etc/apt/apt.conf.d/99-ci-reliability << 'APTCONF'
APT::Update::Error-Mode "any";
Acquire::IndexTargets::deb::DEP-11::DefaultEnabled "false";
Acquire::IndexTargets::deb::DEP-11-icons::DefaultEnabled "false";
Acquire::IndexTargets::deb::DEP-11-icons-hidpi::DefaultEnabled "false";
Acquire::Retries "3";
Acquire::Check-Valid-Until "false";
APTCONF
# Update with error tolerance - may fail during mirror sync
apt update -qq 2>&1
UPDATE_EXIT=$?
if [ $UPDATE_EXIT -ne 0 ]; then
echo "WARNING: apt update exited with code $UPDATE_EXIT (mirror sync likely in progress)"
echo "Continuing with installation using cached/partial indexes..."
fi
# Install packages - will use whatever indexes are available
apt install -yqq make git curl wget clang libsdl2-dev libsdl2-mixer-dev lsb-release software-properties-common gnupg bc || {
echo "WARNING: Some packages may have failed to install, retrying critical ones..."
apt install -yqq --no-download make git curl wget clang || true
}
which wget || echo "WARNING: wget not found after installation"
set -e # Re-enable errexit
exit 0 # Force success exit code
# FIXME: gcc build fails on Aarch64/Linux hosts
env: |
CC: clang-18
# Append custom commands here
run: |
# Verify and install wget if needed (workaround for install step issues)
if ! command -v wget > /dev/null 2>&1; then
apt update -qq && apt install -yqq wget
# Config file should already exist from install step, but apt may still fail
apt update -qq 2>&1 || true
apt install -yqq wget || { echo "wget install failed, trying without update..."; apt install -yqq wget --no-download || true; }
fi
git config --global --add safe.directory ${{ github.workspace }}
git config --global --add safe.directory ${{ github.workspace }}/src/softfloat
Expand Down Expand Up @@ -570,12 +610,28 @@ jobs:
# LLVM static analysis
- name: set up scan-build
run: |
sudo apt-get update -q=2
set +e # Disable errexit
# Configure apt to tolerate mirror sync failures
sudo tee /etc/apt/apt.conf.d/99-ci-reliability > /dev/null << 'EOF'
APT::Update::Error-Mode "any";
Acquire::IndexTargets::deb::DEP-11::DefaultEnabled "false";
Acquire::IndexTargets::deb::DEP-11-icons::DefaultEnabled "false";
Acquire::IndexTargets::deb::DEP-11-icons-hidpi::DefaultEnabled "false";
Acquire::Retries "3";
Acquire::Check-Valid-Until "false";
EOF
# Update with error tolerance
sudo apt-get update -q=2 2>&1
UPDATE_EXIT=$?
if [ $UPDATE_EXIT -ne 0 ]; then
echo "WARNING: apt update exited with code $UPDATE_EXIT, continuing..."
fi
sudo apt-get install -q=2 curl libsdl2-dev libsdl2-mixer-dev
.ci/fetch.sh -q -o llvm.sh https://apt.llvm.org/llvm.sh
chmod +x ./llvm.sh
sudo ./llvm.sh 18
sudo apt-get install -q=2 clang-18 clang-tools-18
set -e # Re-enable errexit
shell: bash
- name: run scan-build without JIT
env:
Expand Down