Skip to content

Commit 480d810

Browse files
committed
Merge branch '2023.06-software.eessi.io' of github.com:EESSI/software-layer into riscv
2 parents 0cafae8 + 91de11e commit 480d810

File tree

64 files changed

+1661
-395
lines changed

Some content is hidden

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

64 files changed

+1661
-395
lines changed

Diff for: .github/workflows/scorecards.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
analysis:
2020
if: github.repository_owner == 'EESSI' # Prevent running on forks
2121
name: Scorecards analysis
22-
runs-on: ubuntu-latest
22+
runs-on: ubuntu-24.04
2323
permissions:
2424
# Needed to upload the results to code-scanning dashboard.
2525
security-events: write

Diff for: .github/workflows/test-software.eessi.io.yml

+1-15
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ env:
1515
- nvidia/cc80
1616
jobs:
1717
check_missing:
18-
runs-on: ubuntu-latest
18+
runs-on: ubuntu-24.04
1919
strategy:
2020
fail-fast: false
2121
matrix:
@@ -59,20 +59,6 @@ jobs:
5959
# first check the CPU-only builds for this CPU target
6060
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)"
6161
for easystack_file in $(EESSI_VERSION=${{matrix.EESSI_VERSION}} .github/workflows/scripts/only_latest_easystacks.sh); do
62-
if [ ${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}} = "x86_64/amd/zen4" ]; then
63-
if grep -q 2022b <<<"${easystack_file}"; then
64-
# skip the check of installed software on zen4 for foss/2022b builds
65-
continue
66-
fi
67-
if [[ $easystack_file == *"rebuilds"* ]]; then
68-
# Also handle rebuilds, make a temporary EasyStack file where we clean out all 2022b stuff and use that
69-
new_easystack=$(mktemp pruned_easystackXXX --suffix=.yml)
70-
# first clean out the options then clean out the .eb name
71-
sed '/2022b\|12\.2\.0/,/\.eb/{/\.eb/!d}' "${easystack_file}" | sed '/2022b\|12\.2\.0/d' > $new_easystack
72-
diff --unified=0 "$easystack_file" "$new_easystack" || :
73-
easystack_file="$new_easystack"
74-
fi
75-
fi
7662
echo "check missing installations for ${easystack_file}..."
7763
./check_missing_installations.sh ${easystack_file}
7864
ec=$?

Diff for: .github/workflows/test_eessi_container_script.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ permissions:
99
contents: read # to fetch code (actions/checkout)
1010
jobs:
1111
eessi_container_script:
12-
runs-on: ubuntu-latest
12+
runs-on: ubuntu-24.04
1313
strategy:
1414
fail-fast: false
1515
matrix:

Diff for: .github/workflows/test_licenses.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ permissions:
88
contents: read # to fetch code (actions/checkout)
99
jobs:
1010
build:
11-
runs-on: ubuntu-latest
11+
runs-on: ubuntu-24.04
1212
steps:
1313
- name: Check out software-layer repository
1414
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1

Diff for: .github/workflows/tests.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ permissions:
88
contents: read # to fetch code (actions/checkout)
99
jobs:
1010
build:
11-
runs-on: ubuntu-latest
11+
runs-on: ubuntu-24.04
1212
strategy:
1313
matrix:
14-
python: [3.7, 3.8, 3.9, '3.10']
14+
python: [3.8, 3.9, '3.10']
1515
fail-fast: false
1616
steps:
1717
- name: checkout

Diff for: .github/workflows/tests_archdetect.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ permissions:
88
contents: read # to fetch code (actions/checkout)
99
jobs:
1010
build:
11-
runs-on: ubuntu-latest
11+
runs-on: ubuntu-24.04
1212
strategy:
1313
matrix:
1414
proc_cpuinfo:
@@ -18,6 +18,7 @@ jobs:
1818
- x86_64/amd/zen3/Azure-CentOS7-7V73X
1919
- x86_64/amd/zen4/Azure-Alma8-9V33X
2020
- x86_64/amd/zen4/Shinx-RHEL8-9654
21+
- aarch64/a64fx/Deucalion-Rocky85
2122
- aarch64/neoverse_n1/Azure-Ubuntu20-Altra
2223
- aarch64/neoverse_n1/AWS-awslinux-graviton2
2324
- aarch64/neoverse_v1/AWS-awslinux-graviton3

Diff for: .github/workflows/tests_archdetect_nvidia_gpu.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ permissions:
77
contents: read # to fetch code (actions/checkout)
88
jobs:
99
build:
10-
runs-on: ubuntu-latest
10+
runs-on: ubuntu-24.04
1111
strategy:
1212
matrix:
1313
fake_nvidia_smi_script:

