@@ -32,63 +32,86 @@ jobs:
3232 build_type : [Release,Debug]
3333 name :
3434 - linux gnu-10
35- - linux clang-12
36- - linux nvhpc-24.3
35+ - linux gnu-12
36+ - linux gnu-14
37+ - linux clang-18
38+ - linux intel
3739 - linux intel-classic
40+ - linux nvhpc-25.1
3841 - macos
3942
4043 include :
4144
4245 - name : linux gnu-10
43- os : ubuntu-20 .04
46+ os : ubuntu-22 .04
4447 compiler : gnu-10
4548 compiler_cc : gcc-10
4649 compiler_cxx : g++-10
4750 compiler_fc : gfortran-10
4851 caching : true
4952
50- - name : linux clang -12
51- os : ubuntu-20 .04
52- compiler : clang-12
53- compiler_cc : clang-12
54- compiler_cxx : clang ++-12
53+ - name : linux gnu -12
54+ os : ubuntu-22 .04
55+ compiler : gnu-10
56+ compiler_cc : gcc-10
57+ compiler_cxx : g ++-10
5558 compiler_fc : gfortran-10
5659 caching : true
5760
58- - name : linux clang-12
59- build_type : Release
60- os : ubuntu-20.04
61- compiler : clang-12
62- compiler_cc : clang-12
63- compiler_cxx : clang++-12
64- compiler_fc : gfortran-10
61+ - name : linux gnu-14
62+ os : ubuntu-24.04
63+ compiler : gnu-14
64+ compiler_cc : gcc-14
65+ compiler_cxx : g++-14
66+ compiler_fc : gfortran-14
6567 caching : true
6668
67- - name : linux nvhpc-24.3
68- os : ubuntu-20.04
69- compiler : nvhpc-24.3
70- compiler_cc : nvc
71- compiler_cxx : nvc++
72- compiler_fc : nvfortran
73- cmake_options : -DCMAKE_CXX_FLAGS=--diag_suppress177
74- caching : false
69+ - name : linux clang-18
70+ os : ubuntu-24.04
71+ compiler : clang-18
72+ compiler_cc : clang-18
73+ compiler_cxx : clang++-18
74+ compiler_fc : gfortran-14
75+ caching : true
76+ coverage : false
77+
78+ - name : linux intel
79+ os : ubuntu-24.04
80+ compiler : intel
81+ compiler_cc : icx
82+ compiler_cxx : icpx
83+ compiler_fc : ifx
84+ caching : true
85+ coverage : false
7586
7687 - name : linux intel-classic
77- os : ubuntu-20 .04
88+ os : ubuntu-22 .04
7889 compiler : intel-classic
7990 compiler_cc : icc
8091 compiler_cxx : icpc
8192 compiler_fc : ifort
8293 caching : true
94+ coverage : false
95+
96+ - name : linux nvhpc-25.1
97+ os : ubuntu-24.04
98+ compiler : nvhpc-25.1
99+ compiler_cc : nvc
100+ compiler_cxx : nvc++
101+ compiler_fc : nvfortran
102+ cmake_options : -DCMAKE_CXX_FLAGS=--diag_suppress177
103+ caching : true
83104
84105 - name : macos
85106 # Xcode compiler requires empty environment variables, so we pass null (~) here
86- os : macos-13
87- compiler : clang-14
107+ os : macos-14
108+ compiler : clang-15
88109 compiler_cc : ~
89110 compiler_cxx : ~
90111 compiler_fc : gfortran-13
91112 caching : true
113+ coverage : false
114+ cmake_options : -DMPI_SLOTS=4
92115
93116 runs-on : ${{ matrix.os }}
94117 steps :
@@ -111,17 +134,9 @@ jobs:
111134
112135 printenv
113136
114- - name : Cache Dependencies
115- # There seems to be a problem with cached NVHPC dependencies, leading to SIGILL perhaps due to slightly different architectures
116- if : matrix.caching
117- id : deps-cache
118- uses : pat-s/always-upload-cache@v2.1.5
119- with :
120- path : ${{ env.DEPS_DIR }}
121- key : deps-${{ matrix.os }}-${{ matrix.compiler }}-${{ matrix.build_type }}-${{ env.CACHE_SUFFIX }}
122137
123- # Free up disk space for nvhpc
124138 - name : Free Disk Space (Ubuntu)
139+ # Free up disk space for nvhpc
125140 uses : jlumbroso/free-disk-space@main
126141 if : contains( matrix.compiler, 'nvhpc' )
127142 continue-on-error : true
@@ -135,15 +150,23 @@ jobs:
135150 android : true
136151 dotnet : true
137152 haskell : true
138- large-packages : true
139- docker-images : true
153+ large-packages : false # takes too long
154+ docker-images : false # takes too long
140155 swap-storage : true
141156
157+ - name : Retrieve cached dependencies
158+ if : matrix.caching
159+ id : deps-restore-cache
160+ uses : actions/cache/restore@v4
161+ with :
162+ path : ${{ env.DEPS_DIR }}
163+ key : deps-${{ matrix.os }}-${{ matrix.compiler }}-${{ env.CACHE_SUFFIX }}
164+
142165 - name : Install NVHPC compiler
143166 if : contains( matrix.compiler, 'nvhpc' )
144167 shell : bash -eux {0}
145168 run : |
146- ${FIAT_TOOLS}/install-nvhpc.sh --prefix /opt/nvhpc
169+ ${FIAT_TOOLS}/install-nvhpc.sh --prefix /opt/nvhpc --version 25.1
147170 source /opt/nvhpc/env.sh
148171 echo "${NVHPC_DIR}/compilers/bin" >> $GITHUB_PATH
149172 echo "NVHPC_ROOT=${NVHPC_DIR}" >> $GITHUB_ENV
@@ -161,13 +184,24 @@ jobs:
161184 - name : Install MPI
162185 shell : bash -eux {0}
163186 run : |
164- FCFLAGS=-fPIC CFLAGS=-fPIC FFLAGS=-fPIC ${FIAT_TOOLS}/install-mpi.sh --mpi openmpi --prefix ${DEPS_DIR}/openmpi
187+ FCFLAGS=-fPIC CFLAGS=-fPIC FFLAGS=-fPIC ${ATLAS_TOOLS}/install-mpi.sh --mpi openmpi --prefix ${DEPS_DIR}/openmpi
188+ if [[ "${{ matrix.os }}" =~ macos ]]; then
189+ echo "CACHE_SUFFIX=${CACHE_SUFFIX}-mpi_$(mpirun --version | head -1 | awk '{print $4}')" >> $GITHUB_ENV
190+ fi
165191 [ -f ${DEPS_DIR}/openmpi/env.sh ] && source ${DEPS_DIR}/openmpi/env.sh
166192 [ -z ${MPI_HOME+x} ] || echo "MPI_HOME=${MPI_HOME}" >> $GITHUB_ENV
167193
194+ - name : Save cached dependencies
195+ # There seems to be a problem with cached NVHPC dependencies, leading to SIGILL perhaps due to slightly different architectures
196+ if : matrix.caching && matrix.build_type == 'Debug'
197+ id : deps-save-cache
198+ uses : actions/cache/save@v4
199+ with :
200+ path : ${{ env.DEPS_DIR }}
201+ key : ${{ steps.deps-restore-cache.outputs.cache-primary-key }}
202+
168203 - name : Set Build & Test Environment
169204 run : |
170-
171205 # Add mpirun to path for testing
172206 [ -z ${MPI_HOME+x} ] || echo "${MPI_HOME}/bin" >> $GITHUB_PATH
173207
0 commit comments