Skip to content

Commit 6f9ab47

Browse files
committed
Merge branch '2023.06-software.eessi.io' of github-trz:EESSI/software-layer into 2023.06-PyTorch-2.1.2-with-CUDA-foss-2023a-final
2 parents 6ee2343 + 785c15f commit 6f9ab47

144 files changed

Lines changed: 5118 additions & 296 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/test-software.eessi.io.yml

Lines changed: 85 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -8,33 +8,60 @@ on:
88
permissions:
99
contents: read # to fetch code (actions/checkout)
1010
env:
11+
EESSI_VERSION: '2023.06'
1112
EESSI_ACCELERATOR_TARGETS: |
1213
x86_64/amd/zen2:
1314
- nvidia/cc80
1415
x86_64/amd/zen3:
1516
- nvidia/cc80
1617
jobs:
1718
check_missing:
18-
runs-on: ubuntu-24.04
1919
strategy:
2020
fail-fast: false
2121
matrix:
22-
EESSI_VERSION:
23-
- 2023.06
24-
EESSI_SOFTWARE_SUBDIR_OVERRIDE:
25-
- aarch64/generic
26-
- aarch64/neoverse_n1
27-
- aarch64/neoverse_v1
28-
- x86_64/amd/zen2
29-
- x86_64/amd/zen3
30-
- x86_64/amd/zen4
31-
- x86_64/intel/haswell
32-
- x86_64/intel/sapphirerapids
33-
- x86_64/intel/skylake_avx512
34-
- x86_64/generic
22+
include:
23+
# Arm CPU targets
24+
- runs_on: ubuntu-24.04-arm
25+
EESSI_SOFTWARE_SUBDIR_OVERRIDE: aarch64/generic
26+
- runs_on: ubuntu-24.04-arm
27+
EESSI_SOFTWARE_SUBDIR_OVERRIDE: aarch64/neoverse_n1
28+
- runs_on: ubuntu-24.04-arm
29+
EESSI_SOFTWARE_SUBDIR_OVERRIDE: aarch64/neoverse_v1
30+
- runs_on: ubuntu-24.04-arm
31+
EESSI_SOFTWARE_SUBDIR_OVERRIDE: aarch64/nvidia/grace
32+
# x86_64 CPU targets
33+
- runs_on: ubuntu-24.04
34+
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/amd/zen2
35+
- runs_on: ubuntu-24.04
36+
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/amd/zen3
37+
- runs_on: ubuntu-24.04
38+
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/amd/zen4
39+
- runs_on: ubuntu-24.04
40+
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/intel/haswell
41+
- runs_on: ubuntu-24.04
42+
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/intel/sapphirerapids
43+
- runs_on: ubuntu-24.04
44+
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/intel/skylake_avx512
45+
- runs_on: ubuntu-24.04
46+
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/intel/icelake
47+
- runs_on: ubuntu-24.04
48+
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/intel/cascadelake
49+
- runs_on: ubuntu-24.04
50+
EESSI_SOFTWARE_SUBDIR_OVERRIDE: x86_64/generic
51+
runs-on: ${{ matrix.runs_on }}
3552
steps:
3653
- name: Check out software-layer repository
3754
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
55+
with:
56+
fetch-depth: 0 # Fetch all history for all branches and tags
57+
58+
- name: Show host system info
59+
run: |
60+
echo "/proc/cpuinfo:"
61+
cat /proc/cpuinfo
62+
echo
63+
echo "lscpu:"
64+
lscpu
3865
3966
- name: Mount EESSI CernVM-FS pilot repository
4067
uses: cvmfs-contrib/github-action-cvmfs@55899ca74cf78ab874bdf47f5a804e47c198743c # v4.0
@@ -46,21 +73,23 @@ jobs:
4673
- name: Test check_missing_installations.sh script
4774
run: |
4875
export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}}
49-
source /cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}/init/bash
76+
source /cvmfs/software.eessi.io/versions/${EESSI_VERSION}/init/bash
5077
# set $EESSI_CPU_FAMILY to the CPU architecture that corresponds to $EESSI_SOFTWARE_SUBDIR_OVERRIDE (part before the first slash),
5178
# to prevent issues with checks in the Easybuild configuration that use this variable
5279
export EESSI_CPU_FAMILY=${EESSI_SOFTWARE_SUBDIR_OVERRIDE%%/*}
53-
module load EasyBuild
54-
which eb
55-
eb --version
56-
export EESSI_PREFIX=/cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}
80+
export EESSI_PREFIX=/cvmfs/software.eessi.io/versions/${EESSI_VERSION}
5781
export EESSI_OS_TYPE=linux
5882
env | grep ^EESSI | sort
5983
6084
# first check the CPU-only builds for this CPU target
61-
echo "just run check_missing_installations.sh (should use easystacks/software.eessi.io/${{matrix.EESSI_VERSION}}/eessi-${{matrix.EESSI_VERSION}}-*.yml with latest EasyBuild release)"
62-
for easystack_file in $(EESSI_VERSION=${{matrix.EESSI_VERSION}} .github/workflows/scripts/only_latest_easystacks.sh); do
63-
echo "check missing installations for ${easystack_file}..."
85+
echo "first run check_missing_installations.sh for CPU-only builds"
86+
for easystack_file in $(EESSI_VERSION=${EESSI_VERSION} .github/workflows/scripts/only_latest_easystacks.sh); do
87+
eb_version=$(echo ${easystack_file} | sed 's/.*eb-\([0-9.]*\).*.yml/\1/g')
88+
echo "check missing installations for ${easystack_file} with EasyBuild ${eb_version}..."
89+
module purge
90+
module load EasyBuild/${eb_version}
91+
which eb
92+
eb --version
6493
./check_missing_installations.sh ${easystack_file}
6594
ec=$?
6695
if [[ ${ec} -ne 0 ]]; then echo "missing installations found for ${easystack_file}!" >&2; exit ${ec}; fi
@@ -74,8 +103,13 @@ jobs:
74103
for accel in ${accelerators}; do
75104
module use ${EESSI_SOFTWARE_PATH}/accel/${accel}/modules/all
76105
echo "checking missing installations for accelerator ${accel} using modulepath: ${MODULEPATH}"
77-
for easystack_file in $(EESSI_VERSION=${{matrix.EESSI_VERSION}} ACCEL_EASYSTACKS=1 .github/workflows/scripts/only_latest_easystacks.sh); do
78-
echo "check missing installations for ${easystack_file}..."
106+
for easystack_file in $(EESSI_VERSION=${EESSI_VERSION} ACCEL_EASYSTACKS=1 .github/workflows/scripts/only_latest_easystacks.sh); do
107+
eb_version=$(echo ${easystack_file} | sed 's/.*eb-\([0-9.]*\).*.yml/\1/g')
108+
echo "check missing installations for ${easystack_file} with EasyBuild ${eb_version}..."
109+
module purge
110+
module load EasyBuild/${eb_version}
111+
which eb
112+
eb --version
79113
./check_missing_installations.sh ${easystack_file}
80114
ec=$?
81115
if [[ ${ec} -ne 0 ]]; then echo "missing installations found for ${easystack_file}!" >&2; exit ${ec}; fi
@@ -87,14 +121,14 @@ jobs:
87121
- name: Test check_missing_installations.sh with missing package (GCC/8.3.0)
88122
run: |
89123
export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}}
90-
source /cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}/init/bash
124+
source /cvmfs/software.eessi.io/versions/${EESSI_VERSION}/init/bash
91125
# set $EESSI_CPU_FAMILY to the CPU architecture that corresponds to $EESSI_SOFTWARE_SUBDIR_OVERRIDE (part before the first slash),
92126
# to prevent issues with checks in the Easybuild configuration that use this variable
93127
export EESSI_CPU_FAMILY=${EESSI_SOFTWARE_SUBDIR_OVERRIDE%%/*}
94128
module load EasyBuild
95129
which eb
96130
eb --version
97-
export EESSI_PREFIX=/cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}
131+
export EESSI_PREFIX=/cvmfs/software.eessi.io/versions/${EESSI_VERSION}
98132
export EESSI_OS_TYPE=linux
99133
env | grep ^EESSI | sort
100134
# create dummy easystack file with a single entry (something that is not installed in EESSI)
@@ -115,3 +149,28 @@ jobs:
115149
echo "captured missing package; test PASSED"
116150
exit 0
117151
fi
152+
153+
- name: Check that EasyBuild hook is up to date
154+
if: ${{ github.event_name == 'pull_request' }}
155+
run: |
156+
FILE="eb_hooks.py"
157+
TEMP_FILE="$(mktemp)"
158+
159+
# Fetch base branch
160+
git fetch origin ${{ github.base_ref }}
161+
162+
# Check if the hooks has changed in the PR
163+
if git diff --name-only origin/${{ github.base_ref }}...HEAD | grep -q "^$FILE$"; then
164+
echo "Hooks changed in PR. Using PR version."
165+
cp "$FILE" "$TEMP_FILE"
166+
else
167+
echo "File not changed in PR. Using default branch version."
168+
git show origin/${{ github.base_ref }}:$FILE > "$TEMP_FILE"
169+
fi
170+
171+
# Compare the hooks to what is shipped in the repository
172+
# (it is overkill, but harmless, to do this for every architecture)
173+
export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}}
174+
source /cvmfs/software.eessi.io/versions/${EESSI_VERSION}/init/bash
175+
module load EESSI-extend
176+
diff "$TEMP_FILE" "$EASYBUILD_HOOKS"

.github/workflows/test_compare_stacks.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,15 @@ jobs:
2424
COMPARISON_ARCH:
2525
- aarch64/neoverse_n1
2626
- aarch64/neoverse_v1
27+
- aarch64/nvidia/grace
2728
- x86_64/amd/zen2
2829
- x86_64/amd/zen3
2930
- x86_64/amd/zen4
3031
- x86_64/intel/haswell
3132
- x86_64/intel/skylake_avx512
3233
- x86_64/intel/sapphirerapids
34+
- x86_64/intel/icelake
35+
- x86_64/intel/cascadelake
3336
steps:
3437
- name: Check out software-layer repository
3538
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1

.github/workflows/tests_archdetect.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ jobs:
2323
- aarch64/neoverse_n1/Azure-Ubuntu20-Altra
2424
- aarch64/neoverse_n1/AWS-awslinux-graviton2
2525
- aarch64/neoverse_v1/AWS-awslinux-graviton3
26+
- aarch64/nvidia/grace/Jureca-Rocky95
27+
- aarch64/google/axion/GCP-axion
2628
# commented out since these targets are currently not supported in software.eessi.io repo
2729
# (and some tests assume that the corresponding subdirectory in software layer is there)
2830
# - ppc64le/power9le/unknown-power9le

.github/workflows/tests_link_nvidia_host_libraries.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,8 @@ jobs:
120120
# List dir with libraries
121121
echo "Showing content of /tmp/nvidia_libs"
122122
echo "$(ls -l /tmp/nvidia_libs)"
123+
echo "Showing content of /tmp/nvidia_libs_duplicate"
124+
echo "$(ls -l /tmp/nvidia_libs_duplicate)"
123125
echo "Showing content of /opt/eessi/nvidia/x86_64/host"
124126
echo "$(ls -l /opt/eessi/nvidia/x86_64/host)"
125127
@@ -152,9 +154,9 @@ jobs:
152154
exit 1
153155
fi
154156
155-
# Verify it points to our mock library in /tmp/nvidia_libs
156-
if [[ "$target" != "/tmp/nvidia_libs/$lib"* && "$target" != *"/tmp/nvidia_libs/"* ]]; then
157-
echo "Error: Symlink $lib_path points to $target, which is not in our mock directory"
157+
# Verify it points to our mock library in /tmp/nvidia_libs or /tmp/nvidia_libs_duplicate
158+
if [[ "$target" != "/tmp/nvidia_libs/$lib"* && "$target" != "/tmp/nvidia_libs_duplicate/$lib"* ]]; then
159+
echo "Error: Symlink $lib_path points to $target, which is not in our mock directories"
158160
exit 1
159161
fi
160162
@@ -194,3 +196,4 @@ jobs:
194196
echo "$output" | grep "have already been linked" || { echo "Missing 'already linked' message"; exit 1; }
195197
196198
echo "Second normal run test passed"
199+

EESSI-install-software.sh

Lines changed: 50 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,23 @@ function copy_build_log() {
5353
fi
5454
}
5555

56+
function safe_module_use {
57+
# add a given non-empty directory to $MODULEPATH if and only if it is not yet in
58+
directory=${1}
59+
60+
if [[ -z ${directory+x} ]]; then
61+
echo "safe_module_use: given directory unset or empty; not adding it to \$MODULEPATH (${MODULEPATH})"
62+
return
63+
fi
64+
if [[ ":${MODULEPATH}:" == *":${directory}:"* ]]; then
65+
echo "safe_module_use: directory '${directory}' is already in \$MODULEPATH (${MODULEPATH}); not adding it again"
66+
return
67+
else
68+
echo "safe_module_use: directory '${directory}' is not yet in \$MODULEPATH (${MODULEPATH}); adding it"
69+
module use ${directory}
70+
fi
71+
}
72+
5673
POSITIONAL_ARGS=()
5774

5875
while [[ $# -gt 0 ]]; do
@@ -225,8 +242,8 @@ fi
225242
# order is important: these are needed to install a full CUDA SDK in host_injections
226243
# for now, this just reinstalls all scripts. Note the most elegant, but works
227244

228-
# Only run install_scripts.sh if not dev.eessi.io for security
229-
if [[ "${EESSI_CVMFS_REPO}" != /cvmfs/dev.eessi.io ]]; then
245+
# Only run install_scripts.sh if not in dev.eessi.io for security
246+
if [[ -z ${EESSI_DEV_PROJECT} ]]; then
230247
${TOPDIR}/install_scripts.sh --prefix ${EESSI_PREFIX}
231248
fi
232249

@@ -251,7 +268,20 @@ export EESSI_CVMFS_INSTALL=1
251268
# NOTE 3, we have to set a default for EASYBUILD_INSTALLPATH here in cases the
252269
# EESSI-extend module itself needs to be installed.
253270
export EASYBUILD_INSTALLPATH=${EESSI_PREFIX}/software/${EESSI_OS_TYPE}/${EESSI_SOFTWARE_SUBDIR_OVERRIDE}
254-
source load_eessi_extend_module.sh ${EESSI_VERSION}
271+
272+
# If in dev.eessi.io, allow building on top of software.eessi.io via EESSI-extend
273+
if [[ ! -z ${EESSI_DEV_PROJECT} ]]; then
274+
# We keep track of the old install path for settings paths to SitePackage.lua and .lmodrc later
275+
EASYBUILD_INSTALLPATH_STANDARD=${EASYBUILD_INSTALLPATH}
276+
# Need to unset $EESSI_CVMFS_INSTALL to use $EESSI_PROJECT_INSTALL
277+
unset EESSI_CVMFS_INSTALL
278+
export EESSI_PROJECT_INSTALL=${EESSI_CVMFS_REPO_OVERRIDE}
279+
echo ">> \$EESSI_PROJECT_INSTALL set to ${EESSI_PROJECT_INSTALL}"
280+
fi
281+
282+
echo "DEBUG: before loading EESSI-extend // EASYBUILD_INSTALLPATH='${EASYBUILD_INSTALLPATH}'"
283+
source $TOPDIR/load_eessi_extend_module.sh ${EESSI_VERSION}
284+
echo "DEBUG: after loading EESSI-extend // EASYBUILD_INSTALLPATH='${EASYBUILD_INSTALLPATH}'"
255285

256286
# Install full CUDA SDK and cu* libraries in host_injections
257287
# Hardcode this for now, see if it works
@@ -271,6 +301,7 @@ fi
271301

272302
# Install NVIDIA drivers in host_injections (if they exist)
273303
if command_exists "nvidia-smi"; then
304+
export LD_LIBRARY_PATH="/.singularity.d/libs:${LD_LIBRARY_PATH}"
274305
nvidia-smi --version
275306
ec=$?
276307
if [ ${ec} -eq 0 ]; then
@@ -299,12 +330,10 @@ if [ ! -z ${EESSI_ACCELERATOR_TARGET} ]; then
299330
fi
300331
fi
301332

302-
# If in dev.eessi.io, allow building on top of software.eessi.io
303-
if [[ "${EESSI_CVMFS_REPO}" == /cvmfs/dev.eessi.io ]]; then
304-
module use /cvmfs/software.eessi.io/versions/$EESSI_VERSION/software/${EESSI_OS_TYPE}/${EESSI_SOFTWARE_SUBDIR_OVERRIDE}/modules/all
305-
fi
306-
307-
module use $EASYBUILD_INSTALLPATH/modules/all
333+
echo "DEBUG: adding path '$EASYBUILD_INSTALLPATH/modules/all' to MODULEPATH='${MODULEPATH}'"
334+
#module use $EASYBUILD_INSTALLPATH/modules/all
335+
safe_module_use $EASYBUILD_INSTALLPATH/modules/all
336+
echo "DEBUG: after adding module path // MODULEPATH='${MODULEPATH}'"
308337

309338
if [[ -z ${MODULEPATH} ]]; then
310339
fatal_error "Failed to set up \$MODULEPATH?!"
@@ -331,7 +360,7 @@ else
331360
echo -e "Processing easystack file ${easystack_file}...\n\n"
332361

333362
# determine version of EasyBuild module to load based on EasyBuild version included in name of easystack file
334-
eb_version=$(echo ${easystack_file} | sed 's/.*eb-\([0-9.]*\).*/\1/g')
363+
eb_version=$(echo ${easystack_file} | sed 's/.*eb-\([0-9.]*\).*.yml/\1/g')
335364

336365
# load EasyBuild module (will be installed if it's not available yet)
337366
source ${TOPDIR}/load_easybuild_module.sh ${eb_version}
@@ -372,8 +401,18 @@ else
372401
done
373402
fi
374403

375-
export LMOD_CONFIG_DIR="${EASYBUILD_INSTALLPATH}/.lmod"
404+
echo "DEBUG: before creating/updating lmod config files // EASYBUILD_INSTALLPATH='${EASYBUILD_INSTALLPATH}'"
405+
if [[ ! -z ${EESSI_DEV_PROJECT} ]]; then
406+
# Make sure .lmod files are not checked for dev.eeessi.io
407+
export LMOD_CONFIG_DIR="${EASYBUILD_INSTALLPATH_STANDARD}/.lmod"
408+
export LMOD_PACKAGE_PATH="${EASYBUILD_INSTALLPATH_STANDARD}/.lmod"
409+
else
410+
export LMOD_CONFIG_DIR="${EASYBUILD_INSTALLPATH}/.lmod"
411+
export LMOD_PACKAGE_PATH="${EASYBUILD_INSTALLPATH}/.lmod"
412+
fi
413+
376414
lmod_rc_file="$LMOD_CONFIG_DIR/lmodrc.lua"
415+
echo "DEBUG: lmod_rc_file='${lmod_rc_file}'"
377416
if [[ ! -z ${EESSI_ACCELERATOR_TARGET} ]]; then
378417
# EESSI_ACCELERATOR_TARGET is set, so let's remove the accelerator path from $lmod_rc_file
379418
lmod_rc_file=$(echo ${lmod_rc_file} | sed "s@/accel/${EESSI_ACCELERATOR_TARGET}@@")
@@ -386,7 +425,6 @@ if [ ! -f $lmod_rc_file ] || [ ${lmodrc_changed} == '0' ]; then
386425
check_exit_code $? "$lmod_rc_file created" "Failed to create $lmod_rc_file"
387426
fi
388427

389-
export LMOD_PACKAGE_PATH="${EASYBUILD_INSTALLPATH}/.lmod"
390428
lmod_sitepackage_file="$LMOD_PACKAGE_PATH/SitePackage.lua"
391429
if [[ ! -z ${EESSI_ACCELERATOR_TARGET} ]]; then
392430
# EESSI_ACCELERATOR_TARGET is set, so let's remove the accelerator path from $lmod_sitepackage_file

EESSI-remove-software.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ if [ $EUID -eq 0 ]; then
108108
else
109109
for easystack_file in ${changed_easystacks_rebuilds}; do
110110
# determine version of EasyBuild module to load based on EasyBuild version included in name of easystack file
111-
eb_version=$(echo ${easystack_file} | sed 's/.*eb-\([0-9.]*\).*/\1/g')
111+
eb_version=$(echo ${easystack_file} | sed 's/.*eb-\([0-9.]*\).*.yml/\1/g')
112112

113113
# load EasyBuild module (will be installed if it's not available yet)
114114
source ${TOPDIR}/load_easybuild_module.sh ${eb_version}

bot/build.sh

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,9 @@ echo "bot/build.sh: EESSI_VERSION_OVERRIDE='${EESSI_VERSION_OVERRIDE}'"
147147
# determine CVMFS repo to be used from .repository.repo_name in ${JOB_CFG_FILE}
148148
# here, just set EESSI_CVMFS_REPO_OVERRIDE, a bit further down
149149
# "source init/eessi_defaults" via sourcing init/minimal_eessi_env
150-
export EESSI_CVMFS_REPO_OVERRIDE=/cvmfs/${REPOSITORY_NAME}
150+
# Note: iff ${EESSI_DEV_PROJECT} is defined (building for dev.eessi.io), then we
151+
# append the project subdirectory to ${EESSI_CVMFS_REPO_OVERRIDE}
152+
export EESSI_CVMFS_REPO_OVERRIDE=/cvmfs/${REPOSITORY_NAME}${EESSI_DEV_PROJECT:+/$EESSI_DEV_PROJECT}
151153
echo "bot/build.sh: EESSI_CVMFS_REPO_OVERRIDE='${EESSI_CVMFS_REPO_OVERRIDE}'"
152154

153155
# determine CPU architecture to be used from entry .architecture in ${JOB_CFG_FILE}
@@ -184,6 +186,15 @@ if [[ "${REPOSITORY_NAME}" == "dev.eessi.io" ]]; then
184186
COMMON_ARGS+=("--repository" "software.eessi.io,access=ro")
185187
fi
186188

189+
# add $software_layer_dir and /dev as extra bind paths
190+
# - $software_layer_dir is needed because it is used as prefix for running scripts
191+
# - /dev is needed to access /dev/fuse
192+
COMMON_ARGS+=("--extra-bind-paths" "${software_layer_dir},/dev")
193+
194+
# pass through '--contain' to avoid leaking in scripts into the container session
195+
# note, --pass-through can be used multiple times if needed
196+
COMMON_ARGS+=("--pass-through" "--contain")
197+
187198
# make sure to use the same parent dir for storing tarballs of tmp
188199
PREVIOUS_TMP_DIR=${PWD}/previous_tmp
189200

@@ -309,7 +320,15 @@ fi
309320
timestamp=$(date +%s)
310321
# to set EESSI_VERSION we need to source init/eessi_defaults now
311322
source $software_layer_dir/init/eessi_defaults
312-
export TGZ=$(printf "eessi-%s-software-%s-%s-%d.tar.gz" ${EESSI_VERSION} ${EESSI_OS_TYPE} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE//\//-} ${timestamp})
323+
# Note: iff ${EESSI_DEV_PROJECT} is defined (building for dev.eessi.io), then we
324+
# append the project (subdirectory) name to the end tarball name. This is information
325+
# then used at the ingestion stage. If ${EESSI_DEV_PROJECT} is not defined, nothing is
326+
# appended
327+
export TGZ=$(printf "eessi-%s-software-%s-%s-%b%d.tar.gz" ${EESSI_VERSION} ${EESSI_OS_TYPE} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE//\//-} ${EESSI_DEV_PROJECT:+$EESSI_DEV_PROJECT-} ${timestamp})
328+
329+
# Export EESSI_DEV_PROJECT to use it (if needed) when making tarball
330+
echo "bot/build.sh: EESSI_DEV_PROJECT='${EESSI_DEV_PROJECT}'"
331+
export EESSI_DEV_PROJECT=${EESSI_DEV_PROJECT}
313332

314333
# value of first parameter to create_tarball.sh - TMP_IN_CONTAINER - needs to be
315334
# synchronised with setting of TMP_IN_CONTAINER in eessi_container.sh

0 commit comments

Comments
 (0)