mirror of
https://github.com/orange-cpp/omath.git
synced 2026-02-13 07:03:25 +00:00
Adds vcpkg setup for Arch Linux and Windows CI jobs. This ensures consistent dependency management and builds via Vcpkg for both platforms and enables OMath to build via vcpkg. Clones the vcpkg repository and bootstraps it during the job execution.
98 lines
2.7 KiB
YAML
98 lines
2.7 KiB
YAML
name: Omath CI (Arch Linux / Windows)
|
||
|
||
on:
|
||
push:
|
||
branches: [ main ]
|
||
pull_request:
|
||
branches: [ main ]
|
||
|
||
concurrency:
|
||
group: ci-${{ github.ref }}
|
||
cancel-in-progress: true
|
||
|
||
|
||
##############################################################################
|
||
# 1) ARCH LINUX – Clang / Ninja
|
||
##############################################################################
|
||
jobs:
|
||
arch-build-and-test:
|
||
name: Arch Linux (Clang)
|
||
runs-on: ubuntu-latest
|
||
container: archlinux:latest
|
||
env:
|
||
VCPKG_ROOT: ${{ github.workspace }}/vcpkg
|
||
OMATH_BUILD_VIA_VCPKG: ON
|
||
|
||
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: Set up vcpkg
|
||
shell: bash
|
||
run: |
|
||
git clone --depth 1 https://github.com/microsoft/vcpkg "$VCPKG_ROOT"
|
||
"$VCPKG_ROOT/bootstrap-vcpkg.sh" -disableMetrics
|
||
|
||
- name: Configure (cmake --preset)
|
||
shell: bash
|
||
run: cmake --preset linux-release -DOMATH_BUILD_TESTS=ON -DOMATH_BUILD_BENCHMARK=OFF
|
||
|
||
- name: Build
|
||
shell: bash
|
||
run: cmake --build cmake-build/build/linux-release --target unit_tests omath
|
||
|
||
- name: Run unit_tests
|
||
shell: bash
|
||
run: ./out/Release/unit_tests
|
||
|
||
|
||
|
||
##############################################################################
|
||
# 2) Windows – MSVC / Ninja
|
||
##############################################################################
|
||
windows-build-and-test:
|
||
name: Windows (MSVC)
|
||
runs-on: windows-latest
|
||
env:
|
||
VCPKG_ROOT: ${{ github.workspace }}\vcpkg
|
||
OMATH_BUILD_VIA_VCPKG: ON
|
||
|
||
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: Set up vcpkg
|
||
shell: pwsh
|
||
run: |
|
||
git clone --depth 1 https://github.com/microsoft/vcpkg $env:VCPKG_ROOT
|
||
& "$env:VCPKG_ROOT\bootstrap-vcpkg.bat" -disableMetrics
|
||
|
||
- name: Configure (cmake --preset)
|
||
shell: bash
|
||
run: cmake --preset windows-release -DOMATH_BUILD_TESTS=ON -DOMATH_BUILD_BENCHMARK=OFF
|
||
|
||
- name: Build
|
||
shell: bash
|
||
run: cmake --build cmake-build/build/windows-release --target unit_tests omath
|
||
|
||
- name: Run unit_tests.exe
|
||
shell: bash
|
||
run: ./out/Release/unit_tests.exe
|