@@ -162,7 +162,7 @@ jobs:
162162 os : ['ubuntu', 'macos']
163163 mpi : ['mpi']
164164 precision : ['']
165- debug : ['debug ', 'no-debug']
165+ debug : ['reldebug ', 'no-debug']
166166 intel : [true, false]
167167 exclude :
168168 - os : macos
@@ -225,7 +225,7 @@ jobs:
225225 if : matrix.os == 'macos'
226226 run : |
227227 brew update
228- brew upgrade
228+ brew upgrade || true
229229 brew install coreutils python fftw hdf5 gcc@15 boost open-mpi lapack
230230 echo "FC=gfortran-15" >> $GITHUB_ENV
231231 echo "BOOST_INCLUDE=/opt/homebrew/include/" >> $GITHUB_ENV
@@ -245,14 +245,20 @@ jobs:
245245 sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
246246 sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main"
247247 sudo apt-get update
248- sudo apt-get install -y intel-oneapi-compiler-fortran intel-oneapi-mpi intel-oneapi-mpi-devel
248+ sudo apt-get install -y intel-oneapi-compiler-fortran intel-oneapi-compiler-dpcpp-cpp intel-oneapi- mpi intel-oneapi-mpi-devel
249249 # Export only new/changed env vars from setvars.sh.
250250 # `printenv >> $GITHUB_ENV` dumps all vars including shell internals
251251 # with special characters that corrupt GITHUB_ENV parsing.
252252 printenv | sort > /tmp/env_before
253253 source /opt/intel/oneapi/setvars.sh
254254 printenv | sort > /tmp/env_after
255255 diff /tmp/env_before /tmp/env_after | grep '^>' | sed 's/^> //' >> $GITHUB_ENV
256+ echo "FC=ifx" >> $GITHUB_ENV
257+ echo "CC=icx" >> $GITHUB_ENV
258+ echo "CXX=icpx" >> $GITHUB_ENV
259+ echo "MPIFC=mpiifx" >> $GITHUB_ENV
260+ echo "MPICC=mpiicx" >> $GITHUB_ENV
261+ echo "MPICXX=mpiicpx" >> $GITHUB_ENV
256262
257263 - name : Build
258264 run : |
@@ -266,7 +272,7 @@ jobs:
266272 /bin/bash mfc.sh test -v --max-attempts 3 -j $(nproc) $ONLY_CHANGES $TEST_ALL $TEST_PCT
267273 env :
268274 TEST_ALL : ${{ matrix.mpi == 'mpi' && '--test-all' || '' }}
269- TEST_PCT : ${{ matrix.debug == 'debug ' && '-% 20' || '' }}
275+ TEST_PCT : ${{ matrix.debug == 'reldebug ' && '-% 20' || '' }}
270276 ONLY_CHANGES : ${{ github.event_name == 'pull_request' && '--only-changes' || '' }}
271277
272278 self :
@@ -400,11 +406,14 @@ jobs:
400406 echo "Coverage cache: none available — full test suite will run"
401407 fi
402408
403- - name : Build (login node)
409+ - name : Fetch Dependencies
404410 if : matrix.cluster != 'phoenix'
405411 timeout-minutes : 60
406412 run : bash .github/workflows/${{ matrix.cluster }}/build.sh ${{ matrix.device }} ${{ matrix.interface }}
407413
414+ - name : Build
415+ run : bash .github/scripts/submit-slurm-job.sh .github/workflows/common/build.sh ${{ matrix.device }} ${{ matrix.interface }} ${{ matrix.cluster }} ${{ matrix.shard }}
416+
408417 - name : Test
409418 run : bash .github/scripts/submit-slurm-job.sh .github/workflows/common/test.sh ${{ matrix.device }} ${{ matrix.interface }} ${{ matrix.cluster }} ${{ matrix.shard }}
410419
@@ -421,23 +430,29 @@ jobs:
421430 if : always()
422431 id : log
423432 run : |
424- SLUG="test-${{ matrix.device }}-${{ matrix.interface }} "
433+ SHARD_SUFFIX=" "
425434 SHARD="${{ matrix.shard }}"
426435 if [ -n "$SHARD" ]; then
427- SLUG="${SLUG} -$(echo "$SHARD" | sed 's|/|-of-|')"
436+ SHARD_SUFFIX=" -$(echo "$SHARD" | sed 's|/|-of-|')"
428437 fi
429- echo "slug=${SLUG}" >> "$GITHUB_OUTPUT"
438+ echo "build_slug=build-${{ matrix.device }}-${{ matrix.interface }}${SHARD_SUFFIX}" >> "$GITHUB_OUTPUT"
439+ echo "test_slug=test-${{ matrix.device }}-${{ matrix.interface }}${SHARD_SUFFIX}" >> "$GITHUB_OUTPUT"
430440
431441 - name : Print Logs
432442 if : always()
433- run : cat ${{ steps.log.outputs.slug }}.out
443+ run : |
444+ for f in ${{ steps.log.outputs.build_slug }}.out ${{ steps.log.outputs.test_slug }}.out; do
445+ [ -f "$f" ] && echo "=== $f ===" && cat "$f"
446+ done
434447
435448 - name : Archive Logs
436449 uses : actions/upload-artifact@v4
437450 if : matrix.cluster != 'phoenix'
438451 with :
439- name : logs-${{ strategy.job-index }}-${{ steps.log.outputs.slug }}
440- path : ${{ steps.log.outputs.slug }}.out
452+ name : logs-${{ strategy.job-index }}-${{ steps.log.outputs.test_slug }}
453+ path : |
454+ ${{ steps.log.outputs.build_slug }}.out
455+ ${{ steps.log.outputs.test_slug }}.out
441456
442457 case-optimization :
443458 name : " Case Opt | ${{ matrix.cluster_name }} (${{ matrix.device }}-${{ matrix.interface }})"
@@ -486,15 +501,20 @@ jobs:
486501 - name : Clean stale output files
487502 run : rm -f *.out
488503
504+ - name : Fetch Dependencies
505+ if : matrix.cluster != 'phoenix'
506+ run : bash .github/workflows/${{ matrix.cluster }}/build.sh ${{ matrix.device }} ${{ matrix.interface }}
507+
489508 - name : Pre-Build (SLURM)
490509 if : matrix.cluster == 'phoenix'
491510 run : bash .github/scripts/submit-slurm-job.sh .github/scripts/prebuild-case-optimization.sh cpu ${{ matrix.interface }} ${{ matrix.cluster }}
492511
493- - name : Pre- Build (login node)
512+ - name : Build & Run Case-Optimization Tests
494513 if : matrix.cluster != 'phoenix'
495- run : bash .github/scripts/prebuild-case-optimization .sh ${{ matrix.cluster }} ${{ matrix.device }} ${{ matrix.interface }}
514+ run : bash .github/scripts/submit-slurm-job .sh .github/scripts/run_case_optimization.sh ${{ matrix.device }} ${{ matrix.interface }} ${{ matrix.cluster }}
496515
497516 - name : Run Case-Optimization Tests
517+ if : matrix.cluster == 'phoenix'
498518 run : bash .github/scripts/submit-slurm-job.sh .github/scripts/run_case_optimization.sh ${{ matrix.device }} ${{ matrix.interface }} ${{ matrix.cluster }}
499519
500520 - name : Cancel SLURM Jobs
0 commit comments