11name : develop
22
3- # Controls when the action will run.
3+ # Controls when the action will run.
44on :
55 pull_request :
66 branches : [develop,release/*]
7+ types :
8+ - opened
9+ - synchronize
10+ - reopened
11+ - ready_for_review
712 workflow_dispatch :
8-
13+
914jobs :
15+ is_draft :
16+ name : Check if PR is a draft
17+ if : github.event.pull_request.draft == true
18+
19+ runs-on : ubuntu-latest
20+ steps :
21+ - name : Check if PR is a draft
22+ run : echo "This PR is a draft"
23+
1024 linting :
1125 name : " Flint"
26+ if : github.event.pull_request.draft != true
1227 runs-on : ubuntu-20.04
1328 steps :
1429 - name : Setup env.
1530 run : |
1631 sudo apt-get update && sudo apt-get install -yq python3-dev python3-pip python3-tk
1732 pip install nobvisual==0.2.0 flinter==0.4.0
1833 - name : Checkout
19- uses : actions/checkout@v3
34+ uses : actions/checkout@v4
2035 with :
2136 fetch-depth : 1
2237 - name : Lint
2338 run : |
2439 flint score src/ -d 10 -r flinter_rc.yml | tee flint.txt
2540 score=$(awk '$1==0{print $3}' flint.txt)
26- if (( $(echo "$score < 8.13 " |bc -l) )) ; then
41+ if (( $(echo "$score < 8.06 " |bc -l) )) ; then
2742 exit 1
2843 fi
2944 - name : Archive linter report
30- uses : actions/upload-artifact@v3
45+ uses : actions/upload-artifact@v4
3146 with :
3247 name : flint-report
3348 path : flint.txt
3449 retention-days : 5
3550 GNU :
51+ if : github.event.pull_request.draft != true
3652 needs : linting
3753 runs-on : ${{matrix.os}}
3854 strategy :
5874 include :
5975 - os : ubuntu-20.04
6076 setup-env : |
61- sudo apt-get update && sudo apt-get install -y openmpi-bin libopenmpi-dev autoconf automake autotools-dev libopenblas-dev make git m4 python3 cmake-curses-gui
77+ sudo apt-get update && sudo apt-get install -y openmpi-bin libopenmpi-dev autoconf automake autotools-dev libopenblas-dev make git m4 python3 cmake-curses-gui
6278 - os : macos-13
6379 setup-env : export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 && brew install openmpi && brew install automake && brew install gcc@11 && brew install gcc@12
6480 env :
7490 run : ${{ matrix.setup-env }}
7591 - name : Cache pFUnit
7692 id : cache-pfunit
77- uses : actions/cache@v3
93+ uses : actions/cache@v4
7894 with :
7995 path : ~/pkg/pfunit
8096 key : pfunit-${{ runner.os }}-${{ matrix.os }}-${{ matrix.compiler }}
@@ -96,14 +112,14 @@ jobs:
96112 + error stop '*** Encountered 1 or more failures/errors during testing. ***'
97113 #endif
98114 end if
99-
115+
100116 _ACEOF
101117 git apply pfunit_error_stop.patch && mkdir b && cd b
102118 cmake -DCMAKE_INSTALL_PREFIX=${HOME}/pkg/pfunit ..
103119 make -j$(nproc) && make install && cd ../../
104120 - name : Cache json-fortran
105121 id : cache-json-fortran
106- uses : actions/cache@v3
122+ uses : actions/cache@v4
107123 with :
108124 path : ~/pkg/json-fortran
109125 key : json-fortran-${{ runner.os }}-${{ matrix.os }}-${{ matrix.compiler }}
@@ -121,36 +137,36 @@ jobs:
121137 echo "PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:${HOME}/pkg/json-fortran/lib/pkgconfig/" >> $GITHUB_ENV
122138 echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${HOME}/pkg/json-fortran/lib/" >> $GITHUB_ENV
123139 - name : Checkout
124- uses : actions/checkout@v3
140+ uses : actions/checkout@v4
125141 with :
126142 fetch-depth : 1
127143 - name : Build (CPU backend)
128144 if : matrix.backend == 'cpu'
129145 run : |
130146 echo $PKG_CONFIG_PATH
131- ./regen.sh
147+ ./regen.sh
132148 ./configure FC=${FC} FCFLAGS="-O2 -pedantic -std=f2008" --with-pfunit=${HOME}/pkg/pfunit/PFUNIT-4.4 --enable-real=${RP}
133149 make -j$(nproc)
134- - name : Build (CUDA backend)
150+ - name : Build (CUDA backend)
135151 if : matrix.backend == 'cuda'
136152 run : |
137153 sudo apt-get install -y nvidia-cuda-toolkit
138- ./regen.sh
154+ ./regen.sh
139155 ./configure FC=${FC} FCFLAGS="-O2 -pedantic -std=f2008" --enable-real=${RP} --with-cuda=/usr
140156 make -j$(nproc)
141- - name : Build (HIP backend)
157+ - name : Build (HIP backend)
142158 if : matrix.backend == 'HIP'
143159 run : |
144160 wget -q -O - https://repo.radeon.com/rocm/rocm.gpg.key | sudo apt-key add -
145161 echo 'deb [arch=amd64] https://repo.radeon.com/rocm/apt/debian/ ubuntu main' | sudo tee /etc/apt/sources.list.d/rocm.list
146162 sudo apt-get update && sudo apt-get install -y rocm-dev
147- ./regen.sh
148- ./configure FC=${FC} FCFLAGS="-O2 -pedantic -std=f2008" HIP_HIPCC_FLAGS="-O2 -fPIE" --enable-real=${RP} --with-hip=/opt/rocm-6.0.0
163+ ./regen.sh
164+ ./configure FC=${FC} FCFLAGS="-O2 -pedantic -std=f2008" HIP_HIPCC_FLAGS="-O2 -fPIE" --enable-real=${RP} --with-hip=/opt/rocm-6.1.2
149165 make -j$(nproc)
150166 - name : Build (OpenCL backend)
151167 if : matrix.backend == 'opencl'
152168 run : |
153- ./regen.sh
169+ ./regen.sh
154170 ./configure FC=${FC} FCFLAGS="-O2 -pedantic -std=f2008" --enable-real=${RP} --with-opencl
155171 make -j$(nproc)
156172 - name : Check
@@ -190,7 +206,7 @@ jobs:
190206 mkdir releng
191207 tar xf neko-*.tar.gz -C releng
192208 cd releng/neko-*
193- ./configure FC=${FC} FCFLAGS="-fPIE" --enable-real=${RP} HIP_HIPCC_FLAGS="-O2 -fPIE" --with-hip=/opt/rocm-6.0.0
209+ ./configure FC=${FC} FCFLAGS="-fPIE" --enable-real=${RP} HIP_HIPCC_FLAGS="-O2 -fPIE" --with-hip=/opt/rocm-6.1.2
194210 make -j $(nproc)
195211 - name : Dist (OpenCL backend)
196212 if : matrix.backend == 'opencl'
@@ -201,8 +217,9 @@ jobs:
201217 cd releng/neko-*
202218 ./configure FC=${FC} --enable-real=${RP} --with-opencl
203219 make -j $(nproc)
204-
220+
205221 Intel :
222+ if : github.event.pull_request.draft != true
206223 needs : linting
207224 runs-on : ${{matrix.os}}
208225 strategy :
@@ -218,7 +235,8 @@ jobs:
218235 wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null && echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list && sudo apt-get update -y && sudo apt install -y --no-install-recommends intel-oneapi-compiler-fortran intel-oneapi-mpi intel-oneapi-mpi-devel intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic
219236 source /opt/intel/oneapi/setvars.sh
220237 sudo apt install -y autoconf automake autotools-dev libopenblas-dev make git m4 python3 ca-certificates cmake
221- export PATH=/opt/intel/oneapi/compiler/2024.0/bin:${PATH}
238+ INTEL_PATH=$(find /opt/intel/oneapi/compiler/ -name "${FC}" -type f | xargs dirname)
239+ export PATH=$INTEL_PATH:${PATH}
222240 printenv >> $GITHUB_ENV
223241 env :
224242 CC : icc
@@ -230,7 +248,7 @@ jobs:
230248 run : ${{ matrix.setup-env }}
231249 - name : Cache json-fortran
232250 id : cache-json-fortran
233- uses : actions/cache@v3
251+ uses : actions/cache@v4
234252 with :
235253 path : ~/pkg/json-fortran
236254 key : json-fortran-${{ runner.os }}-${{ matrix.os }}-${{ matrix.compiler }}
@@ -248,16 +266,17 @@ jobs:
248266 echo "PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:${HOME}/pkg/json-fortran/lib/pkgconfig/" >> $GITHUB_ENV
249267 echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${HOME}/pkg/json-fortran/lib/" >> $GITHUB_ENV
250268 - name : Checkout
251- uses : actions/checkout@v3
269+ uses : actions/checkout@v4
252270 with :
253271 fetch-depth : 1
254272 - name : Build
255273 run : |
256274 echo $PKG_CONFIG_PATH
257275 ./regen.sh
258- ./configure FC=${FC} CC=${CC} MPIFC"=mpiifort -fc=${FC}" --enable-real=${RP}
276+ ./configure FC=${FC} CC=${CC} MPIFC"=mpiifort -fc=${FC}" --enable-real=${RP}
259277 make FCFLAGS="-O2 -stand f08 -warn errors `pkg-config --cflags json-fortran`" -j$(nproc)
260278 NVIDIA :
279+ if : github.event.pull_request.draft != true
261280 needs : linting
262281 runs-on : ${{matrix.os}}
263282 strategy :
@@ -269,7 +288,7 @@ jobs:
269288 precision : [dp]
270289 include :
271290 - os : ubuntu-20.04
272- setup-env : sudo apt-get update && sudo apt-get install -y autoconf automake autotools-dev make git m4 libopenblas-dev && curl https://developer.download.nvidia.com/hpc-sdk/ubuntu/DEB-GPG-KEY-NVIDIA-HPC-SDK | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg && echo 'deb [signed-by=/usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg] https://developer.download.nvidia.com/hpc-sdk/ubuntu/amd64 /' | sudo tee /etc/apt/sources.list.d/nvhpc.list && sudo apt-get update -y && sudo apt-get install -y nvhpc-23-7 && NVARCH=`uname -s`_`uname -m`; export NVARCH && NVCOMPILERS=/opt/nvidia/hpc_sdk; export NVCOMPILERS && PATH=$NVCOMPILERS/$NVARCH/23.7 /compilers/bin:$PATH; export PATH && export PATH=$NVCOMPILERS/$NVARCH/23.7 /comm_libs/mpi/bin:$PATH && printenv >> $GITHUB_ENV
291+ setup-env : sudo apt-get update && sudo apt-get install -y autoconf automake autotools-dev make git m4 libopenblas-dev && curl https://developer.download.nvidia.com/hpc-sdk/ubuntu/DEB-GPG-KEY-NVIDIA-HPC-SDK | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg && echo 'deb [signed-by=/usr/share/keyrings/nvidia-hpcsdk-archive-keyring.gpg] https://developer.download.nvidia.com/hpc-sdk/ubuntu/amd64 /' | sudo tee /etc/apt/sources.list.d/nvhpc.list && sudo apt-get update -y && sudo apt-get install -y nvhpc-24-3 && NVARCH=`uname -s`_`uname -m`; export NVARCH && NVCOMPILERS=/opt/nvidia/hpc_sdk; export NVCOMPILERS && PATH=$NVCOMPILERS/$NVARCH/24.3 /compilers/bin:$PATH; export PATH && export PATH=$NVCOMPILERS/$NVARCH/24.3 /comm_libs/mpi/bin:$PATH && printenv >> $GITHUB_ENV
273292 env :
274293 CC : gcc
275294 FC : ${{ matrix.compiler }}
@@ -285,7 +304,7 @@ jobs:
285304 run : ${{ matrix.setup-env }}
286305 - name : Cache json-fortran
287306 id : cache-json-fortran
288- uses : actions/cache@v3
307+ uses : actions/cache@v4
289308 with :
290309 path : ~/pkg/json-fortran
291310 key : json-fortran-${{ runner.os }}-${{ matrix.os }}-${{ matrix.compiler }}
@@ -303,7 +322,7 @@ jobs:
303322 echo "PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:${HOME}/pkg/json-fortran/lib/pkgconfig/" >> $GITHUB_ENV
304323 echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${HOME}/pkg/json-fortran/lib/" >> $GITHUB_ENV
305324 - name : Checkout
306- uses : actions/checkout@v3
325+ uses : actions/checkout@v4
307326 with :
308327 fetch-depth : 1
309328 - name : Build (CPU backend)
@@ -318,9 +337,32 @@ jobs:
318337 run : |
319338 git apply patches/nvhpc_bge.patch
320339 ./regen.sh
321- ./configure FC=${FC} FCFLAGS="-O3" --enable-real=${RP} --with-cuda=/opt/nvidia/hpc_sdk/Linux_x86_64/23.7 /cuda/
340+ ./configure FC=${FC} FCFLAGS="-O3" --enable-real=${RP} --with-cuda=/opt/nvidia/hpc_sdk/Linux_x86_64/24.3 /cuda/
322341 make
342+ - name : Dist (CPU backend)
343+ if : matrix.backend == 'cpu'
344+ run : |
345+ git stash
346+ make dist
347+ mkdir releng
348+ tar xf neko-*.tar.gz -C releng
349+ cd releng/neko-*
350+ patch -u src/common/signal.f90 -i patches/nvhpc_bge.patch
351+ ./configure FC=${FC} FCFLAGS="-O3" --enable-real=${RP}
352+ make -j $(nproc)
353+ - name : Dist (CUDA backend)
354+ if : matrix.backend == 'cuda'
355+ run : |
356+ git stash
357+ make dist
358+ mkdir releng
359+ tar xf neko-*.tar.gz -C releng
360+ cd releng/neko-*
361+ patch -u src/common/signal.f90 -i patches/nvhpc_bge.patch
362+ ./configure FC=${FC} FCFLAGS="-O3" --enable-real=${RP} --with-cuda=/opt/nvidia/hpc_sdk/Linux_x86_64/24.3/cuda/
363+ make -j $(nproc)
323364 ReFrame :
365+ if : github.event.pull_request.draft != true
324366 needs : GNU
325367 runs-on : ubuntu-20.04
326368 strategy :
@@ -340,10 +382,10 @@ jobs:
340382 - name : Setup env.
341383 run : |
342384 sudo apt-get update && sudo apt-get install -y openmpi-bin libopenmpi-dev autoconf automake autotools-dev libopenblas-dev make git m4 python3
343- pip install reframe-hpc
385+ pip install reframe-hpc
344386 - name : Cache json-fortran
345387 id : cache-json-fortran
346- uses : actions/cache@v3
388+ uses : actions/cache@v4
347389 with :
348390 path : ~/pkg/json-fortran
349391 key : json-fortran-${{ runner.os }}-${{ matrix.os }}-${{ matrix.compiler }}
@@ -364,7 +406,7 @@ jobs:
364406 run : |
365407 reframe --detect-host-topology
366408 - name : Checkout
367- uses : actions/checkout@v3
409+ uses : actions/checkout@v4
368410 with :
369411 fetch-depth : 1
370412 - name : Regression tests
0 commit comments