@@ -10,19 +10,20 @@ jobs:
1010 basic_checks :
1111 runs-on : ubuntu-22.04
1212 strategy :
13- fail-fast : false
1413 matrix :
15- EESSI_VERSION :
16- - ' 2023.06'
17- # - '2025.06'
14+ include :
15+ - eessi_version : ' 2023.06'
16+ rebuild_software : " BCFtools-1.18-GCC-12.3.0.eb"
17+ - eessi_version : ' 2025.06'
18+ rebuild_software : " make-4.4.1-GCCcore-13.3.0.eb"
1819 steps :
1920 - name : Check out software-layer repository
2021 uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
2122
2223 - name : Mount EESSI CernVM-FS repository
2324 uses : eessi/github-action-eessi@v3
2425 with :
25- eessi_stack_version : ${{matrix.EESSI_VERSION }}
26+ eessi_stack_version : ${{matrix.eessi_version }}
2627 use_eessi_module : true
2728
2829 - name : Install the EESSI-extend shipped with the repository
3839 check_disallowed_env_prefix EASYBUILD_
3940
4041 # Load the EESSI module
41- module load EESSI/${{matrix.EESSI_VERSION }}
42+ module load EESSI/${{matrix.eessi_version }}
4243 check_disallowed_env_prefix EASYBUILD_
4344
4445 # Load EasyBuild to install EESSI-extend
5051
5152 # Verify that we can pick the installed version up
5253 module use $MY_INSTALLATION_PATH/modules/all
53- module load EESSI-extend/${{matrix.EESSI_VERSION }}-easybuild
54+ module load EESSI-extend/${{matrix.eessi_version }}-easybuild
5455 echo $EBROOTEESSIMINEXTEND | grep $MY_INSTALLATION_PATH || { echo "ERROR: Installed version of EESSI-extend not picked up (loaded $EBROOTEESSIMINEXTEND)" >&2; exit 1; }
56+ # Do a test rebuild (with default and local hooks)
57+ eb --rebuild ${{matrix.rebuild_software}}
58+ eb --rebuild --hooks=./eb_hooks.py ${{matrix.rebuild_software}}
59+ # Proceed with unload and checking that
5560 module unload EESSI-extend
5661 # That should have unset all EasyBuild envvars (including EASYBUILD_PREFIX)
5762 check_disallowed_env_prefix EASYBUILD_
@@ -68,19 +73,19 @@ jobs:
6873
6974 # Let's start from a clean slate
7075 module purge
71- module load EESSI/${{matrix.EESSI_VERSION }}
76+ module load EESSI/${{matrix.eessi_version }}
7277 # Access the installed EESSI-extend
7378 module use "$MY_INSTALLATION_PATH"/modules/all
7479 check_disallowed_env_prefix EASYBUILD_
7580
7681 # Configure for CVMFS install
7782 export EESSI_CVMFS_INSTALL=1
78- module load EESSI-extend/${{matrix.EESSI_VERSION }}-easybuild
83+ module load EESSI-extend/${{matrix.eessi_version }}-easybuild
7984 # check some common EasyBuild settings
8085 check_env_var "EASYBUILD_READ_ONLY_INSTALLDIR" "1"
8186 check_env_var "EASYBUILD_ALLOW_LOADED_MODULES" "EasyBuild,EESSI-extend"
8287 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"
88+ check_env_var "EASYBUILD_HOOKS" "/cvmfs/software.eessi.io/versions/${{matrix.eessi_version }}/init/easybuild/eb_hooks.py"
8489 check_env_var "EASYBUILD_RPATH" "1"
8590 check_env_var "EASYBUILD_FILTER_ENV_VARS" "LD_LIBRARY_PATH"
8691 # check some specific ones
9297 check_env_var "EASYBUILD_FAIL_ON_MOD_FILES_GCCCORE" "1"
9398 check_env_var "EASYBUILD_LOCAL_VAR_NAMING_CHECK" "error"
9499 # Check some EESSI version specific settings
95- if [[ "${{ matrix.EESSI_VERSION }}" != "2023.06" ]]; then
100+ if [[ "${{ matrix.eessi_version }}" != "2023.06" ]]; then
96101 check_env_var "EASYBUILD_PREFER_PYTHON_SEARCH_PATH" "EBPYTHONPREFIXES"
97102 check_env_var "EASYBUILD_MODULE_SEARCH_PATH_HEADERS" "include_paths"
98103 check_env_var "EASYBUILD_SEARCH_PATH_CPP_HEADERS" "include_paths"
@@ -106,7 +111,7 @@ jobs:
106111
107112 # Now configure for a site
108113 export EESSI_SITE_INSTALL=1
109- module load EESSI-extend/${{matrix.EESSI_VERSION }}-easybuild
114+ module load EESSI-extend/${{matrix.eessi_version }}-easybuild
110115 # check some specific envvars
111116 check_env_var "EASYBUILD_INSTALLPATH" "$EESSI_SITE_SOFTWARE_PATH"
112117 check_env_var "EASYBUILD_UMASK" "022"
@@ -119,7 +124,7 @@ jobs:
119124
120125 # Now for a project
121126 export EESSI_PROJECT_INSTALL="$MY_INSTALLATION_PATH"
122- module load EESSI-extend/${{matrix.EESSI_VERSION }}-easybuild
127+ module load EESSI-extend/${{matrix.eessi_version }}-easybuild
123128 # check some specific envvars
124129 export EXPECTED_INSTALLATION_PATH="$MY_INSTALLATION_PATH/versions/$EESSI_VERSION/software/linux/$EESSI_SOFTWARE_SUBDIR"
125130 check_env_var "EASYBUILD_INSTALLPATH" "$EXPECTED_INSTALLATION_PATH"
@@ -135,7 +140,7 @@ jobs:
135140 # Now for a user
136141 export EESSI_USER_INSTALL="$MY_INSTALLATION_PATH/$USER"
137142 mkdir -p $EESSI_USER_INSTALL # must exist
138- module load EESSI-extend/${{matrix.EESSI_VERSION }}-easybuild
143+ module load EESSI-extend/${{matrix.eessi_version }}-easybuild
139144 # check some specific envvars
140145 export EXPECTED_INSTALLATION_PATH="$MY_INSTALLATION_PATH/$USER/versions/$EESSI_VERSION/software/linux/$EESSI_SOFTWARE_SUBDIR"
141146 check_env_var "EASYBUILD_INSTALLPATH" "$EXPECTED_INSTALLATION_PATH"
@@ -163,18 +168,18 @@ jobs:
163168 # Let's start from a clean slate
164169 module purge
165170 export EESSI_ACCELERATOR_TARGET_OVERRIDE=$STORED_EESSI_ACCELERATOR_TARGET_OVERRIDE
166- module load EESSI/${{matrix.EESSI_VERSION }}
171+ module load EESSI/${{matrix.eessi_version }}
167172 # Access the installed EESSI-extend
168173 module use "$MY_INSTALLATION_PATH"/modules/all
169174 check_disallowed_env_prefix EASYBUILD_
170175
171176 # Configure for CVMFS install
172177 export EESSI_CVMFS_INSTALL=1
173- module load EESSI-extend/${{matrix.EESSI_VERSION }}-easybuild
178+ module load EESSI-extend/${{matrix.eessi_version }}-easybuild
174179 check_env_var "EASYBUILD_INSTALLPATH" "$EESSI_SOFTWARE_PATH" # installation path should be the same unless we ask for an explicit GPU installation
175180 check_env_var "EASYBUILD_CUDA_COMPUTE_CAPABILITIES" "$STORED_CUDA_CC"
176181 export EESSI_ACCELERATOR_INSTALL=1
177- module load EESSI-extend/${{matrix.EESSI_VERSION }}-easybuild # reload for an actual GPU installation
182+ module load EESSI-extend/${{matrix.eessi_version }}-easybuild # reload for an actual GPU installation
178183 check_env_var "EASYBUILD_INSTALLPATH" "${EESSI_SOFTWARE_PATH}/${EESSI_ACCELERATOR_TARGET_OVERRIDE}"
179184 # unload and make sure the environment is clean again
180185 module unload EESSI-extend
@@ -184,11 +189,11 @@ jobs:
184189
185190 # Now configure for a site
186191 export EESSI_SITE_INSTALL=1
187- module load EESSI-extend/${{matrix.EESSI_VERSION }}-easybuild
192+ module load EESSI-extend/${{matrix.eessi_version }}-easybuild
188193 check_env_var "EASYBUILD_INSTALLPATH" "$EESSI_SITE_SOFTWARE_PATH" # installation path should be the same unless we ask for an explicit GPU installation
189194 check_env_var "EASYBUILD_CUDA_COMPUTE_CAPABILITIES" "$STORED_CUDA_CC"
190195 export EESSI_ACCELERATOR_INSTALL=1
191- module load EESSI-extend/${{matrix.EESSI_VERSION }}-easybuild # reload for an actual GPU installation
196+ module load EESSI-extend/${{matrix.eessi_version }}-easybuild # reload for an actual GPU installation
192197 check_env_var "EASYBUILD_INSTALLPATH" "${EESSI_SITE_SOFTWARE_PATH}/${EESSI_ACCELERATOR_TARGET_OVERRIDE}"
193198 # unload and make sure the environment is clean again
194199 module unload EESSI-extend
@@ -199,11 +204,11 @@ jobs:
199204 # Now for a project
200205 export EESSI_PROJECT_INSTALL="$MY_INSTALLATION_PATH"
201206 export EXPECTED_INSTALLATION_PATH="$MY_INSTALLATION_PATH/versions/$EESSI_VERSION/software/linux/$EESSI_SOFTWARE_SUBDIR"
202- module load EESSI-extend/${{matrix.EESSI_VERSION }}-easybuild
207+ module load EESSI-extend/${{matrix.eessi_version }}-easybuild
203208 check_env_var "EASYBUILD_INSTALLPATH" "$EXPECTED_INSTALLATION_PATH" # installation path should be the same unless we ask for an explicit GPU installation
204209 check_env_var "EASYBUILD_CUDA_COMPUTE_CAPABILITIES" "$STORED_CUDA_CC"
205210 export EESSI_ACCELERATOR_INSTALL=1
206- module load EESSI-extend/${{matrix.EESSI_VERSION }}-easybuild # reload for an GPU actual installation
211+ module load EESSI-extend/${{matrix.eessi_version }}-easybuild # reload for an GPU actual installation
207212 check_env_var "EASYBUILD_INSTALLPATH" "$EXPECTED_INSTALLATION_PATH" # installation path should be the same for project case
208213 # unload and make sure the environment is clean again
209214 module unload EESSI-extend
@@ -214,14 +219,14 @@ jobs:
214219 # Now for a user
215220 export EESSI_USER_INSTALL="$MY_INSTALLATION_PATH/$USER"
216221 mkdir -p $EESSI_USER_INSTALL # must exist
217- module load EESSI-extend/${{matrix.EESSI_VERSION }}-easybuild
222+ module load EESSI-extend/${{matrix.eessi_version }}-easybuild
218223 # check some specific envvars
219224 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
225+ module load EESSI-extend/${{matrix.eessi_version }}-easybuild
221226 check_env_var "EASYBUILD_INSTALLPATH" "$EXPECTED_INSTALLATION_PATH" # installation path should be the same unless we ask for an explicit GPU installation
222227 check_env_var "EASYBUILD_CUDA_COMPUTE_CAPABILITIES" "$STORED_CUDA_CC"
223228 export EESSI_ACCELERATOR_INSTALL=1
224- module load EESSI-extend/${{matrix.EESSI_VERSION }}-easybuild # reload for an actual GPU installation
229+ module load EESSI-extend/${{matrix.eessi_version }}-easybuild # reload for an actual GPU installation
225230 check_env_var "EASYBUILD_INSTALLPATH" "$EXPECTED_INSTALLATION_PATH" # installation path should be the same for user case
226231 # unload and make sure the environment is clean again
227232 module unload EESSI-extend
0 commit comments