@@ -161,16 +161,6 @@ EESSI_SOFTWARE_SUBDIR_OVERRIDE=${EESSI_SOFTWARE_SUBDIR_OVERRIDE:-${CPU_TARGET}}
161161export EESSI_SOFTWARE_SUBDIR_OVERRIDE
162162echo " bot/build.sh: EESSI_SOFTWARE_SUBDIR_OVERRIDE='${EESSI_SOFTWARE_SUBDIR_OVERRIDE} '"
163163
164- # determine accelerator target (if any) from .architecture in ${JOB_CFG_FILE}
165- ACCEL_OVERRIDE=$( cfg_get_value " architecture" " accelerator" )
166- if [[ -n " $ACCEL_OVERRIDE " ]]; then
167- # bot job config does not include accel subdirectory
168- export EESSI_ACCELERATOR_TARGET_OVERRIDE=" accel/$ACCEL_OVERRIDE "
169- else
170- export EESSI_ACCELERATOR_TARGET_OVERRIDE=" "
171- fi
172- echo " bot/build.sh: EESSI_ACCELERATOR_TARGET_OVERRIDE='${EESSI_ACCELERATOR_TARGET_OVERRIDE} '"
173-
174164# Log the full lscpu and os-release info:
175165lscpu > _bot_job${SLURM_JOB_ID} .lscpu
176166cat /etc/os-release > _bot_job${SLURM_JOB_ID} .os
259249# create tmp file for output of build step
260250build_outerr=$( mktemp build.outerr.XXXX)
261251
262- echo " Executing command to build software:"
263- echo " $software_layer_dir /eessi_container.sh ${COMMON_ARGS[@]} ${BUILD_STEP_ARGS[@]} "
264- echo " -- $software_layer_dir /install_software_layer.sh \" ${INSTALL_SCRIPT_ARGS[@]} \" \" $@ \" 2>&1 | tee -a ${build_outerr} "
265- $software_layer_dir /eessi_container.sh " ${COMMON_ARGS[@]} " " ${BUILD_STEP_ARGS[@]} " \
266- -- $software_layer_dir /install_software_layer.sh " ${INSTALL_SCRIPT_ARGS[@]} " " $@ " 2>&1 | tee -a ${build_outerr}
252+ # determine accelerator target (if any) from .architecture in ${JOB_CFG_FILE}
253+ ACCEL_OVERRIDES=$( cfg_get_value " architecture" " accelerator" )
254+ if [[ -n " $ACCEL_OVERRIDE " ]]; then
255+ for accel_override in ${ACCEL_OVERRIDES// ,/ }
256+ do
257+ # bot job config does not include accel subdirectory
258+ export EESSI_ACCELERATOR_TARGET_OVERRIDE=" accel/$ACCEL_OVERRIDE "
259+ echo " Executing command to build software:"
260+ echo " $software_layer_dir /eessi_container.sh ${COMMON_ARGS[@]} ${BUILD_STEP_ARGS[@]} "
261+ echo " -- $software_layer_dir /install_software_layer.sh \" ${INSTALL_SCRIPT_ARGS[@]} \" \" $@ \" 2>&1 | tee -a ${build_outerr} "
262+ $software_layer_dir /eessi_container.sh " ${COMMON_ARGS[@]} " " ${BUILD_STEP_ARGS[@]} " \
263+ -- $software_layer_dir /install_software_layer.sh " ${INSTALL_SCRIPT_ARGS[@]} " " $@ " 2>&1 | tee -a ${build_outerr}
264+
265+ # determine temporary directory to resume from for the next accelerator,
266+ # as we want to combine all accelerator builds into a single tarball in the end
267+ BUILD_TMPDIR=$( grep ' as tmp directory ' ${build_outerr} | cut -d ' ' -f 2)
268+ BUILD_STEP_ARGS+=(" --resume" " ${BUILD_TMPDIR} " )
269+ done
270+ else
271+ export EESSI_ACCELERATOR_TARGET_OVERRIDE=" "
272+ echo " Executing command to build software:"
273+ echo " $software_layer_dir /eessi_container.sh ${COMMON_ARGS[@]} ${BUILD_STEP_ARGS[@]} "
274+ echo " -- $software_layer_dir /install_software_layer.sh \" ${INSTALL_SCRIPT_ARGS[@]} \" \" $@ \" 2>&1 | tee -a ${build_outerr} "
275+ $software_layer_dir /eessi_container.sh " ${COMMON_ARGS[@]} " " ${BUILD_STEP_ARGS[@]} " \
276+ -- $software_layer_dir /install_software_layer.sh " ${INSTALL_SCRIPT_ARGS[@]} " " $@ " 2>&1 | tee -a ${build_outerr}
277+ fi
278+ echo " bot/build.sh: EESSI_ACCELERATOR_TARGET_OVERRIDE='${EESSI_ACCELERATOR_TARGET_OVERRIDE} '"
267279
268280# prepare directory to store tarball of tmp for tarball step
269281TARBALL_TMP_TARBALL_STEP_DIR=${PREVIOUS_TMP_DIR} /tarball_step
@@ -291,14 +303,15 @@ else
291303fi
292304# to set EESSI_VERSION we need to source init/eessi_defaults now
293305source $software_layer_dir /init/eessi_defaults
294- # Note: if ${EESSI_DEV_PROJECT} is defined (building for dev.eessi.io), then we
306+ # Note: if ${EESSI_DEV_PROJECT} is defined (building for dev.eessi.io), then we
295307# append the project (subdirectory) name to the end tarball name. This is information
296308# then used at the ingestion stage. If ${EESSI_DEV_PROJECT} is not defined, nothing is
297309# appended
298310if [[ -z ${EESSI_ACCELERATOR_TARGET_OVERRIDE} ]]; then
299311 export TARBALL=$( printf " eessi-%s-software-%s-%s-%b%d.${tarball_extension} " ${EESSI_VERSION} ${EESSI_OS_TYPE} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE// \/ / -} ${EESSI_DEV_PROJECT: +$EESSI_DEV_PROJECT -} ${timestamp} )
300312else
301- export TARBALL=$( printf " eessi-%s-software-%s-%s-%s-%b%d.${tarball_extension} " ${EESSI_VERSION} ${EESSI_OS_TYPE} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE// \/ / -} ${EESSI_ACCELERATOR_TARGET_OVERRIDE// \/ / -} ${EESSI_DEV_PROJECT: +$EESSI_DEV_PROJECT -} ${timestamp} )
313+ # export TARBALL=$(printf "eessi-%s-software-%s-%s-%s-%b%d.${tarball_extension}" ${EESSI_VERSION} ${EESSI_OS_TYPE} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE//\//-} ${EESSI_ACCELERATOR_TARGET_OVERRIDE//\//-} ${EESSI_DEV_PROJECT:+$EESSI_DEV_PROJECT-} ${timestamp})
314+ export TARBALL=$( printf " eessi-%s-software-%s-%s-%s-%b%d.${tarball_extension} " ${EESSI_VERSION} ${EESSI_OS_TYPE} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE// \/ / -} accel ${EESSI_DEV_PROJECT: +$EESSI_DEV_PROJECT -} ${timestamp} )
302315fi
303316
304317# Export EESSI_DEV_PROJECT to use it (if needed) when making tarball
0 commit comments