Skip to content

Commit e5c9a1e

Browse files
authored
Merge pull request #40 from bedroge/ci_2025.06
add EESSI version 2025.06 to CI workflows
2 parents 2dc460b + f845fef commit e5c9a1e

File tree

6 files changed

+59
-35
lines changed

6 files changed

+59
-35
lines changed

.github/workflows/scripts/test_init_scripts.sh

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,16 @@
11
#!/bin/bash
2-
EESSI_VERSION="2023.06"
32
export LMOD_PAGER=cat
43

4+
if [ -z ${EESSI_VERSION} ] || [ ! -d /cvmfs/software.eessi.io/versions/${EESSI_VERSION} ]; then
5+
echo "\$EESSI_VERSION has to be set to a valid EESSI version."
6+
exit 1
7+
fi
8+
9+
if [ -z ${EXPECTED_EASYBUILD_VERSION} ]; then
10+
echo "\$EXPECTED_EASYBUILD_VERSION has to be set to an EasyBuild version that is expected to be available in EESSI version ${EESSI_VERSION}."
11+
exit 1
12+
fi
13+
514
# initialize assert framework
615
if [ ! -d assert.sh ]; then
716
echo "assert.sh not cloned."
@@ -30,15 +39,16 @@ for shell in ${SHELLS[@]}; do
3039
assert_raises 'echo "${MODULE_SECTIONS[1]}" | grep -E "$PATTERN"'
3140
# TEST 3: Check if module overviews second section is the EESSI init module
3241
assert "echo ${MODULE_SECTIONS[4]}" "/cvmfs/software.eessi.io/versions/$EESSI_VERSION/init/modules"
33-
# Test 4: Load Python module and check version
34-
command="$shell -c 'source init/lmod/$shell 2>/dev/null; module load Python/3.10.8-GCCcore-12.2.0; python --version'"
35-
expected="Python 3.10.8"
36-
assert "$command" "$expected"
37-
# Test 5: Load Python module and check path
38-
PYTHON_PATH=$($shell -c "source init/lmod/$shell 2>/dev/null; module load Python/3.10.8-GCCcore-12.2.0; which python")
39-
PATTERN="/cvmfs/software\.eessi\.io/versions/$EESSI_VERSION/software/linux/x86_64/(intel/haswell|amd/zen3)/software/Python/3\.10\.8-GCCcore-12\.2\.0/bin/python"
40-
echo "$PYTHON_PATH" | grep -E "$PATTERN"
41-
assert_raises 'echo "$PYTHON_PATH" | grep -E "$PATTERN"'
42+
# Test 4: Load EasyBuild module and check version
43+
# eb --version outputs: "This is EasyBuild 5.1.1 (framework: 5.1.1, easyblocks: 5.1.1) on host ..."
44+
command="$shell -c 'source init/lmod/$shell 2>/dev/null; module load EasyBuild/${EXPECTED_EASYBUILD_VERSION}; eb --version | cut -d \" \" -f4'"
45+
assert "$command" "$EXPECTED_EASYBUILD_VERSION"
46+
# Test 5: Load EasyBuild module and check path
47+
EASYBUILD_PATH=$($shell -c "source init/lmod/$shell 2>/dev/null; module load EasyBuild/${EXPECTED_EASYBUILD_VERSION}; which eb")
48+
# escape the dots in ${EASYBUILD_VERSION}
49+
PATTERN="/cvmfs/software\.eessi\.io/versions/$EESSI_VERSION/software/linux/x86_64/(intel/haswell|amd/zen3)/software/EasyBuild/${EXPECTED_EASYBUILD_VERSION//./\\.}/bin/eb"
50+
echo "$EASYBUILD_PATH" | grep -E "$PATTERN"
51+
assert_raises 'echo "$EASYBUILD_PATH" | grep -E "$PATTERN"'
4252

4353
#End Test Suite
4454
assert_end "source_eessi_$shell"

.github/workflows/tests_archdetect_nvidia_gpu.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ jobs:
1919
- cc01 # non-existing GPU
2020
EESSI_VERSION:
2121
- '2023.06'
22+
#- '2025.06'
2223
fail-fast: false
2324
steps:
2425
- name: checkout

.github/workflows/tests_eessi_extend_module.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,11 @@ jobs:
1414
matrix:
1515
EESSI_VERSION:
1616
- '2023.06'
17+
#- '2025.06'
1718
steps:
1819
- name: Check out software-layer repository
1920
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
20-
21+
2122
- name: Mount EESSI CernVM-FS repository
2223
uses: eessi/github-action-eessi@v3
2324
with:

