Skip to content

Commit 4f30e01

Browse files
committed
ci: use presets more
1 parent 170e309 commit 4f30e01

File tree

5 files changed

+145
-62
lines changed

5 files changed

+145
-62
lines changed

.github/workflows/ci.yml

Lines changed: 30 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: ci
22

33
env:
4-
HOMEBREW_NO_INSTALL_CLEANUP: 1
4+
HOMEBREW_NO_INSTALL_CLEANUP: 1
55

66
on:
77
push:
@@ -13,11 +13,13 @@ on:
1313
- "**/CMakeLists.txt"
1414
- "**.cmake"
1515
- ".github/workflows/ci.yml"
16+
- "!memcheck.cmake"
17+
- "!coverage.cmake"
1618

1719

1820
jobs:
1921

20-
linux_mac:
22+
core:
2123
timeout-minutes: 15
2224

2325
strategy:
@@ -60,38 +62,44 @@ jobs:
6062
6163
- uses: actions/checkout@v3
6264

63-
- name: Configure h5fortran
64-
run: cmake --preset multi -DCMAKE_INSTALL_PREFIX=${{ runner.temp }} -DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
65+
- name: Configure
66+
run: >-
67+
cmake
68+
--preset multi
69+
--install-prefix ${{ runner.temp }}
70+
-DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
6571
6672
- name: Build Debug
67-
run: cmake --build --parallel --preset debug
73+
run: cmake --build --preset debug
6874
- name: Test Debug
69-
run: ctest --preset debug --output-junit test-debug.xml
75+
run: ctest --preset debug
7076

7177
- name: Build Release
72-
run: cmake --build --parallel --preset release
78+
run: cmake --build --preset release
7379
- name: Test Release
74-
run: ctest --preset release --output-junit test-release.xml
80+
run: ctest --preset release
7581

76-
- name: Publish Unit Test Results
77-
uses: actions/upload-artifact@v3
78-
if: always()
79-
with:
80-
name: test-junit
81-
path: build/test-*.xml
82+
- name: install package
83+
run: cmake --install build
8284

83-
- run: cmake --install build
85+
- name: example config
86+
run: >-
87+
cmake
88+
--preset default
89+
-GNinja
90+
-DCMAKE_PREFIX_PATH:PATH=${{ runner.temp }}
91+
working-directory: example
8492

85-
- name: configure examples
86-
run: cmake -S example -B example/build -DCMAKE_PREFIX_PATH:PATH=${{ runner.temp }} -DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
87-
- name: build examples
88-
run: cmake --build example/build --parallel
89-
- name: Test examples
90-
run: ctest --test-dir example/build -V
93+
- name: example build
94+
run: cmake --build --preset default
95+
working-directory: example
9196

97+
- name: example test
98+
run: ctest --preset default
99+
working-directory: example
92100

93101
linux-coverage:
94-
needs: linux_mac
102+
needs: core
95103
runs-on: ubuntu-latest
96104
timeout-minutes: 10
97105

.github/workflows/ci_build.yml

Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,41 +28,59 @@ jobs:
2828

2929
steps:
3030

31-
- name: install MPI (Linux)
31+
- name: prereqs (Linux)
3232
if: runner.os == 'Linux'
33-
run: |
34-
sudo apt update
35-
sudo apt install --no-install-recommends lib${{ matrix.mpi }}-dev
33+
run: sudo apt install --no-install-recommends ninja-build lib${{ matrix.mpi }}-dev
3634

37-
- name: install MPI (MacOS)
35+
- name: prereqs (MacOS)
3836
if: runner.os == 'macOS'
3937
run: |
40-
brew install ${{ matrix.mpi }}
38+
brew install ${{ matrix.mpi }} ninja
4139
brew reinstall gcc
4240
4341
- uses: actions/checkout@v3
4442

4543
- name: Configure HDF5-MPI
46-
run: cmake -S scripts -B scripts/build -DCMAKE_INSTALL_PREFIX=${{ runner.temp }} -DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
44+
run: >-
45+
cmake
46+
-GNinja
47+
-S scripts -B scripts/build
48+
--install-prefix ${{ runner.temp }}
49+
-DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
4750
4851
- name: Build/install HDF5
49-
run: cmake --build scripts/build --parallel
52+
run: cmake --build scripts/build
5053

5154
- name: configure h5fortran
52-
run: cmake -B build -DCMAKE_INSTALL_PREFIX=${{ runner.temp }} -DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }} -DCMAKE_PREFIX_PATH=${{ runner.temp }}
55+
run: >-
56+
cmake
57+
--preset default
58+
-GNinja
59+
--install-prefix ${{ runner.temp }}
60+
-DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
61+
-DCMAKE_PREFIX_PATH=${{ runner.temp }}
5362
5463
- name: build h5fortran
55-
run: cmake --build build --parallel
64+
run: cmake --build --preset default
5665

5766
- name: test h5fortran
58-
run: ctest --test-dir build --preset default
67+
run: ctest --preset default
5968

6069
- name: install h5fortran
6170
run: cmake --install build
6271

6372
- name: configure examples
64-
run: cmake -S example -B example/build -DCMAKE_PREFIX_PATH:PATH=${{ runner.temp }} -DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
73+
run: >-
74+
cmake
75+
--preset default
76+
-GNinja
77+
-DCMAKE_PREFIX_PATH:PATH=${{ runner.temp }}
78+
working-directory: example
79+
6580
- name: build Examples
66-
run: cmake --build example/build --parallel
81+
run: cmake --build --preset default
82+
working-directory: example
83+
6784
- name: Test Examples
68-
run: ctest --test-dir example/build -V
85+
run: ctest --preset default
86+
working-directory: example

