CI / build-and-test (push) Failing after 33s
ls returns exit code 2 when glob has no matches, which fails the build step under set -e + pipefail. find returns 0 even when no files are found.
58 lines
1.8 KiB
YAML
58 lines
1.8 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
branches: [main]
|
|
|
|
jobs:
|
|
build-and-test:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
apt-get update -qq
|
|
# Try clang-15+ first (Ubuntu 22.04+)
|
|
if apt-cache show clang-18 >/dev/null 2>&1; then
|
|
apt-get install -y -qq clang-18 ninja-build curl
|
|
elif apt-cache show clang-17 >/dev/null 2>&1; then
|
|
apt-get install -y -qq clang-17 ninja-build curl
|
|
elif apt-cache show clang-16 >/dev/null 2>&1; then
|
|
apt-get install -y -qq clang-16 ninja-build curl
|
|
elif apt-cache show clang-15 >/dev/null 2>&1; then
|
|
apt-get install -y -qq clang-15 ninja-build curl
|
|
else
|
|
# Ubuntu 20.04: install from LLVM repo
|
|
apt-get install -y -qq wget lsb-release
|
|
wget -qO- https://apt.llvm.org/llvm.sh | bash -s -- 18
|
|
apt-get install -y -qq ninja-build curl
|
|
fi
|
|
|
|
- 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
|
|
run: |
|
|
CC=$(find /usr/bin -maxdepth 1 \( -name 'clang-1[5-9]' -o -name 'clang-2[0-9]' \) 2>/dev/null | head -1)
|
|
if [ -z "$CC" ]; then CC=/usr/bin/clang-18; fi
|
|
CXX="${CC}++"
|
|
echo "Using compiler: $CXX"
|
|
cmake -B build -G Ninja \
|
|
-DCMAKE_C_COMPILER="$CC" \
|
|
-DCMAKE_CXX_COMPILER="$CXX"
|
|
cmake --build build
|
|
|
|
- name: DSL and CLI tests
|
|
run: ./test.sh
|
|
|
|
- name: Init-switching tests
|
|
run: ./test-init-switch.sh
|
|
|
|
- name: Comprehensive tests
|
|
run: ./test-full.sh
|