.github/workflows/tests_eessi_module.yml

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,11 @@ jobs:
1414
matrix:
1515
EESSI_VERSION:
1616
- '2023.06'
17+
- '2025.06'
1718
steps:
1819
- name: Check out software-layer repository
1920
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
20-
21+
2122
- name: Mount EESSI CernVM-FS repository
2223
uses: cvmfs-contrib/github-action-cvmfs@55899ca74cf78ab874bdf47f5a804e47c198743c # v4.0
2324
with:
@@ -42,7 +43,7 @@ jobs:
4243
env | grep LMOD
4344
module purge
4445
unset MODULEPATH
45-
46+
4647
- name: Test for archdetect_cpu functionality with invalid path
4748
run: |
4849
# Initialise Lmod
@@ -69,6 +70,7 @@ jobs:
6970
matrix:
7071
EESSI_VERSION:
7172
- '2023.06'
73+
- '2025.06'
7274
EESSI_SOFTWARE_SUBDIR_OVERRIDE:
7375
- x86_64/amd/zen3
7476
- x86_64/amd/zen4
@@ -80,7 +82,7 @@ jobs:
8082
steps:
8183
- name: Check out software-layer repository
8284
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
83-
85+
8486
- name: Mount EESSI CernVM-FS repository
8587
uses: cvmfs-contrib/github-action-cvmfs@55899ca74cf78ab874bdf47f5a804e47c198743c # v4.0
8688
with:
@@ -91,19 +93,19 @@ jobs:
9193
- name: Fix EESSI version in init scripts
9294
run: |
9395
sed -i "s/__EESSI_VERSION_DEFAULT__/${{matrix.EESSI_VERSION}}/g" init/eessi_defaults
94-
96+
9597
- name: Test for expected variables match between Lmod init script and original bash script
9698
run: |
9799
# Initialise Lmod
98100
. /cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}/compat/linux/$(uname -m)/usr/share/Lmod/init/bash
99-
101+
100102
# Set our path overrides according to our matrix
101103
export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}}
102104
export EESSI_ACCELERATOR_TARGET_OVERRIDE=${{matrix.EESSI_ACCELERATOR_TARGET_OVERRIDE}}
103-
105+
104106
moduleoutfile="moduleout.txt"
105107
sourceoutfile="sourceout.txt"
106-
108+
107109
# First do (and undo) the Lmod initialisation
108110
export MODULEPATH=init/modules
109111
# Turn on debug output in case we want to take a look
@@ -115,7 +117,7 @@ jobs:
115117
# Store all relevant environment variables
116118
env | grep -E '(^EESSI_|^LMOD_RC|^LMOD_PACKAGE_PATH|^MODULEPATH)' | grep -v EESSI_ARCHDETECT_OPTIONS | sort > "${moduleoutfile}"
117119
module unload EESSI/${{matrix.EESSI_VERSION}}
118-
120+
119121
# We should only have two EESSI_* variables defined (which set the overrides)
120122
if [ "$(env | grep -c '^EESSI')" -ne 2 ]; then
121123
echo "Expected 2 EESSI-related environment variables, but found a different number."
@@ -129,7 +131,7 @@ jobs:
129131
unset EESSI_USE_ARCHSPEC
130132
unset EESSI_USE_ARCHDETECT
131133
env | grep -E '(^EESSI_|^LMOD_RC|^LMOD_PACKAGE_PATH|^MODULEPATH)' | sort > "${sourceoutfile}"
132-
134+
133135
# Now compare the two results
134136
echo ""
135137
echo "Lmod initialisation:"
@@ -141,9 +143,9 @@ jobs:
141143
echo ""
142144
if (diff "${moduleoutfile}" "${sourceoutfile}" > /dev/null); then
143145
echo "Test for checking env variables PASSED"
144-
else
146+
else
145147
echo "Test for checking env variables FAILED" >&2
146-
diff --unified=0 "${moduleoutfile}" "${sourceoutfile}"
148+
diff --unified=0 "${moduleoutfile}" "${sourceoutfile}"
147149
exit 1
148150
fi
149151
@@ -154,6 +156,7 @@ jobs:
154156
matrix:
155157
EESSI_VERSION:
156158
- '2023.06'
159+
#- '2025.06'
157160
EESSI_SOFTWARE_SUBDIR_OVERRIDE:
158161
- none
159162
- x86_64/amd/zen2
@@ -172,19 +175,19 @@ jobs:
172175
steps:
173176
- name: Check out software-layer repository
174177
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
175-
178+
176179
- name: Mount EESSI CernVM-FS repository
177180
uses: cvmfs-contrib/github-action-cvmfs@55899ca74cf78ab874bdf47f5a804e47c198743c # v4.0
178181
with:
179182
cvmfs_config_package: https://github.com/EESSI/filesystem-layer/releases/download/latest/cvmfs-config-eessi_latest_all.deb
180183
cvmfs_http_proxy: DIRECT
181184
cvmfs_repositories: software.eessi.io
182-
185+
183186
- name: Test for identical environment after loading and unloading the EESSI module
184187
run: |
185188
# Initialise Lmod
186189
. /cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}/compat/linux/$(uname -m)/usr/share/Lmod/init/bash
187-
190+
188191
# Set our cpu path overrides according to our matrix
189192
if [[ "${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}}" != "none" ]]; then
190193
export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}}
@@ -201,7 +204,7 @@ jobs:
201204
202205
initial_env_file="initial_env.txt"
203206
module_cycled_file="load_unload_cycle.txt"
204-
207+
205208
# prepare Lmod, resetting it in a roundabout way given we don't want defaults set
206209
export MODULEPATH=init/modules:.github/workflows/modules
207210
module load fake_module
@@ -217,13 +220,13 @@ jobs:
217220
module load EESSI/${{matrix.EESSI_VERSION}}
218221
module unload EESSI/${{matrix.EESSI_VERSION}}
219222
env | grep -v _ModuleTable | sort > "${module_cycled_file}"
220-
223+
221224
# Now compare the two results (do not expose the files, as they contain the full environment!)
222225
if (diff "${initial_env_file}" "${module_cycled_file}" > /dev/null); then
223226
echo "Test for checking env variables PASSED"
224-
else
227+
else
225228
echo "Test for checking env variables FAILED" >&2
226-
diff --unified=0 "${initial_env_file}" "${module_cycled_file}"
229+
diff --unified=0 "${initial_env_file}" "${module_cycled_file}"
227230
exit 1
228231
fi
229232
@@ -245,27 +248,27 @@ jobs:
245248
steps:
246249
- name: Check out software-layer repository
247250
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
248-
251+
249252
- name: Mount EESSI CernVM-FS repository
250253
uses: cvmfs-contrib/github-action-cvmfs@55899ca74cf78ab874bdf47f5a804e47c198743c # v4.0
251254
with:
252255
cvmfs_config_package: https://github.com/EESSI/filesystem-layer/releases/download/latest/cvmfs-config-eessi_latest_all.deb
253256
cvmfs_http_proxy: DIRECT
254257
cvmfs_repositories: software.eessi.io
255-
258+
256259
- name: Make sure we have a sticky EESSI module
257260
run: |
258261
# Initialise Lmod
259262
. /cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}/compat/linux/$(uname -m)/usr/share/Lmod/init/bash
260-
263+
261264
# Make sure we are using the module file from the repository
262265
export MODULEPATH=init/modules
263-
266+
264267
# Set the relevant environment variable and load the EESSI module
265268
export EESSI_MODULE_STICKY=1
266269
module load "EESSI/${{matrix.EESSI_VERSION}}"
267270
module list |& grep "EESSI/${{matrix.EESSI_VERSION}}"
268-
271+
269272
# Purge and check the module is still loaded
270273
module purge
271274
module list |& grep "EESSI/${{matrix.EESSI_VERSION}}"

.github/workflows/tests_init_module.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,14 @@ jobs:
1515
matrix:
1616
EESSI_VERSION:
1717
- '2023.06'
18+
- '2025.06'
1819
EESSI_SOFTWARE_SUBDIR_OVERRIDE:
1920
- x86_64/intel/haswell
21+
include:
22+
- EESSI_VERSION: '2023.06'
23+
EXPECTED_EASYBUILD_VERSION: '5.0.0'
24+
- EESSI_VERSION: '2025.06'
25+
EXPECTED_EASYBUILD_VERSION: '5.1.1'
2026
steps:
2127
- name: Check out software-layer repository
2228
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
@@ -33,7 +39,7 @@ jobs:
3339
for shell in $(ls init/lmod); do
3440
sed -i "s/__EESSI_VERSION_DEFAULT__/${{matrix.EESSI_VERSION}}/g" init/lmod/${shell}
3541
done
36-
42+
3743
- name: Clone assert.sh script
3844
run: git clone https://github.com/lehmannro/assert.sh.git
3945

@@ -45,5 +51,7 @@ jobs:
4551
4652
- name: Run tests for available shells
4753
run: |
54+
export EESSI_VERSION=${{matrix.EESSI_VERSION}}
55+
export EXPECTED_EASYBUILD_VERSION=${{matrix.EXPECTED_EASYBUILD_VERSION}}
4856
.github/workflows/scripts/test_init_scripts.sh "bash" "zsh" "ksh" "fish" "csh"
4957

.github/workflows/tests_scripts.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ jobs:
3434
matrix:
3535
EESSI_VERSION:
3636
- '2023.06'
37+
- '2025.06'
3738
steps:
3839
- name: checkout
3940
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1

0 commit comments

Comments
 (0)