-
Notifications
You must be signed in to change notification settings - Fork 58
Expand file tree
/
Copy pathnetcdf_hdf5_pnetcdf_ncint_mpich_asan.yml
More file actions
130 lines (117 loc) · 4.27 KB
/
netcdf_hdf5_pnetcdf_ncint_mpich_asan.yml
File metadata and controls
130 lines (117 loc) · 4.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
name: netcdf_hdf5_pnetcdf_ncint_mpich_asan
on:
push:
branches: [ maintodo ]
pull_request:
branches: [ maintodo ]
jobs:
build:
runs-on: ubuntu-latest
env:
# Note issue https://github.com/NCAR/ParallelIO/issues/1889 netcdf integration only currently works with netcdf-c 4.7.4
NETCDF_C_VERSION: 4.7.4
NETCDF_F_VERSION: 4.5.4
PNETCDF_VERSION: checkpoint.1.12.3
MPICH_VERSION: v4.0.3
HDF5_VERSION: hdf5_1_12_2
FCFLAGS: "-fallow-argument-mismatch"
FFLAGS: "-fallow-argument-mismatch"
steps:
- uses: actions/checkout@v4
- name: Installs
run: |
sudo apt-get install doxygen graphviz wget gfortran libjpeg-dev libz-dev
- name: cache-mpich
id: cache-mpich
uses: actions/cache@v4
with:
path: ~/mpich
key: mpich-${{ runner.os }}-${{ env.MPICH_VERSION }}
- name: build-mpich
if: steps.cache-mpich.outputs.cache-hit != 'true'
uses: ./.github/actions/buildmpich
with:
install_prefix: $HOME/mpich
mpich_version: ${{ env.MPICH_VERSION }}
- name: cache-hdf5
id: cache-hdf5
uses: actions/cache@v4
with:
path: ~/hdf5
key: hdf5-${{ runner.os }}-${{ env.HDF5_VERSION }}-mpich-${{ env.MPICH_VERSION }}
- name: build-hdf5
if: steps.cache-hdf5.outputs.cache-hit != 'true'
uses: ./.github/actions/buildhdf5
with:
install_prefix: $HOME/hdf5
enable_parallel: True
hdf5_version: ${{ env.HDF5_VERSION }}
mpi_path: $HOME/mpich
- name: cache-netcdf-c
id: cache-netcdf-c
uses: actions/cache@v4
with:
path: ~/netcdf-c
key: netcdf-c-${{ runner.os }}-${{ env.NETCDF_C_VERSION }}-mpich-${{ env.MPICH_VERSION }}-hdf5-${{ env.HDF5_VERSION }}
- name: build-netcdf-c
if: steps.cache-netcdf-c.outputs.cache-hit != 'true'
uses: ./.github/actions/buildnetcdf
with:
netcdf_version: ${{ env.NETCDF_VERSION }}
install_prefix: $HOME/netcdf-c
- name: cache-netcdf-fortran
id: cache-netcdf-fortran
uses: actions/cache@v4
with:
path: ~/netcdf-fortran
key: netcdf-fortran-${{ runner.os }}-${{ env.NETCDF_F_VERSION }}-mpich-${{ env.MPICH_VERSION }}-hdf5-${{ env.HDF5_VERSION_MAJOR }}.${{ env.HDF5_VERSION_PATCH }}
- name: Build NetCDF Fortran
if: steps.cache-netcdf-fortran.outputs.cache-hit != 'true'
uses: ./.github/actions/buildnetcdff
with:
netcdf_fortran_version: ${{ env.NETCDF_FORTRAN_VERSION }}
install_prefix: $HOME/netcdf-fortran
netcdf_c_path: $HOME/netcdf-c
- name: cache-pnetcdf
id: cache-pnetcdf
uses: actions/cache@v4
with:
path: ~/pnetcdf
key: pnetcdf-${{ runner.os }}-${{ env.PNETCDF_VERSION }}-mpich-${{ env.MPICH_VERSION }}
- name: Build PNetCDF
if: steps.cache-pnetcdf.outputs.cache-hit != 'true'
uses: ./.github/actions/buildpnetcdf
with:
pnetcdf_version: ${{ env.PNETCDF_VERSION }}
install_prefix: $HOME/pnetcdf
- name: prep for build
run: |
export LD_LIBRARY_PATH="/home/runner/netcdf-c/lib:/home/runner/mpich/lib:/home/runner/hdf5/lib:/home/runner/netcdf-fortran/lib:/home/runner/pnetcdf/lib:$LD_LIBRARY_PATH"
export ASAN_OPTIONS="detect_odr_violation=0"
export CC=/home/runner/mpich/bin/mpicc
export FC=/home/runner/mpich/bin/mpifort
export PATH=/home/runner/mpich/bin:$PATH
printenv >> $GITHUB_ENV
- name: cmake build
uses: ./.github/actions/parallelio_cmake
with:
parallelio_version: ${{ env.GITHUB_SHA }}
with_pnetcdf: $HOME/pnetcdf
with_netcdf: $HOME/netcdf-c
with_netcdff: $HOME/netcdf-fortran
enable_fortran: True
install_prefix: $HOME/parallelio
extra_cflags: "-g -O0 -fsanitize=address -fno-omit-frame-pointer -static-libasan"
extra_fflags: " -g -O0 -fsanitize=address -fno-omit-frame-pointer -static-libasan"
extra_ldflags: " -static-libasan"
- name: run tests
run: |
cd $GITHUB_WORKSPACE/parallelio-src
make -j check
- name: autotools build
run: |
set -x
gcc --version
autoreconf -i
./configure --enable-fortran --enable-netcdf-integration
make -j check