4
4
# On push, only run if any of the metapackage files has changed
5
5
push :
6
6
paths :
7
- - ' src/*meta*.f90'
7
+ - ' src/*meta*.f90'
8
8
- ' src/fpm/*meta*.f90'
9
9
- ' src/fpm/manifest/*meta*.f90'
10
10
- ' src/ci/meta_tests.sh'
11
11
- ' src/.github/workflows/meta.yml'
12
- # Always run on PR or release
12
+ # Always run on PR or release
13
13
pull_request :
14
14
release :
15
15
types : [published]
16
16
# Allow manual triggering
17
- workflow_dispatch :
17
+ workflow_dispatch :
18
18
19
19
env :
20
20
CI : " ON" # We can detect this in the build system and other vendors implement it
51
51
52
52
- name : (Ubuntu/macOS) setup gcc version
53
53
if : contains(matrix.os,'ubuntu') || contains(matrix.os,'macos')
54
- run : |
54
+ run : |
55
55
echo "GCC_V=14" >> $GITHUB_ENV
56
56
57
57
- name : (Windows) Install MSYS2
67
67
unzip
68
68
curl
69
69
hdf5
70
+ netcdf
71
+ netcdf-fortran
70
72
71
73
- name : (Windows) Setup VS Build environment
72
74
if : contains(matrix.os,'windows') && contains(matrix.mpi,'intel')
84
86
Remove-Item "oneAPI" -Force -Recurse
85
87
86
88
- name : (Ubuntu) Install gfortran
87
- if : contains(matrix.os,'ubuntu')
89
+ if : contains(matrix.os,'ubuntu')
88
90
run : |
89
91
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${GCC_V} 100 \
90
92
--slave /usr/bin/gfortran gfortran /usr/bin/gfortran-${GCC_V} \
@@ -94,13 +96,15 @@ jobs:
94
96
if : contains(matrix.os,'ubuntu') && contains(matrix.mpi,'openmpi')
95
97
run : |
96
98
sudo apt-get update
97
- sudo apt install -y -q openmpi-bin libopenmpi-dev hwloc fabric libhdf5-dev libhdf5-fortran-102
99
+ sudo apt install -y -q openmpi-bin libopenmpi-dev hwloc fabric libhdf5-dev \
100
+ libhdf5-fortran-102 libnetcdf-dev libnetcdff-dev
98
101
99
102
- name : (Ubuntu) Install MPICH
100
103
if : contains(matrix.os,'ubuntu') && contains(matrix.mpi,'mpich')
101
104
run : |
102
105
sudo apt-get update
103
- sudo apt install -y -q mpich hwloc fabric libhdf5-dev libhdf5-fortran-102
106
+ sudo apt install -y -q mpich hwloc fabric libhdf5-dev libhdf5-fortran-102 \
107
+ libnetcdf-dev libnetcdff-dev
104
108
105
109
- name : (Ubuntu) Retrieve Intel toolchain
106
110
if : contains(matrix.os,'ubuntu') && contains(matrix.mpi,'intel')
@@ -115,16 +119,16 @@ jobs:
115
119
uses :
fortran-lang/[email protected]
116
120
id : setup-fortran
117
121
with :
118
- compiler : intel
119
- version : 2024.1.0
122
+ compiler : intel
123
+ version : 2024.1.0
120
124
121
- - name : (Ubuntu) finalize oneAPI environment
125
+ - name : (Ubuntu) finalize oneAPI environment
122
126
if : contains(matrix.os,'ubuntu') && contains(matrix.mpi,'intel')
123
127
run : |
124
128
# Install MPI
125
- sudo apt-get install -y -q intel-oneapi-mpi-devel ninja-build cmake
129
+ sudo apt-get install -y -q intel-oneapi-mpi-devel ninja-build cmake libcurl4-gnutls-dev
126
130
source /opt/intel/oneapi/setvars.sh --force
127
- printenv >> $GITHUB_ENV
131
+ printenv >> $GITHUB_ENV
128
132
# To run HDF5 with oneAPI, we need to build it from source. Use CMake to generate pkg-config info
129
133
curl -O -L https://github.com/HDFGroup/hdf5/archive/refs/tags/snapshot-1.14.tar.gz
130
134
tar zxf snapshot-1.14.tar.gz
@@ -133,6 +137,17 @@ jobs:
133
137
cd build
134
138
make -j
135
139
sudo make install
140
+ curl -L https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.9.2.tar.gz -o - | tar xz
141
+ cd netcdf-c-4.9.2
142
+ CC=icx CXX=icpx FC=ifx ./configure --prefix=/usr --with-hdf5=/usr
143
+ CC=icx CXX=icpx FC=ifx make -j
144
+ sudo make install
145
+ curl -L https://github.com/Unidata/netcdf-fortran/archive/refs/tags/v4.6.1.tar.gz -o - | tar xz
146
+ cd netcdf-fortran-4.6.1
147
+ cmake -B build -DCMAKE_Fortran_COMPILER=ifx -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DCMAKE_INSTALL_PREFIX=/usr
148
+ cd build
149
+ make -j
150
+ sudo make install
136
151
137
152
- name : (Windows) Put MSYS2_MinGW64 on PATH
138
153
if : contains(matrix.os,'windows') && (!contains(matrix.mpi,'intel'))
@@ -214,8 +229,14 @@ jobs:
214
229
215
230
- name : (macOS) Install homebrew HDF5
216
231
if : contains(matrix.os,'macos')
217
- run : |
218
- brew install hdf5
232
+ run : |
233
+ brew install hdf5
234
+
235
+ - name : (macOS) Install homebrew NetCDF
236
+ if : contains(matrix.os,'macos')
237
+ run : |
238
+ brew install netcdf
239
+ brew install netcdf-fortran
219
240
220
241
# Phase 1: Bootstrap fpm with existing version
221
242
- name : Install fpm
0 commit comments