Skip to content

Commit f863eda

Browse files
committed
Update Github CI
1 parent ce93e45 commit f863eda

1 file changed

Lines changed: 74 additions & 40 deletions

File tree

.github/workflows/build.yml

Lines changed: 74 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)