@@ -105,7 +105,8 @@ jobs:
105
105
export EESSI_PROJECT_INSTALL="$MY_INSTALLATION_PATH"
106
106
module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild
107
107
# check some specific envvars
108
- check_env_var "EASYBUILD_INSTALLPATH" "$MY_INSTALLATION_PATH/versions/$EESSI_VERSION/software/linux/$EESSI_SOFTWARE_SUBDIR"
108
+ export EXPECTED_INSTALLATION_PATH="$MY_INSTALLATION_PATH/versions/$EESSI_VERSION/software/linux/$EESSI_SOFTWARE_SUBDIR"
109
+ check_env_var "EASYBUILD_INSTALLPATH" "$EXPECTED_INSTALLATION_PATH"
109
110
check_env_var "EASYBUILD_UMASK" "002"
110
111
check_env_var "EASYBUILD_GROUP_WRITABLE_INSTALLDIR" "1"
111
112
# unload and check the environment is clean again
@@ -118,10 +119,92 @@ jobs:
118
119
mkdir -p $EESSI_USER_INSTALL # must exist
119
120
module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild
120
121
# check some specific envvars
121
- check_env_var "EASYBUILD_INSTALLPATH" "$MY_INSTALLATION_PATH/$USER/versions/$EESSI_VERSION/software/linux/$EESSI_SOFTWARE_SUBDIR"
122
+ export EXPECTED_INSTALLATION_PATH="$MY_INSTALLATION_PATH/$USER/versions/$EESSI_VERSION/software/linux/$EESSI_SOFTWARE_SUBDIR"
123
+ check_env_var "EASYBUILD_INSTALLPATH" "$EXPECTED_INSTALLATION_PATH"
122
124
check_env_var "EASYBUILD_UMASK" "077"
123
125
# unload and check the environment is clean again
124
126
module unload EESSI-extend
125
127
check_disallowed_env_prefix EASYBUILD_
126
128
unset EESSI_USER_INSTALL
127
129
130
+ - name : Run tests for EESSI-extend in the various GPU scenarios
131
+ run : |
132
+ export MY_INSTALLATION_PATH=/tmp/easybuild
133
+
134
+ # Define a function to check the values of environment variables
135
+ # and another that checks an environment does not contain environment
136
+ # variables matching a certain pattern
137
+ source .github/workflows/scripts/test_utils.sh
138
+
139
+ # Set an environment variable to use when we want to target accelerators
140
+ export STORED_EESSI_ACCELERATOR_TARGET_OVERRIDE="accel/nvidia/cc80"
141
+ export STORED_CUDA_CC="8.0"
142
+
143
+ # Let's start from a clean slate
144
+ module purge
145
+ export EESSI_ACCELERATOR_TARGET_OVERRIDE=$STORED_EESSI_ACCELERATOR_TARGET_OVERRIDE
146
+ module load EESSI/${{matrix.EESSI_VERSION}}
147
+ # Access the installed EESSI-extend
148
+ module use "$MY_INSTALLATION_PATH"/modules/all
149
+ check_disallowed_env_prefix EASYBUILD_
150
+
151
+ # Configure for CVMFS install
152
+ export EESSI_CVMFS_INSTALL=1
153
+ module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild
154
+ check_env_var "EASYBUILD_INSTALLPATH" "$EESSI_SOFTWARE_PATH" # installation path should be the same unless we ask for an explicit GPU installation
155
+ check_env_var "EASYBUILD_CUDA_COMPUTE_CAPABILITIES" "$STORED_CUDA_CC"
156
+ export EESSI_ACCELERATOR_INSTALL=1
157
+ module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild # reload for an actual GPU installation
158
+ check_env_var "EASYBUILD_INSTALLPATH" "${EESSI_SOFTWARE_PATH}/${EESSI_ACCELERATOR_TARGET_OVERRIDE}"
159
+ # unload and make sure the environment is clean again
160
+ module unload EESSI-extend
161
+ check_disallowed_env_prefix EASYBUILD_
162
+ unset EESSI_ACCELERATOR_INSTALL
163
+ unset EESSI_CVMFS_INSTALL
164
+
165
+ # Now configure for a site
166
+ export EESSI_SITE_INSTALL=1
167
+ module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild
168
+ check_env_var "EASYBUILD_INSTALLPATH" "$EESSI_SITE_SOFTWARE_PATH" # installation path should be the same unless we ask for an explicit GPU installation
169
+ check_env_var "EASYBUILD_CUDA_COMPUTE_CAPABILITIES" "$STORED_CUDA_CC"
170
+ export EESSI_ACCELERATOR_INSTALL=1
171
+ module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild # reload for an actual GPU installation
172
+ check_env_var "EASYBUILD_INSTALLPATH" "${EESSI_SITE_SOFTWARE_PATH}/${EESSI_ACCELERATOR_TARGET_OVERRIDE}"
173
+ # unload and make sure the environment is clean again
174
+ module unload EESSI-extend
175
+ check_disallowed_env_prefix EASYBUILD_
176
+ unset EESSI_ACCELERATOR_INSTALL
177
+ unset EESSI_SITE_INSTALL
178
+
179
+ # Now for a project
180
+ export EESSI_PROJECT_INSTALL="$MY_INSTALLATION_PATH"
181
+ export EXPECTED_INSTALLATION_PATH="$MY_INSTALLATION_PATH/versions/$EESSI_VERSION/software/linux/$EESSI_SOFTWARE_SUBDIR"
182
+ module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild
183
+ check_env_var "EASYBUILD_INSTALLPATH" "$EXPECTED_INSTALLATION_PATH" # installation path should be the same unless we ask for an explicit GPU installation
184
+ check_env_var "EASYBUILD_CUDA_COMPUTE_CAPABILITIES" "$STORED_CUDA_CC"
185
+ export EESSI_ACCELERATOR_INSTALL=1
186
+ module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild # reload for an GPU actual installation
187
+ check_env_var "EASYBUILD_INSTALLPATH" "$EXPECTED_INSTALLATION_PATH" # installation path should be the same for project case
188
+ # unload and make sure the environment is clean again
189
+ module unload EESSI-extend
190
+ check_disallowed_env_prefix EASYBUILD_
191
+ unset EESSI_ACCELERATOR_INSTALL
192
+ unset EESSI_PROJECT_INSTALL
193
+
194
+ # Now for a user
195
+ export EESSI_USER_INSTALL="$MY_INSTALLATION_PATH/$USER"
196
+ mkdir -p $EESSI_USER_INSTALL # must exist
197
+ module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild
198
+ # check some specific envvars
199
+ export EXPECTED_INSTALLATION_PATH="$MY_INSTALLATION_PATH/$USER/versions/$EESSI_VERSION/software/linux/$EESSI_SOFTWARE_SUBDIR"
200
+ module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild
201
+ check_env_var "EASYBUILD_INSTALLPATH" "$EXPECTED_INSTALLATION_PATH" # installation path should be the same unless we ask for an explicit GPU installation
202
+ check_env_var "EASYBUILD_CUDA_COMPUTE_CAPABILITIES" "$STORED_CUDA_CC"
203
+ export EESSI_ACCELERATOR_INSTALL=1
204
+ module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild # reload for an actual GPU installation
205
+ check_env_var "EASYBUILD_INSTALLPATH" "$EXPECTED_INSTALLATION_PATH" # installation path should be the same for user case
206
+ # unload and make sure the environment is clean again
207
+ module unload EESSI-extend
208
+ check_disallowed_env_prefix EASYBUILD_
209
+ unset EESSI_ACCELERATOR_INSTALL
210
+ unset EESSI_USER_INSTALL
0 commit comments