@@ -22,12 +22,13 @@ jobs:
22
22
build :
23
23
# Skip CI if PR is a draft
24
24
if : github.event.pull_request.draft == false
25
- name : build (${{matrix.os}}-${{matrix.cxx}}-mpi:${{matrix.mpi}}-openmp:${{matrix.omp}})
25
+ name : build (${{matrix.os}}-${{matrix.container}}-${{matrix. cxx}}-mpi:${{matrix.mpi}}-openmp:${{matrix.omp}})
26
26
# The CMake configure and build commands are platform agnostic and should work equally
27
27
# well on Windows or Mac. You can convert this to a matrix build if you need
28
28
# cross-platform coverage.
29
29
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
30
30
runs-on : ${{matrix.os}}
31
+ container : ${{matrix.container}}
31
32
env :
32
33
CXX : ${{ matrix.cxx }}
33
34
strategy :
49
50
- { os: ubuntu-22.04, cxx: clang++ }
50
51
- { os: macos-14, cxx: g++ }
51
52
- { os: macos-14, mpi: "ON"}
53
+ include :
54
+ - { os: ubuntu-22.04, container: "fedora:39", cxx: g++, mpi: "OFF", omp: "ON" }
52
55
steps :
53
56
- uses : actions/checkout@v4
54
57
67
70
uses : actions/cache@v4
68
71
with :
69
72
path : ${{runner.workspace}}/.ccache
70
- key : ${{matrix.os}}-${{matrix.cxx}}-${{matrix.mpi}}-${{matrix.omp}}-${{ steps.ccache_cache_timestamp.outputs.date_and_time }}
73
+ key : ${{matrix.os}}-${{matrix.container}}-${{matrix. cxx}}-${{matrix.mpi}}-${{matrix.omp}}-${{ steps.ccache_cache_timestamp.outputs.date_and_time }}
71
74
restore-keys : |
75
+ ${{ matrix.os }}-${{matrix.container}}-${{ matrix.cxx }}-${{ matrix.mpi }}-${{ matrix.omp }}
72
76
${{ matrix.os }}-${{ matrix.cxx }}-${{ matrix.mpi }}-${{ matrix.omp }}
73
77
${{ matrix.os }}-${{ matrix.cxx }}-${{ matrix.mpi }}
74
78
${{ matrix.os }}-${{ matrix.cxx }}
@@ -78,11 +82,18 @@ jobs:
78
82
# run: ccache --clear
79
83
80
84
- name : Install Dependencies on Ubunutu
81
- if : ${{ contains(matrix.os, 'ubuntu') }}
85
+ if : contains(matrix.os, 'ubuntu') && !contains(matrix.container, 'fedora')
82
86
run : |
83
87
sudo apt update
84
88
sudo apt install openmpi-bin libopenmpi-dev libyaml-cpp-dev libeigen3-dev libtiff-dev ccache
85
89
90
+ - name : Install Dependencies on Fedora
91
+ if : ${{ contains(matrix.container, 'fedora') }}
92
+ run : |
93
+ sudo dnf -y update
94
+ sudo dnf -y install cmake gcc gcc-c++
95
+ sudo dnf -y install openmpi openmpi-devel yaml-cpp ccache eigen3-devel libtiff-devel git
96
+
86
97
- name : Install Dependencies on MacOS
87
98
if : ${{ contains(matrix.os, 'macos') }}
88
99
run : |
@@ -142,8 +153,9 @@ jobs:
142
153
test :
143
154
needs :
144
155
build
145
- name : test (${{matrix.os}}-${{matrix.cxx}}-mpi:${{matrix.mpi}}-openmp:${{matrix.omp}})
156
+ name : test (${{matrix.os}}-${{os.container}}-${{ matrix.cxx}}-mpi:${{matrix.mpi}}-openmp:${{matrix.omp}})
146
157
runs-on : ${{matrix.os}}
158
+ container : ${{matrix.container}}
147
159
env :
148
160
CXX : ${{ matrix.cxx }}
149
161
strategy :
@@ -165,6 +177,9 @@ jobs:
165
177
- { os: ubuntu-22.04, cxx: clang++ }
166
178
- { os: macos-14, cxx: g++ }
167
179
- { os: macos-14, mpi: "ON"}
180
+ include :
181
+ - { os: ubuntu-22.04, container: "fedora:39", cxx: g++, mpi: "OFF", omp: "ON" }
182
+
168
183
steps :
169
184
- uses : actions/checkout@v4
170
185
@@ -176,11 +191,18 @@ jobs:
176
191
run : tar xfv dependencies.tar
177
192
178
193
- name : Install Dependencies on Ubunutu
179
- if : ${{ contains(matrix.os, 'ubuntu') }}
194
+ if : contains(matrix.os, 'ubuntu') && !contains(matrix.container, 'fedora')
180
195
run : |
181
196
sudo apt update
182
- sudo apt install openmpi-bin libopenmpi-dev ccache graphviz libeigen3-dev libtiff-dev libcfitsio-dev libboost-all-dev libyaml-cpp-dev
197
+ sudo apt install openmpi-bin libopenmpi-dev ccache libeigen3-dev libtiff-dev libcfitsio-dev libboost-all-dev libyaml-cpp-dev
183
198
199
+ - name : Install Dependencies on Fedora
200
+ if : ${{ contains(matrix.container, 'fedora') }}
201
+ run : |
202
+ sudo dnf -y update
203
+ sudo dnf -y install cmake gcc gcc-c++
204
+ sudo dnf -y install openmpi openmpi-devel yaml-cpp ccache eigen3-devel libtiff-devel cfitsio-devel boost-devel
205
+
184
206
- name : Install Dependencies on MacOS
185
207
if : ${{ contains(matrix.os, 'macos') }}
186
208
run : |
0 commit comments