6868 with :
6969 filters : " .github/file-filter.yml"
7070
71+ github :
72+ name : Github
73+ if : needs.file-changes.outputs.checkall == 'true'
74+ needs : [lint-gate, file-changes]
75+ strategy :
76+ matrix :
77+ os : ['ubuntu', 'macos']
78+ mpi : ['mpi']
79+ precision : ['']
80+ debug : ['debug', 'no-debug']
81+ intel : [true, false]
82+ exclude :
83+ - os : macos
84+ intel : true
85+
86+ include :
87+ - os : ubuntu
88+ mpi : no-mpi
89+ precision : single
90+ debug : no-debug
91+ intel : false
92+
93+ fail-fast : false
94+ continue-on-error : true
95+ runs-on : ${{ matrix.os }}-latest
96+
97+ steps :
98+ - name : Clone
99+ uses : actions/checkout@v4
100+
101+ - name : Restore Build Cache
102+ uses : actions/cache@v4
103+ with :
104+ path : build
105+ key : mfc-build-${{ matrix.os }}-${{ matrix.mpi }}-${{ matrix.debug }}-${{ matrix.precision }}-${{ matrix.intel }}-${{ hashFiles('CMakeLists.txt', 'toolchain/dependencies/**', 'toolchain/cmake/**', 'src/**/*.fpp', 'src/**/*.f90') }}
106+
107+ - name : Setup MacOS
108+ if : matrix.os == 'macos'
109+ run : |
110+ brew update
111+ brew upgrade
112+ brew install coreutils python fftw hdf5 gcc@15 boost open-mpi lapack
113+ echo "FC=gfortran-15" >> $GITHUB_ENV
114+ echo "BOOST_INCLUDE=/opt/homebrew/include/" >> $GITHUB_ENV
115+
116+ - name : Setup Ubuntu
117+ if : matrix.os == 'ubuntu' && matrix.intel == false
118+ run : |
119+ sudo apt update -y
120+ sudo apt install -y cmake gcc g++ python3 python3-dev hdf5-tools \
121+ libfftw3-dev libhdf5-dev openmpi-bin libopenmpi-dev \
122+ libblas-dev liblapack-dev
123+
124+ - name : Setup Ubuntu (Intel)
125+ if : matrix.os == 'ubuntu' && matrix.intel == true
126+ run : |
127+ wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
128+ sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
129+ sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main"
130+ sudo apt-get update
131+ sudo apt-get install -y intel-oneapi-compiler-fortran intel-oneapi-mpi intel-oneapi-mpi-devel
132+ source /opt/intel/oneapi/setvars.sh
133+ printenv >> $GITHUB_ENV
134+
135+ - name : Set up Python 3.14
136+ uses : actions/setup-python@v5
137+ with :
138+ python-version : ' 3.14'
139+
140+ - name : Build
141+ run : |
142+ /bin/bash mfc.sh test -v --dry-run -j $(nproc) --${{ matrix.debug }} --${{ matrix.mpi }} --${{ matrix.precision }} $TEST_ALL
143+ env :
144+ TEST_ALL : ${{ matrix.mpi == 'mpi' && '--test-all' || '' }}
145+
146+ - name : Test
147+ run : |
148+ /bin/bash mfc.sh test -v --max-attempts 3 -j $(nproc) $TEST_ALL $TEST_PCT
149+ env :
150+ TEST_ALL : ${{ matrix.mpi == 'mpi' && '--test-all' || '' }}
151+ TEST_PCT : ${{ matrix.debug == 'debug' && '-% 20' || '' }}
152+
71153 self :
72154 name : " ${{ matrix.cluster_name }} (${{ matrix.device }}${{ matrix.interface != 'none' && format('-{0}', matrix.interface) || '' }}${{ matrix.shard != '' && format(' [{0}]', matrix.shard) || '' }})"
73155 if : github.repository == 'MFlowCode/MFC' && needs.file-changes.outputs.checkall == 'true' && github.event.pull_request.draft != true
@@ -77,7 +159,23 @@ jobs:
77159 strategy :
78160 matrix :
79161 include :
80- # Frontier (ORNL) — CCE only
162+ # Phoenix (GT) — build+test combined in SLURM job
163+ - runner : ' gt'
164+ cluster : ' phoenix'
165+ cluster_name : ' Georgia Tech | Phoenix'
166+ device : ' gpu'
167+ interface : ' acc'
168+ - runner : ' gt'
169+ cluster : ' phoenix'
170+ cluster_name : ' Georgia Tech | Phoenix'
171+ device : ' gpu'
172+ interface : ' omp'
173+ - runner : ' gt'
174+ cluster : ' phoenix'
175+ cluster_name : ' Georgia Tech | Phoenix'
176+ device : ' cpu'
177+ interface : ' none'
178+ # Frontier (ORNL) — CCE
81179 - runner : ' frontier'
82180 cluster : ' frontier'
83181 cluster_name : ' Oak Ridge | Frontier'
@@ -107,6 +205,17 @@ jobs:
107205 cluster_name : ' Oak Ridge | Frontier'
108206 device : ' cpu'
109207 interface : ' none'
208+ # Frontier AMD — build on login node, test via SLURM
209+ - runner : ' frontier'
210+ cluster : ' frontier_amd'
211+ cluster_name : ' Oak Ridge | Frontier (AMD)'
212+ device : ' gpu'
213+ interface : ' omp'
214+ - runner : ' frontier'
215+ cluster : ' frontier_amd'
216+ cluster_name : ' Oak Ridge | Frontier (AMD)'
217+ device : ' cpu'
218+ interface : ' none'
110219 runs-on :
111220 group : phoenix
112221 labels : ${{ matrix.runner }}
0 commit comments