Diff for: .github/workflows/tests_eessi_module.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ permissions:
88
contents: read # to fetch code (actions/checkout)
99
jobs:
1010
basic_checks:
11-
runs-on: ubuntu-latest
11+
runs-on: ubuntu-22.04
1212
strategy:
1313
fail-fast: false
1414
matrix:
@@ -63,7 +63,7 @@ jobs:
6363
set -e # Re-enable exit on non-zero status
6464
6565
lmod_and_init_script_comparison:
66-
runs-on: ubuntu-latest
66+
runs-on: ubuntu-22.04
6767
strategy:
6868
fail-fast: false
6969
matrix:
@@ -136,7 +136,7 @@ jobs:
136136
fi
137137
138138
make_sure_load_and_unload_work:
139-
runs-on: ubuntu-latest
139+
runs-on: ubuntu-24.04
140140
strategy:
141141
fail-fast: false
142142
matrix:
@@ -204,4 +204,4 @@ jobs:
204204
echo "Test for checking env variables FAILED" >&2
205205
diff --unified=0 "${initial_env_file}" "${module_cycled_file}"
206206
exit 1
207-
fi
207+
fi

Diff for: .github/workflows/tests_init.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ permissions:
88
contents: read # to fetch code (actions/checkout)
99
jobs:
1010
build:
11-
runs-on: ubuntu-latest
11+
runs-on: ubuntu-24.04
1212
strategy:
1313
matrix:
14-
python: [3.7, 3.8, 3.9, '3.10']
14+
python: [3.8, 3.9, '3.10']
1515
fail-fast: false
1616
steps:
1717
- name: checkout

Diff for: .github/workflows/tests_init_module.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ permissions:
99
contents: read # to fetch code (actions/checkout)
1010
jobs:
1111
build:
12-
runs-on: ubuntu-latest
12+
runs-on: ubuntu-24.04
1313
strategy:
1414
fail-fast: false
1515
matrix:

Diff for: .github/workflows/tests_readme.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ permissions:
1414
contents: read # to fetch code (actions/checkout)
1515
jobs:
1616
build:
17-
runs-on: ubuntu-latest
17+
runs-on: ubuntu-24.04
1818
steps:
1919
- name: Check out software-layer repository
2020
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1

Diff for: .github/workflows/tests_scripts.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ permissions:
2828
contents: read # to fetch code (actions/checkout)
2929
jobs:
3030
build:
31-
runs-on: ubuntu-latest
31+
runs-on: ubuntu-24.04
3232
steps:
3333
- name: checkout
3434
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1

Diff for: EESSI-install-software.sh

+12-3
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,9 @@ else
135135
# Make sure EESSI_PREFIX and EESSI_OS_TYPE are set
136136
source $TOPDIR/init/minimal_eessi_env
137137

138-
# make sure directory exists (since it's expected by init/eessi_environment_variables when using archdetect)
139-
mkdir -p ${EESSI_PREFIX}/software/${EESSI_OS_TYPE}/${EESSI_SOFTWARE_SUBDIR_OVERRIDE}
138+
# make sure the the software and modules directory exist
139+
# (since it's expected by init/eessi_environment_variables when using archdetect and by the EESSI module)
140+
mkdir -p ${EESSI_PREFIX}/software/${EESSI_OS_TYPE}/${EESSI_SOFTWARE_SUBDIR_OVERRIDE}/{modules,software}
140141
)
141142
fi
142143

@@ -340,7 +341,15 @@ else
340341
if [ -f ${easystack_file} ]; then
341342
echo_green "Feeding easystack file ${easystack_file} to EasyBuild..."
342343

343-
${EB} --easystack ${easystack_file} --robot
344+
if [[ ${easystack_file} == *"/rebuilds/"* ]]; then
345+
# the removal script should have removed the original directory and created a new and empty one
346+
# to work around permission issues:
347+
# https://github.com/EESSI/software-layer/issues/556
348+
echo_yellow "This is a rebuild, so using --try-amend=keeppreviousinstall=True to reuse the already created directory"
349+
${EB} --easystack ${easystack_file} --robot --try-amend=keeppreviousinstall=True
350+
else
351+
${EB} --easystack ${easystack_file} --robot
352+
fi
344353
ec=$?
345354

346355
# copy EasyBuild log file if EasyBuild exited with an error

Diff for: EESSI-remove-software.sh

+8-3
Original file line numberDiff line numberDiff line change
@@ -125,13 +125,18 @@ if [ $EUID -eq 0 ]; then
125125
# Two dirname invocations, so returns e.g. /cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/amd/zen2
126126
app_installprefix=$(dirname $(dirname ${app_modulepath}))
127127
app_dir=${app_installprefix}/software/${app}
128+
app_subdirs=$(find ${app_dir} -mindepth 1 -maxdepth 1 -type d)
128129
app_module=${app_installprefix}/modules/all/${app}.lua
129130
echo_yellow "Removing ${app_dir} and ${app_module}..."
130131
rm -rf ${app_dir}
131132
rm -rf ${app_module}
132-
# recreate some directory to work around permission denied
133-
# issues when rebuilding the package
134-
mkdir -p ${app_dir}/easybuild
133+
# recreate the installation directory and do an ls on the first-level subdirectories to work around
134+
# permission issues when reinstalling the application (see https://github.com/EESSI/software-layer/issues/556)
135+
echo_yellow "Recreating an empty ${app_dir}..."
136+
mkdir -p ${app_dir}
137+
# these subdirs don't (and shouldn't) exist, but we need to do the ls anyway as a workaround,
138+
# so redirect to /dev/null and ignore the exit code
139+
ls ${app_subdirs} >& /dev/null || true
135140
done
136141
else
137142
fatal_error "Easystack file ${easystack_file} not found!"

0 commit comments

Comments
 (0)