Skip to content

Commit 7c1bd0b

Browse files
authored
Merge pull request EESSI#99 from ocaisa/test_build_eessi_extend
Run a quick rebuild to test EESSI-extend and eb_hooks.py in CI
2 parents 5a21224 + 5333e3d commit 7c1bd0b

1 file changed

Lines changed: 56 additions & 23 deletions

File tree

.github/workflows/tests_eessi_extend_module.yml

Lines changed: 56 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,20 @@ jobs:
1212
strategy:
1313
fail-fast: false
1414
matrix:
15-
EESSI_VERSION:
16-
- '2023.06'
17-
- '2025.06'
15+
include:
16+
- eessi_version: '2023.06'
17+
rebuild_software: "BCFtools-1.18-GCC-12.3.0.eb"
18+
- eessi_version: '2025.06'
19+
rebuild_software: "make-4.4.1-GCCcore-13.3.0.eb"
20+
1821
steps:
1922
- name: Check out software-layer repository
2023
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
2124

2225
- name: Mount EESSI CernVM-FS repository
2326
uses: eessi/github-action-eessi@v3
2427
with:
25-
eessi_stack_version: ${{matrix.EESSI_VERSION}}
28+
eessi_stack_version: ${{matrix.eessi_version}}
2629
use_eessi_module: true
2730

2831
- name: Install the EESSI-extend shipped with the repository
@@ -38,7 +41,7 @@ jobs:
3841
check_disallowed_env_prefix EASYBUILD_
3942
4043
# Load the EESSI module
41-
module load EESSI/${{matrix.EESSI_VERSION}}
44+
module load EESSI/${{matrix.eessi_version}}
4245
check_disallowed_env_prefix EASYBUILD_
4346
4447
# Load EasyBuild to install EESSI-extend
@@ -50,8 +53,14 @@ jobs:
5053
5154
# Verify that we can pick the installed version up
5255
module use $MY_INSTALLATION_PATH/modules/all
53-
module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild
56+
module load EESSI-extend/${{matrix.eessi_version}}-easybuild
5457
echo $EBROOTEESSIMINEXTEND | grep $MY_INSTALLATION_PATH || { echo "ERROR: Installed version of EESSI-extend not picked up (loaded $EBROOTEESSIMINEXTEND)" >&2; exit 1; }
58+
# Do a test rebuild (with default and local hooks)
59+
echo "Testing a rebuild using the hooks shipped with EESSI"
60+
eb --rebuild ${{matrix.rebuild_software}}
61+
echo "Testing a rebuild using the hooks in the current branch"
62+
eb --rebuild --hooks=./eb_hooks.py ${{matrix.rebuild_software}}
63+
# Proceed with unload and checking the environment variables
5564
module unload EESSI-extend
5665
# That should have unset all EasyBuild envvars (including EASYBUILD_PREFIX)
5766
check_disallowed_env_prefix EASYBUILD_
@@ -68,19 +77,20 @@ jobs:
6877
6978
# Let's start from a clean slate
7079
module --force purge
71-
module load EESSI/${{matrix.EESSI_VERSION}}
80+
module load EESSI/${{matrix.eessi_version}}
7281
# Access the installed EESSI-extend
7382
module use "$MY_INSTALLATION_PATH"/modules/all
7483
check_disallowed_env_prefix EASYBUILD_
7584
7685
# Configure for CVMFS install
86+
echo "Checking EESSI-extend CVMFS install"
7787
export EESSI_CVMFS_INSTALL=1
78-
module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild
88+
module load EESSI-extend/${{matrix.eessi_version}}-easybuild
7989
# check some common EasyBuild settings
8090
check_env_var "EASYBUILD_READ_ONLY_INSTALLDIR" "1"
8191
check_env_var "EASYBUILD_ALLOW_LOADED_MODULES" "EasyBuild,EESSI-extend"
8292
check_env_var "EASYBUILD_SYSROOT" "$EESSI_EPREFIX"
83-
check_env_var "EASYBUILD_HOOKS" "/cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}/init/easybuild/eb_hooks.py"
93+
check_env_var "EASYBUILD_HOOKS" "/cvmfs/software.eessi.io/versions/${{matrix.eessi_version}}/init/easybuild/eb_hooks.py"
8494
check_env_var "EASYBUILD_RPATH" "1"
8595
check_env_var "EASYBUILD_FILTER_ENV_VARS" "LD_LIBRARY_PATH"
8696
# check some specific ones
@@ -92,7 +102,7 @@ jobs:
92102
check_env_var "EASYBUILD_FAIL_ON_MOD_FILES_GCCCORE" "1"
93103
check_env_var "EASYBUILD_LOCAL_VAR_NAMING_CHECK" "error"
94104
# Check some EESSI version specific settings
95-
if [[ "${{ matrix.EESSI_VERSION }}" != "2023.06" ]]; then
105+
if [[ "${{ matrix.eessi_version }}" != "2023.06" ]]; then
96106
check_env_var "EASYBUILD_PREFER_PYTHON_SEARCH_PATH" "EBPYTHONPREFIXES"
97107
check_env_var "EASYBUILD_MODULE_SEARCH_PATH_HEADERS" "include_paths"
98108
check_env_var "EASYBUILD_SEARCH_PATH_CPP_HEADERS" "flags"
@@ -105,8 +115,9 @@ jobs:
105115
unset EESSI_CVMFS_INSTALL
106116
107117
# Now configure for a site
118+
echo "Checking EESSI-extend site install"
108119
export EESSI_SITE_INSTALL=1
109-
module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild
120+
module load EESSI-extend/${{matrix.eessi_version}}-easybuild
110121
# check some specific envvars
111122
check_env_var "EASYBUILD_INSTALLPATH" "$EESSI_SITE_SOFTWARE_PATH"
112123
check_env_var "EASYBUILD_UMASK" "022"
@@ -118,8 +129,9 @@ jobs:
118129
unset EESSI_SITE_INSTALL
119130
120131
# Now for a project
132+
echo "Checking EESSI-extend project install"
121133
export EESSI_PROJECT_INSTALL="$MY_INSTALLATION_PATH"
122-
module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild
134+
module load EESSI-extend/${{matrix.eessi_version}}-easybuild
123135
# check some specific envvars
124136
export EXPECTED_INSTALLATION_PATH="$MY_INSTALLATION_PATH/versions/$EESSI_VERSION/software/linux/$EESSI_SOFTWARE_SUBDIR"
125137
check_env_var "EASYBUILD_INSTALLPATH" "$EXPECTED_INSTALLATION_PATH"
@@ -133,9 +145,10 @@ jobs:
133145
unset EESSI_PROJECT_INSTALL
134146
135147
# Now for a user
148+
echo "Checking EESSI-extend user install"
136149
export EESSI_USER_INSTALL="$MY_INSTALLATION_PATH/$USER"
137150
mkdir -p $EESSI_USER_INSTALL # must exist
138-
module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild
151+
module load EESSI-extend/${{matrix.eessi_version}}-easybuild
139152
# check some specific envvars
140153
export EXPECTED_INSTALLATION_PATH="$MY_INSTALLATION_PATH/$USER/versions/$EESSI_VERSION/software/linux/$EESSI_SOFTWARE_SUBDIR"
141154
check_env_var "EASYBUILD_INSTALLPATH" "$EXPECTED_INSTALLATION_PATH"
@@ -163,66 +176,86 @@ jobs:
163176
# Let's start from a clean slate
164177
module --force purge
165178
export EESSI_ACCELERATOR_TARGET_OVERRIDE=$STORED_EESSI_ACCELERATOR_TARGET_OVERRIDE
166-
module load EESSI/${{matrix.EESSI_VERSION}}
179+
module load EESSI/${{matrix.eessi_version}}
167180
# Access the installed EESSI-extend
168181
module use "$MY_INSTALLATION_PATH"/modules/all
169182
check_disallowed_env_prefix EASYBUILD_
170183
171184
# Configure for CVMFS install
185+
echo "Checking EESSI-extend CVMFS install"
172186
export EESSI_CVMFS_INSTALL=1
173-
module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild
187+
module load EESSI-extend/${{matrix.eessi_version}}-easybuild
174188
check_env_var "EASYBUILD_INSTALLPATH" "$EESSI_SOFTWARE_PATH" # installation path should be the same unless we ask for an explicit GPU installation
189+
check_env_var "EESSI_ACCELERATOR_TARGET" "$STORED_EESSI_ACCELERATOR_TARGET_OVERRIDE"
175190
check_env_var "EASYBUILD_CUDA_COMPUTE_CAPABILITIES" "$STORED_CUDA_CC"
191+
module unload EESSI-extend
176192
export EESSI_ACCELERATOR_INSTALL=1
177-
module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild # reload for an actual GPU installation
193+
module load EESSI-extend/${{matrix.eessi_version}}-easybuild # reload for an actual GPU installation
178194
check_env_var "EASYBUILD_INSTALLPATH" "${EESSI_SOFTWARE_PATH}/${EESSI_ACCELERATOR_TARGET_OVERRIDE}"
195+
check_env_var "EESSI_ACCELERATOR_TARGET" "$STORED_EESSI_ACCELERATOR_TARGET_OVERRIDE"
196+
check_env_var "EASYBUILD_CUDA_COMPUTE_CAPABILITIES" "$STORED_CUDA_CC"
179197
# unload and make sure the environment is clean again
180198
module unload EESSI-extend
181199
check_disallowed_env_prefix EASYBUILD_
182200
unset EESSI_ACCELERATOR_INSTALL
183201
unset EESSI_CVMFS_INSTALL
184202
185203
# Now configure for a site
204+
echo "Checking EESSI-extend site install"
186205
export EESSI_SITE_INSTALL=1
187-
module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild
206+
module load EESSI-extend/${{matrix.eessi_version}}-easybuild
188207
check_env_var "EASYBUILD_INSTALLPATH" "$EESSI_SITE_SOFTWARE_PATH" # installation path should be the same unless we ask for an explicit GPU installation
208+
check_env_var "EESSI_ACCELERATOR_TARGET" "$STORED_EESSI_ACCELERATOR_TARGET_OVERRIDE"
189209
check_env_var "EASYBUILD_CUDA_COMPUTE_CAPABILITIES" "$STORED_CUDA_CC"
210+
module unload EESSI-extend
190211
export EESSI_ACCELERATOR_INSTALL=1
191-
module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild # reload for an actual GPU installation
212+
module load EESSI-extend/${{matrix.eessi_version}}-easybuild # reload for an actual GPU installation
192213
check_env_var "EASYBUILD_INSTALLPATH" "${EESSI_SITE_SOFTWARE_PATH}/${EESSI_ACCELERATOR_TARGET_OVERRIDE}"
214+
check_env_var "EESSI_ACCELERATOR_TARGET" "$STORED_EESSI_ACCELERATOR_TARGET_OVERRIDE"
215+
check_env_var "EASYBUILD_CUDA_COMPUTE_CAPABILITIES" "$STORED_CUDA_CC"
193216
# unload and make sure the environment is clean again
194217
module unload EESSI-extend
195218
check_disallowed_env_prefix EASYBUILD_
196219
unset EESSI_ACCELERATOR_INSTALL
197220
unset EESSI_SITE_INSTALL
198221
199222
# Now for a project
223+
echo "Checking EESSI-extend project install"
200224
export EESSI_PROJECT_INSTALL="$MY_INSTALLATION_PATH"
201225
export EXPECTED_INSTALLATION_PATH="$MY_INSTALLATION_PATH/versions/$EESSI_VERSION/software/linux/$EESSI_SOFTWARE_SUBDIR"
202-
module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild
226+
module load EESSI-extend/${{matrix.eessi_version}}-easybuild
203227
check_env_var "EASYBUILD_INSTALLPATH" "$EXPECTED_INSTALLATION_PATH" # installation path should be the same unless we ask for an explicit GPU installation
228+
check_env_var "EESSI_ACCELERATOR_TARGET" "$STORED_EESSI_ACCELERATOR_TARGET_OVERRIDE"
204229
check_env_var "EASYBUILD_CUDA_COMPUTE_CAPABILITIES" "$STORED_CUDA_CC"
230+
module unload EESSI-extend
205231
export EESSI_ACCELERATOR_INSTALL=1
206-
module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild # reload for an GPU actual installation
232+
module load EESSI-extend/${{matrix.eessi_version}}-easybuild # reload for an GPU actual installation
207233
check_env_var "EASYBUILD_INSTALLPATH" "$EXPECTED_INSTALLATION_PATH" # installation path should be the same for project case
234+
check_env_var "EESSI_ACCELERATOR_TARGET" "$STORED_EESSI_ACCELERATOR_TARGET_OVERRIDE"
235+
check_env_var "EASYBUILD_CUDA_COMPUTE_CAPABILITIES" "$STORED_CUDA_CC"
208236
# unload and make sure the environment is clean again
209237
module unload EESSI-extend
210238
check_disallowed_env_prefix EASYBUILD_
211239
unset EESSI_ACCELERATOR_INSTALL
212240
unset EESSI_PROJECT_INSTALL
213241
214242
# Now for a user
243+
echo "Checking EESSI-extend user install"
215244
export EESSI_USER_INSTALL="$MY_INSTALLATION_PATH/$USER"
216245
mkdir -p $EESSI_USER_INSTALL # must exist
217-
module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild
246+
module load EESSI-extend/${{matrix.eessi_version}}-easybuild
218247
# check some specific envvars
219248
export EXPECTED_INSTALLATION_PATH="$MY_INSTALLATION_PATH/$USER/versions/$EESSI_VERSION/software/linux/$EESSI_SOFTWARE_SUBDIR"
220-
module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild
249+
module load EESSI-extend/${{matrix.eessi_version}}-easybuild
221250
check_env_var "EASYBUILD_INSTALLPATH" "$EXPECTED_INSTALLATION_PATH" # installation path should be the same unless we ask for an explicit GPU installation
251+
check_env_var "EESSI_ACCELERATOR_TARGET" "$STORED_EESSI_ACCELERATOR_TARGET_OVERRIDE"
222252
check_env_var "EASYBUILD_CUDA_COMPUTE_CAPABILITIES" "$STORED_CUDA_CC"
253+
module unload EESSI-extend
223254
export EESSI_ACCELERATOR_INSTALL=1
224-
module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild # reload for an actual GPU installation
255+
module load EESSI-extend/${{matrix.eessi_version}}-easybuild # reload for an actual GPU installation
225256
check_env_var "EASYBUILD_INSTALLPATH" "$EXPECTED_INSTALLATION_PATH" # installation path should be the same for user case
257+
check_env_var "EESSI_ACCELERATOR_TARGET" "$STORED_EESSI_ACCELERATOR_TARGET_OVERRIDE"
258+
check_env_var "EASYBUILD_CUDA_COMPUTE_CAPABILITIES" "$STORED_CUDA_CC"
226259
# unload and make sure the environment is clean again
227260
module unload EESSI-extend
228261
check_disallowed_env_prefix EASYBUILD_

0 commit comments

Comments
 (0)