23
23
if : needs.file-changes.outputs.checkall == 'true'
24
24
needs : file-changes
25
25
strategy :
26
+ fail-fast : false
26
27
matrix :
27
28
os : ['ubuntu', 'macos']
28
29
mpi : ['mpi']
@@ -39,15 +40,12 @@ jobs:
39
40
precision :
40
41
debug : no-debug
41
42
intel : false
42
-
43
- include :
44
43
- os : ubuntu
45
44
mpi : mpi
46
45
precision : single
47
46
debug : no-debug
48
47
intel : false
49
48
50
- fail-fast : false
51
49
continue-on-error : true
52
50
runs-on : ${{ matrix.os }}-latest
53
51
@@ -56,30 +54,32 @@ jobs:
56
54
uses : actions/checkout@v4
57
55
58
56
- name : Setup MacOS
59
- if : matrix.os == 'macos'
60
- run : |
57
+ if : matrix.os == 'macos'
58
+ run : |
61
59
brew install coreutils python cmake fftw hdf5 gcc@14 boost open-mpi
62
60
echo "FC=gfortran-14" >> $GITHUB_ENV
63
61
echo "BOOST_INCLUDE=/opt/homebrew/include/" >> $GITHUB_ENV
64
62
65
63
- name : Setup Ubuntu
66
- if : matrix.os == 'ubuntu' && matrix.intel == false
64
+ if : matrix.os == 'ubuntu' && matrix.intel == false
67
65
run : |
68
- sudo apt update -y
69
- sudo apt install -y cmake gcc g++ python3 python3-dev hdf5-tools \
70
- libfftw3-dev libhdf5-dev openmpi-bin libopenmpi-dev
66
+ sudo apt update -y
67
+ sudo apt install -y cmake gcc g++ python3 python3-dev hdf5-tools \
68
+ libfftw3-dev libhdf5-dev openmpi-bin libopenmpi-dev
71
69
72
70
- name : Setup Ubuntu (Intel)
73
- if : matrix.os == 'ubuntu' && matrix.intel == true
71
+ if : matrix.os == 'ubuntu' && matrix.intel == true
74
72
run : |
75
73
sudo apt update -y
76
74
sudo apt install -y tar wget make cmake python3 python3-dev
77
75
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
78
76
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
79
77
rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
80
- sudo echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
78
+ echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
81
79
sudo apt-get update
82
- sudo apt-get install -y intel-oneapi-common-vars intel-oneapi-compiler-fortran-2022.1.0 intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2022.1.0 intel-oneapi-mkl-2021.4.0 intel-oneapi-mpi-2021.7.1 intel-oneapi-mpi-devel-2021.7.1
80
+ sudo apt-get install -y intel-oneapi-common-vars intel-oneapi-compiler-fortran-2022.1.0 \
81
+ intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2022.1.0 intel-oneapi-mkl-2021.4.0 \
82
+ intel-oneapi-mpi-2021.7.1 intel-oneapi-mpi-devel-2021.7.1
83
83
source /opt/intel/oneapi/setvars.sh
84
84
echo "CXX=$(which icpc)" >> $GITHUB_ENV
85
85
echo "CC=$(which icc)" >> $GITHUB_ENV
@@ -91,14 +91,22 @@ jobs:
91
91
echo "I_MPI_ROOT=/opt/intel/oneapi/mpi/2021.7.1/" >> $GITHUB_ENV
92
92
93
93
- name : Build
94
- run : |
94
+ run : |
95
95
if [ '${{ matrix.intel }}' == 'true' ]; then . /opt/intel/oneapi/setvars.sh; fi
96
- /bin/bash mfc.sh build -j $(nproc) --${{ matrix.debug }} --${{ matrix.mpi }} --${{ matrix.precision }}
96
+ precision_flag=""
97
+ if [ "${{ matrix.precision }}" == "single" ]; then
98
+ precision_flag="--single"
99
+ fi
100
+ /bin/bash mfc.sh build -j $(nproc) --${{ matrix.debug }} --${{ matrix.mpi }} $precision_flag
97
101
98
102
- name : Test
99
- run : |
103
+ run : |
100
104
if [ '${{ matrix.intel }}' == 'true' ]; then . /opt/intel/oneapi/setvars.sh; fi
101
- /bin/bash mfc.sh test --max-attempts 3 -j $(nproc) $OPT1 $OPT2
105
+ precision_flag=""
106
+ if [ "${{ matrix.precision }}" == "single" ]; then
107
+ precision_flag="--single"
108
+ fi
109
+ /bin/bash mfc.sh test --max-attempts 3 -j $(nproc) $OPT1 $OPT2 $precision_flag
102
110
env :
103
111
OPT1 : ${{ matrix.mpi == 'mpi' && '--test-all' || '' }}
104
112
OPT2 : ${{ matrix.debug == 'debug' && '-% 20' || '' }}
@@ -122,7 +130,7 @@ jobs:
122
130
lbl : gt
123
131
precision : single
124
132
runs-on :
125
- group : phoenix
133
+ group : phoenix
126
134
labels : ${{ matrix.lbl }}
127
135
env :
128
136
ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION : node16
@@ -132,24 +140,24 @@ jobs:
132
140
uses : actions/checkout@v4
133
141
134
142
- name : Build & Test
135
- if : matrix.lbl == 'gt'
136
- run : bash .github/workflows/phoenix/submit.sh .github/workflows/phoenix/test.sh ${{ matrix.device }} ${{ matrix.precision }}
143
+ if : matrix.lbl == 'gt'
144
+ run : bash .github/workflows/phoenix/submit.sh .github/workflows/phoenix/test.sh ${{ matrix.device }} ${{ matrix.precision }}
137
145
138
146
- name : Build
139
- if : matrix.lbl == 'frontier'
140
- run : bash .github/workflows/frontier/build.sh
147
+ if : matrix.lbl == 'frontier'
148
+ run : bash .github/workflows/frontier/build.sh
141
149
142
150
- name : Test
143
- if : matrix.lbl == 'frontier'
144
- run : bash .github/workflows/frontier/submit.sh .github/workflows/frontier/test.sh ${{matrix.device}} ${{ matrix.precision }}
151
+ if : matrix.lbl == 'frontier'
152
+ run : bash .github/workflows/frontier/submit.sh .github/workflows/frontier/test.sh ${{ matrix.device }} ${{ matrix.precision }}
145
153
146
154
- name : Print Logs
147
- if : always()
148
- run : cat test-${{ matrix.device }}-${{ matrix.precision }}.out
155
+ if : always()
156
+ run : cat test-${{ matrix.device }}-${{ matrix.precision }}.out
149
157
150
158
- name : Archive Logs
151
159
uses : actions/upload-artifact@v4
152
- if : always()
160
+ if : always()
153
161
with :
154
162
name : logs-${{ strategy.job-index }}-${{ matrix.device }}-${{ matrix.precision }}
155
163
path : test-${{ matrix.device }}-${{ matrix.precision }}.out
0 commit comments