Skip to content

Commit c2a6cf5

Browse files
authored
Merge pull request #43 from orange-cpp/orange-cpp-ci
Create cmake-multi-platform.yml
2 parents 449c601 + 7f55383 commit c2a6cf5

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: Omath CI (presets)
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
branches: [ main ]
8+
9+
concurrency:
10+
group: ci-${{ github.ref }}
11+
cancel-in-progress: true
12+
13+
jobs:
14+
build-and-test:
15+
strategy:
16+
fail-fast: false
17+
matrix:
18+
# ------- preset ↔ runner pairs -------------
19+
include:
20+
- os: ubuntu-latest # GCC / Ninja (from linux-release preset)
21+
preset: linux-release
22+
- os: macos-latest # Clang / Ninja (from darwin-release preset)
23+
preset: darwin-release
24+
- os: windows-latest # MSVC / Ninja (from windows-release preset)
25+
preset: windows-release
26+
27+
runs-on: ${{ matrix.os }}
28+
29+
steps:
30+
# 1) checkout (incl. GoogleTest sub-module)
31+
- name: Checkout repository
32+
uses: actions/checkout@v4
33+
with:
34+
submodules: recursive
35+
36+
# 2) Ninja (needed only on Windows images)
37+
- name: Install Ninja
38+
uses: seanmiddleditch/gha-setup-ninja@v4
39+
40+
# 3) MSVC environment
41+
- name: Set up MSVC developer command-prompt
42+
if: runner.os == 'Windows'
43+
uses: ilammy/msvc-dev-cmd@v1
44+
45+
# 4) Configure with the selected CMake preset
46+
- name: Configure (cmake --preset)
47+
run: cmake --preset ${{ matrix.preset }} -DOMATH_BUILD_TESTS=ON
48+
49+
# 5) Build
50+
- name: Build
51+
# All configure presets put the binary dir in cmake-build/build/${presetName}
52+
run: cmake --build cmake-build/build/${{ matrix.preset }}
53+
54+
# 6) Run unit-tests
55+
- name: Test
56+
working-directory: cmake-build/build/${{ matrix.preset }}
57+
run: ctest --output-on-failure

0 commit comments

Comments
 (0)