88permissions :
99 contents : read # to fetch code (actions/checkout)
1010env :
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