Skip to content

Commit 7191df4

Browse files
committed
Reduce the matrix sizes to CPU families only
1 parent 63c9184 commit 7191df4

1 file changed

Lines changed: 83 additions & 96 deletions

File tree

.github/workflows/test-software.eessi.io.yml

Lines changed: 83 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,42 @@ on:
88
permissions:
99
contents: read # to fetch code (actions/checkout)
1010
env:
11+
# list below should correspond with table @ https://eessi.io/docs/software_layer/cpu_targets/
12+
EESSI_CPU_TARGETS: |
13+
2023.06:
14+
x86_64:
15+
- x86_64/amd/zen2
16+
- x86_64/amd/zen3
17+
- x86_64/amd/zen4
18+
- x86_64/intel/haswell
19+
- x86_64/intel/sapphirerapids
20+
- x86_64/intel/skylake_avx512
21+
- x86_64/intel/icelake
22+
- x86_64/intel/cascadelake
23+
- x86_64/generic
24+
aarch64:
25+
- aarch64/generic
26+
- aarch64/neoverse_n1
27+
- aarch64/neoverse_v1
28+
- aarch64/nvidia/grace
29+
2025.06:
30+
x86_64:
31+
- x86_64/amd/zen2
32+
- x86_64/amd/zen3
33+
- x86_64/amd/zen4
34+
- x86_64/amd/zen5
35+
- x86_64/intel/haswell
36+
- x86_64/intel/sapphirerapids
37+
- x86_64/intel/skylake_avx512
38+
- x86_64/intel/icelake
39+
- x86_64/intel/cascadelake
40+
- x86_64/generic
41+
aarch64:
42+
- aarch64/generic
43+
- aarch64/neoverse_n1
44+
- aarch64/neoverse_v1
45+
- aarch64/nvidia/grace
46+
- aarch64/a64fx
1147
# list below should correspond with table @ https://eessi.io/docs/software_layer/gpu_targets/
1248
EESSI_ACCELERATOR_TARGETS: |
1349
2023.06:
@@ -123,91 +159,16 @@ jobs:
123159
# Arm CPU targets (EESSI 2023.06)
124160
- runs_on: ubuntu-24.04-arm
125161
EESSI_VERSION: 2023.06
126-
EESSI_SOFTWARE_SUBDIR_OVERRIDE: aarch64/generic
127-
- runs_on: ubuntu-24.04-arm
128-
EESSI_VERSION: 2023.06
129-
EESSI_SOFTWARE_SUBDIR_OVERRIDE: aarch64/neoverse_n1
130-
- runs_on: ubuntu-24.04-arm
131-
EESSI_VERSION: 2023.06
132-
EESSI_SOFTWARE_SUBDIR_OVERRIDE: aarch64/neoverse_v1
133-
- runs_on: ubuntu-24.04-arm
134-
EESSI_VERSION: 2023.06
135-
EESSI_SOFTWARE_SUBDIR_OVERRIDE: aarch64/nvidia/grace
136162
# Arm CPU targets (EESSI 2025.06)
137163
- runs_on: ubuntu-24.04-arm
138164
EESSI_VERSION: 2025.06
139-
EESSI_SOFTWARE_SUBDIR_OVERRIDE: aarch64/a64fx
140-
- runs_on: ubuntu-24.04-arm
141-
EESSI_VERSION: 2025.06
142-
EESSI_SOFTWARE_SUBDIR_OVERRIDE: aarch64/generic
143-
- runs_on: ubuntu-24.04-arm
144-
EESSI_VERSION: 2025.06
145-
EESSI_SOFTWARE_SUBDIR_OVERRIDE: aarch64/neoverse_n1
146-
- runs_on: ubuntu-24.04-arm
147-
EESSI_VERSION: 2025.06
148-
EESSI_SOFTWARE_SUBDIR_OVERRIDE: aarch64/neoverse_v1
149-
- runs_on: ubuntu-24.04-arm
150-
EESSI_VERSION: 2025.06
151-
EESSI_SOFTWARE_SUBDIR_OVERRIDE: aarch64/nvidia/grace
152165
# x86_64 CPU targets (EESSI 2023.06)
153166
- runs_on: ubuntu-24.04
154167
EESSI_VERSION: 2023.06
155-
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/amd/zen2
156-
- runs_on: ubuntu-24.04
157-
EESSI_VERSION: 2023.06
158-
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/amd/zen3
159-
- runs_on: ubuntu-24.04
160-
EESSI_VERSION: 2023.06
161-
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/amd/zen4
162-
- runs_on: ubuntu-24.04
163-
EESSI_VERSION: 2023.06
164-
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/intel/haswell
165-
- runs_on: ubuntu-24.04
166-
EESSI_VERSION: 2023.06
167-
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/intel/sapphirerapids
168-
- runs_on: ubuntu-24.04
169-
EESSI_VERSION: 2023.06
170-
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/intel/skylake_avx512
171-
- runs_on: ubuntu-24.04
172-
EESSI_VERSION: 2023.06
173-
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/intel/icelake
174-
- runs_on: ubuntu-24.04
175-
EESSI_VERSION: 2023.06
176-
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/intel/cascadelake
177-
- runs_on: ubuntu-24.04
178-
EESSI_VERSION: 2023.06
179-
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/generic
180168
# x86_64 CPU targets (EESSI 2025.06)
181169
- runs_on: ubuntu-24.04
182170
EESSI_VERSION: 2025.06
183-
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/amd/zen2
184-
- runs_on: ubuntu-24.04
185-
EESSI_VERSION: 2025.06
186-
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/amd/zen3
187-
- runs_on: ubuntu-24.04
188-
EESSI_VERSION: 2025.06
189-
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/amd/zen4
190-
- runs_on: ubuntu-24.04
191-
EESSI_VERSION: 2025.06
192-
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/amd/zen5
193-
- runs_on: ubuntu-24.04
194-
EESSI_VERSION: 2025.06
195-
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/intel/haswell
196-
- runs_on: ubuntu-24.04
197-
EESSI_VERSION: 2025.06
198-
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/intel/sapphirerapids
199-
- runs_on: ubuntu-24.04
200-
EESSI_VERSION: 2025.06
201-
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/intel/skylake_avx512
202-
- runs_on: ubuntu-24.04
203-
EESSI_VERSION: 2025.06
204-
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/intel/icelake
205-
- runs_on: ubuntu-24.04
206-
EESSI_VERSION: 2025.06
207-
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/intel/cascadelake
208-
- runs_on: ubuntu-24.04
209-
EESSI_VERSION: 2025.06
210-
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/generic
171+
211172
runs-on: ${{ matrix.runs_on }}
212173
steps:
213174
- name: Check out software-layer repository
@@ -241,18 +202,46 @@ jobs:
241202
matrix.EESSI_VERSION
242203
)
243204
run: |
244-
export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}}
245-
source /cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}/init/bash
246-
# set $EESSI_CPU_FAMILY to the CPU architecture that corresponds to $EESSI_SOFTWARE_SUBDIR_OVERRIDE (part before the first slash),
247-
# to prevent issues with checks in the Easybuild configuration that use this variable
248-
export EESSI_CPU_FAMILY=${EESSI_SOFTWARE_SUBDIR_OVERRIDE%%/*}
249-
export EESSI_PREFIX=/cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}
250-
export EESSI_OS_TYPE=linux
251-
env | grep ^EESSI | sort
205+
# Do a basic initialisation to set up Lmod and EESSI modules
206+
export EESSI_MODULE_STICKY=1
207+
source /cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}/init/lmod/bash
252208
253-
# first check the CPU-only builds for this CPU target
254-
echo "first run check_missing_installations.sh for CPU-only builds"
255-
for easystack_file in $(EESSI_VERSION=${{matrix.EESSI_VERSION}} .github/workflows/scripts/only_latest_easystacks.sh); do
209+
# From this extract the CPUs we need to loop over
210+
cpu_subdirs=$(echo "${EESSI_CPU_TARGETS}" | yq ".\"${EESSI_VERSION}\".\"${EESSI_CPU_FAMILY}\" | .[]")
211+
if [[ -z "${cpu_subdirs}" ]]; then
212+
echo "ERROR: No CPU subdirs resolved for ${EESSI_VERSION} / ${EESSI_CPU_FAMILY}"
213+
exit 1
214+
fi
215+
216+
for EESSI_SOFTWARE_SUBDIR_OVERRIDE in $cpu_subdirs; do
217+
# purge before we begin so the environment is clean (including EESSI itself)
218+
module --force purge
219+
# now set the CPU arch
220+
export EESSI_SOFTWARE_SUBDIR_OVERRIDE
221+
module load EESSI//${{matrix.EESSI_VERSION}}
222+
echo ""
223+
echo "---------------- CPU TARGET ----------------"
224+
echo "$EESSI_SOFTWARE_SUBDIR_OVERRIDE"
225+
echo "-------------------------------------------"
226+
env | grep ^EESSI | sort
227+
228+
# make sure that Lmod cache file is present for the CPU target
229+
cache_file="${EESSI_SOFTWARE_PATH}/.lmod/cache/spiderT.lua"
230+
if [[ -f "$cache_file" ]]; then
231+
ls -l "$cache_file"
232+
else
233+
echo "ERROR: Lmod cache file is missing for CPU target"
234+
echo "Expected file: $cache_file"
235+
echo "This usually means:"
236+
echo " - Lmod spider cache was not generated for this architecture"
237+
echo " - module environment was not fully initialized"
238+
echo " - CVMFS mount is incomplete or stale"
239+
exit 1
240+
fi
241+
242+
# first check the CPU-only builds for this CPU target
243+
echo "first run check_missing_installations.sh for CPU-only builds"
244+
for easystack_file in $(EESSI_VERSION=${{matrix.EESSI_VERSION}} .github/workflows/scripts/only_latest_easystacks.sh); do
256245
eb_version=$(echo ${easystack_file} | sed 's/.*eb-\([0-9.]*\).*.yml/\1/g')
257246
echo "check missing installations for ${easystack_file} with EasyBuild ${eb_version}..."
258247
module purge
@@ -262,13 +251,13 @@ jobs:
262251
software-layer-scripts/check_missing_installations.sh ${easystack_file}
263252
ec=$?
264253
if [[ ${ec} -ne 0 ]]; then echo "missing installations found for ${easystack_file}!" >&2; exit ${ec}; fi
265-
done
254+
done
266255
267-
# now check the accelerator builds for this CPU target
268-
accelerators=$(echo "${EESSI_ACCELERATOR_TARGETS}" | yq ".\"${{matrix.EESSI_VERSION}}\".\"${EESSI_SOFTWARE_SUBDIR_OVERRIDE}\" // .\"${{matrix.EESSI_VERSION}}\".default | .[]")
269-
if [ -z "${accelerators}" ]; then
256+
# now check the accelerator builds for this CPU target
257+
accelerators=$(echo "${EESSI_ACCELERATOR_TARGETS}" | yq ".\"${{matrix.EESSI_VERSION}}\".\"${EESSI_SOFTWARE_SUBDIR_OVERRIDE}\" // .\"${{matrix.EESSI_VERSION}}\".default | .[]")
258+
if [ -z "${accelerators}" ]; then
270259
echo "no accelerator targets defined for ${EESSI_SOFTWARE_SUBDIR_OVERRIDE}"
271-
else
260+
else
272261
for accel in ${accelerators}; do
273262
module use ${EESSI_SOFTWARE_PATH}/accel/${accel}/modules/all
274263
echo "checking missing installations for accelerator ${accel} using modulepath: ${MODULEPATH}"
@@ -296,10 +285,8 @@ jobs:
296285
done
297286
module unuse ${EESSI_SOFTWARE_PATH}/accel/${accel}/modules/all
298287
done
299-
fi
300-
301-
# make sure that Lmod cache file is present
302-
ls -l ${EESSI_SOFTWARE_PATH}/.lmod/cache/spiderT.lua
288+
fi
289+
done
303290
304291
- name: Test check_missing_installations.sh with missing package (GCC/8.3.0)
305292
run: |

0 commit comments

Comments
 (0)