Skip to content

Update cmake-multi-platform.yml #10

Update cmake-multi-platform.yml

Update cmake-multi-platform.yml #10

name: Omath CI (Arch Linux / macOS / Windows)
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
##############################################################################
# 1) ARCH LINUX – Clang / Ninja (runs in an official Arch container)
##############################################################################
jobs:
arch-build-and-test:
name: Arch Linux (Clang)
runs-on: ubuntu-latest
container: archlinux:latest
steps:
- name: Install basic tool-chain with pacman
shell: bash
run: |
pacman -Sy --noconfirm archlinux-keyring
pacman -Syu --noconfirm --needed \
git base-devel clang cmake ninja
- name: Checkout repository (with sub-modules)
uses: actions/checkout@v4
with:
submodules: recursive
- name: Configure (cmake --preset)
shell: bash
run: cmake --preset linux-release -DOMATH_BUILD_TESTS=ON
- name: Build
shell: bash
run: cmake --build cmake-build/build/linux-release
# --- Run tests --------------------------------------------------------
- name: Run unit_tests
shell: bash
run: ./out/Release/unit_tests
##############################################################################
# 2) macOS – Clang / Ninja (native runner)
##############################################################################
macos-build-and-test:
name: macOS (Clang)
runs-on: macos-latest
steps:
- name: Checkout repository (with sub-modules)
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Ninja
uses: seanmiddleditch/gha-setup-ninja@v4
- name: Configure (cmake --preset)
shell: bash
run: cmake --preset darwin-release -DOMATH_BUILD_TESTS=ON
- name: Build
shell: bash
run: cmake --build cmake-build/build/darwin-release
- name: Run unit_tests
shell: bash
run: ./out/Release/unit_tests
##############################################################################
# 3) Windows – MSVC / Ninja (native runner)
##############################################################################
windows-build-and-test:
name: Windows (MSVC)
runs-on: windows-latest
steps:
- name: Checkout repository (with sub-modules)
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Ninja
uses: seanmiddleditch/gha-setup-ninja@v4
- name: Set up MSVC developer command-prompt
uses: ilammy/msvc-dev-cmd@v1
- name: Configure (cmake --preset)
shell: bash
run: cmake --preset windows-release -DOMATH_BUILD_TESTS=ON
- name: Build
shell: bash
run: cmake --build cmake-build/build/windows-release
- name: Run unit_tests.exe
shell: bash
run: ./out/Release/unit_tests.exe