.github/workflows/intel-oneapi.yml

Lines changed: 35 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ name: intel-oneapi
22

33
env:
44
CC: icx
5+
CXX: icpx
56
FC: ifx
67

78
on:
@@ -14,6 +15,8 @@ on:
1415
- "**.cmake"
1516
- "**/CMakeLists.txt"
1617
- ".github/workflows/intel-oneapi.yml"
18+
- "!memcheck.cmake"
19+
- "!coverage.cmake"
1720

1821

1922
jobs:
@@ -56,42 +59,55 @@ jobs:
5659
- uses: actions/checkout@v3
5760

5861
- name: Configure HDF5
59-
run: cmake -S scripts -B scripts/build -DCMAKE_INSTALL_PREFIX=${{ runner.temp }}
62+
run: >-
63+
cmake
64+
-GNinja
65+
-S scripts -B scripts/build
66+
--install-prefix ${{ runner.temp }}
6067
6168
- name: Build/install HDF5
62-
run: cmake --build scripts/build --parallel
69+
run: cmake --build scripts/build
6370

6471
- name: Configure h5fortran
65-
run: cmake --preset multi -DCMAKE_INSTALL_PREFIX=${{ runner.temp }} -DCMAKE_PREFIX_PATH=${{ runner.temp }}
72+
run: >-
73+
cmake
74+
--preset multi
75+
--install-prefix ${{ runner.temp }}
76+
-DCMAKE_PREFIX_PATH=${{ runner.temp }}
77+
-DCMAKE_COMPILE_WARNING_AS_ERROR:BOOL=false
78+
# bug fixed in CMake 3.24.3 -- Fortran errors not supported for oneAPI
6679

6780
- name: print config log
6881
if: ${{ failure() }}
6982
run: cat build/CMakeFiles/CMakeError.log
7083

7184
- name: Release build
72-
run: cmake --build --preset release --parallel
85+
run: cmake --build --preset release
7386

7487
- name: Release unit test
75-
run: ctest --preset release --output-junit test-release-oneapi.xml
88+
run: ctest --preset release
7689

7790
- name: debug build
78-
run: cmake --build --preset debug --parallel
91+
run: cmake --build --preset debug
7992

8093
- name: debug unit test
81-
run: ctest --preset debug --output-junit test-debug-oneapi.xml
94+
run: ctest --preset debug
8295

8396
- name: install package
8497
run: cmake --install build
8598

86-
- name: configure example
87-
run: cmake -S example -B example/build -DCMAKE_PREFIX_PATH=${{ runner.temp }}
88-
89-
- name: print config log
90-
if: ${{ failure() }}
91-
run: cat example/build/CMakeFiles/CMakeError.log
92-
93-
- name: build example
94-
run: cmake --build example/build --parallel || cmake --build example/build -v
95-
96-
- name: test example
97-
run: ctest --test-dir example/build -V
99+
- name: example config
100+
run: >-
101+
cmake
102+
--preset default
103+
-GNinja
104+
-DCMAKE_PREFIX_PATH=${{ runner.temp }}
105+
working-directory: example
106+
107+
- name: example build
108+
run: cmake --build --preset default
109+
working-directory: example
110+
111+
- name: example test
112+
run: ctest --preset default
113+
working-directory: example

CMakePresets.json

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,14 @@
33

44
"configurePresets": [
55
{
6-
"name": "multi",
6+
"name": "default",
77
"binaryDir": "${sourceDir}/build",
8+
"cacheVariables": {
9+
"CMAKE_COMPILE_WARNING_AS_ERROR": true
10+
}
11+
},
12+
{
13+
"name": "multi", "inherits": "default",
814
"displayName": "Ninja Multi-Config",
915
"generator": "Ninja Multi-Config"
1016
},
@@ -17,12 +23,13 @@
1723
"CMAKE_BUILD_TYPE": "Debug",
1824
"coverage": true
1925
}
20-
},
21-
{
22-
"name": "phony"
2326
}
2427
],
2528
"buildPresets": [
29+
{
30+
"name": "default",
31+
"configurePreset": "default"
32+
},
2633
{
2734
"name": "release",
2835
"configurePreset": "multi",
@@ -52,16 +59,16 @@
5259
"testPresets": [
5360
{
5461
"name": "default",
55-
"configurePreset": "phony",
62+
"configurePreset": "default",
5663
"output": {
5764
"outputOnFailure": true,
58-
"verbosity": "default"
65+
"verbosity": "verbose"
5966
},
6067
"execution": {
6168
"noTestsAction": "error",
6269
"scheduleRandom": true,
6370
"stopOnFailure": false,
64-
"timeout": 10
71+
"timeout": 60
6572
}
6673
},
6774
{

example/CMakePresets.json

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
{
2+
"version": 3,
3+
4+
"configurePresets": [
5+
{
6+
"name": "default",
7+
"binaryDir": "${sourceDir}/build"
8+
}
9+
],
10+
"buildPresets": [
11+
{
12+
"name": "default",
13+
"configurePreset": "default",
14+
"configuration": "Release"
15+
}
16+
],
17+
"testPresets": [
18+
{
19+
"name": "default",
20+
"configurePreset": "default",
21+
"configuration": "Release",
22+
"output": {
23+
"outputOnFailure": true,
24+
"verbosity": "verbose"
25+
},
26+
"execution": {
27+
"noTestsAction": "error",
28+
"scheduleRandom": true,
29+
"stopOnFailure": false,
30+
"timeout": 60
31+
}
32+
}
33+
]
34+
}

0 commit comments

Comments
 (0)