Skip to content

Delete .github/workflows/codeql.yml #23

Delete .github/workflows/codeql.yml

Delete .github/workflows/codeql.yml #23

Workflow file for this run

name: CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
name: ${{ matrix.os }} / ${{ matrix.compiler }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
compiler: gcc
cc: gcc
cxx: g++
- os: ubuntu-latest
compiler: clang
cc: clang
cxx: clang++
- os: windows-latest
compiler: msvc
- os: macos-latest
compiler: apple-clang
steps:
- uses: actions/checkout@v4
- name: Configure CMake
run: >
cmake -B build
-DPCG_CPP_BUILD_SAMPLES=ON
-DPCG_CPP_BUILD_TESTS=ON
-DCMAKE_BUILD_TYPE=Release
env:
CC: ${{ matrix.cc }}
CXX: ${{ matrix.cxx }}
- name: Build
run: cmake --build build --config Release
- name: Run CTest
run: |
cd build
ctest -C Release --output-on-failure
- name: Run Scripted Tests (Linux/macOS)
if: runner.os != 'Windows'
run: |
chmod +x ./test-high/run-tests.sh
# run-tests.sh expects binaries in specific locations or build dir
# Our updated run-tests.sh supports ../build/test-high
./test-high/run-tests.sh
- name: Run Scripted Tests (Windows)
if: runner.os == 'Windows'
shell: pwsh
run: |
./test-high/run-tests.ps1
freebsd:
runs-on: ubuntu-latest
name: FreeBSD
steps:
- uses: actions/checkout@v4
- name: Test on FreeBSD
uses: vmactions/freebsd-vm@v1
with:
usesh: true
prepare: pkg install -y cmake
run: |
cmake -B build -DPCG_CPP_BUILD_SAMPLES=ON -DPCG_CPP_BUILD_TESTS=ON -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release
cd build
ctest -C Release --output-on-failure
cd ..
chmod +x ./test-high/run-tests.sh
./test-high/run-tests.sh
./test-high/run-tests.sh
linux-arm64:
runs-on: ubuntu-latest
name: Linux ARM64 (QEMU)
steps:
- uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Run build and test in ARM64 container
run: |
docker run --rm --platform linux/arm64 -v $PWD:/src -w /src ubuntu:latest /bin/bash -c "
apt-get update && apt-get install -y cmake g++ make
cmake -B build-arm64 -DPCG_CPP_BUILD_SAMPLES=ON -DPCG_CPP_BUILD_TESTS=ON -DCMAKE_BUILD_TYPE=Release
cmake --build build-arm64 --config Release
cd build-arm64 && ctest -C Release --output-on-failure
cd ..
chmod +x ./test-high/run-tests.sh
# Set explicit build dir for run-tests.sh since different name
export BINDIR=./build-arm64/test-high
# run-tests.sh might need adaptation for explicit BINDIR or we move binaries.
# Simplest is to just run ctest which covers C++ tests.
# But for script tests, we rely on run-tests.sh auto-detection or adaptation.
# Let's rely on CTest for now as it's cleaner in container,
# but we can try run-tests.sh if it finds them.
./test-high/run-tests.sh
"
windows-arm64-build:
runs-on: windows-latest
name: Windows ARM64 (Cross-Compile)
steps:
- uses: actions/checkout@v4
- name: Configure CMake for ARM64
run: >
cmake -B build-arm64
-A ARM64
-DPCG_CPP_BUILD_SAMPLES=ON
-DPCG_CPP_BUILD_TESTS=ON
-DCMAKE_BUILD_TYPE=Release
- name: Build (ARM64)
run: cmake --build build-arm64 --config Release
# Note: We cannot run CTest or generated binaries on x64 host without emulation.
# This job verifies that the code compiles successfully for ARM64 target.