Skip to content

Commit abc4479

Browse files
committed
CI: test with multiple gcc/clang versions
1 parent c500140 commit abc4479

File tree

2 files changed

+90
-9
lines changed

2 files changed

+90
-9
lines changed

.github/workflows/ci_cmake.yml

Lines changed: 80 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,32 +16,103 @@ on:
1616

1717
jobs:
1818

19-
linux:
19+
linux-gcc:
2020
runs-on: ubuntu-latest
21+
timeout-minutes: 5
22+
23+
strategy:
24+
matrix:
25+
gcc-version: [7, 8, 9, 10, 11]
26+
27+
env:
28+
CC: gcc-${{ matrix.gcc-version }}
29+
CXX: g++-${{ matrix.gcc-version }}
30+
FC: gfortran-${{ matrix.gcc-version }}
31+
2132
steps:
33+
34+
- name: install ninja and compilers
35+
run: |
36+
sudo apt update
37+
sudo apt install ninja-build gcc-${{ matrix.gcc-version }} g++-${{ matrix.gcc-version }} gfortran-${{ matrix.gcc-version }}
38+
39+
2240
- uses: actions/checkout@v2
2341

24-
- run: cmake -Bbuild
25-
- run: cmake --build build
26-
- run: ctest --test-dir build --preset default
42+
43+
- run: cmake --preset multi
44+
45+
- run: cmake --build --preset debug
46+
- run: ctest --preset debug -V
47+
48+
- run: cmake --build --preset release
49+
- run: ctest --preset release -V
50+
51+
52+
linux-clang:
53+
runs-on: ubuntu-latest
54+
timeout-minutes: 5
55+
56+
strategy:
57+
matrix:
58+
clang-version: ["6.0", 7, 8, 9, 10]
59+
60+
env:
61+
CC: clang-${{ matrix.clang-version }}
62+
CXX: clang++-${{ matrix.clang-version }}
63+
FC: gfortran
64+
65+
steps:
66+
- uses: actions/checkout@v2
67+
68+
- name: install ninja and compilers
69+
run: |
70+
sudo apt update
71+
sudo apt install ninja-build clang-${{ matrix.clang-version }}
72+
73+
- run: cmake --preset multi
74+
75+
- run: cmake --build --preset debug
76+
- run: ctest --preset debug -V
77+
78+
- run: cmake --build --preset release
79+
- run: ctest --preset release -V
2780

2881

2982
macos:
30-
needs: linux
83+
needs: linux-clang
3184
runs-on: macos-latest
85+
timeout-minutes: 10
86+
87+
strategy:
88+
matrix:
89+
compiler: [ {cpp: g++-11, c: gcc-11}, {cpp: clang++, c: clang} ]
90+
3291
env:
3392
FC: gfortran-11
93+
CC: ${{ matrix.compiler.c }}
94+
CXX: ${{ matrix.compiler.cpp }}
95+
3496

3597
steps:
98+
- run: brew install ninja
99+
36100
- uses: actions/checkout@v2
37101

38-
- run: cmake -Bbuild
39-
- run: cmake --build build
40-
- run: ctest --test-dir build --preset default
102+
- run: cmake --preset multi
103+
104+
- run: cmake --build --preset debug
105+
- run: ctest --preset debug -V
106+
107+
- run: cmake --build --preset release
108+
- run: ctest --preset release -V
109+
41110

42111
windows:
43-
needs: linux
112+
needs: linux-gcc
44113
runs-on: windows-latest
114+
timeout-minutes: 10
115+
45116
env:
46117
CMAKE_GENERATOR: MinGW Makefiles
47118

CMakePresets.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@
1818
"configurePreset": "multi",
1919
"configuration": "Release"
2020
},
21+
{
22+
"name": "reldebug",
23+
"configurePreset": "multi",
24+
"configuration": "RelWithDebInfo"
25+
},
2126
{
2227
"name": "debug",
2328
"configurePreset": "multi",
@@ -42,6 +47,11 @@
4247
"configurePreset": "multi",
4348
"configuration": "Release"
4449
},
50+
{
51+
"name": "reldebug", "inherits": "default",
52+
"configurePreset": "multi",
53+
"configuration": "RelWithDebInfo"
54+
},
4555
{
4656
"name": "debug", "inherits": "default",
4757
"configurePreset": "multi",

0 commit comments

Comments
 (0)