ci: switch to Arch Linux container for modern toolchain
CI / build-and-test (push) Failing after 12s

Debian 11's libstdc++ (GCC 10) lacks <format> even with clang-18.
Arch ships clang-18 and the latest libstdc++ out of the box.
Container-based runner with pacman for dead-simple dependency install.
This commit is contained in:
2026-08-04 14:32:58 -04:00
parent ac530e94a7
commit e3d41dcd20
+5 -15
View File
@@ -9,30 +9,20 @@ on:
jobs: jobs:
build-and-test: build-and-test:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: archlinux:latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Install dependencies - name: Install dependencies
run: | run: |
apt-get update -qq pacman -Syu --noconfirm
apt-get install -y -qq wget lsb-release software-properties-common gnupg pacman -S --noconfirm clang cmake ninja
wget -qO- https://apt.llvm.org/llvm.sh | bash -s -- 18 all
apt-get install -y -qq ninja-build curl
- name: Install CMake 3.28
run: |
curl -sL https://github.com/Kitware/CMake/releases/download/v3.28.6/cmake-3.28.6-linux-x86_64.tar.gz | tar xz -C /usr/local --strip-components=1
cmake --version
- name: Build kappa - name: Build kappa
run: | run: |
CC=$(find /usr/bin -maxdepth 1 \( -name 'clang-1[5-9]' -o -name 'clang-2[0-9]' \) 2>/dev/null | sort -V | tail -1)
if [ -z "$CC" ]; then CC=/usr/bin/clang-18; fi
CXX=$(echo "$CC" | sed 's/clang-/clang++-/')
echo "CC=$CC CXX=$CXX"
cmake -B build -G Ninja \ cmake -B build -G Ninja \
-DCMAKE_C_COMPILER="$CC" \ -DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER="$CXX" -DCMAKE_CXX_COMPILER=clang++
cmake --build build cmake --build build
- name: DSL and CLI tests - name: DSL and CLI tests