ci: switch to Arch Linux container for modern toolchain
CI / build-and-test (push) Failing after 12s
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:
+5
-15
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user