Update cmake-multi-platform.yml #10
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |