Skip to content

Commit e3a9eb8

Browse files
committed
Merge branch 'main' into eessi_container_unionfs
2 parents dd4cc2a + 7e4067b commit e3a9eb8

File tree

17 files changed

+85
-150
lines changed

17 files changed

+85
-150
lines changed

.github/workflows/scripts/only_latest_easystacks.sh

Lines changed: 0 additions & 58 deletions
This file was deleted.

.github/workflows/test-eb-hooks.yml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@ on:
66
workflow_dispatch:
77
permissions:
88
contents: read # to fetch code (actions/checkout)
9-
env:
10-
EESSI_VERSION: '2023.06'
119
jobs:
1210
check_eb_hooks:
1311
runs-on: ubuntu-24.04
12+
strategy:
13+
matrix:
14+
EESSI_VERSION:
15+
- '2023.06'
1416
steps:
1517
- name: Check out software-layer repository
1618
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
@@ -50,7 +52,10 @@ jobs:
5052
git show origin/${{ github.base_ref }}:$FILE > "$TEMP_FILE"
5153
fi
5254
55+
# replace <EESSI_VERSION> placeholder (as is also done in install_scripts.sh)
56+
sed -i "s/<EESSI_VERSION>/${{matrix.EESSI_VERSION}}/g" "${TEMP_FILE}"
57+
5358
# Compare the hooks to what is shipped in the repository
54-
source /cvmfs/software.eessi.io/versions/${EESSI_VERSION}/init/bash
59+
source /cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}/init/bash
5560
module load EESSI-extend
5661
diff "$TEMP_FILE" "$EASYBUILD_HOOKS"

.github/workflows/tests_archdetect_nvidia_gpu.yml

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ jobs:
1717
- 2xa100 # cc80, supported with (atleast) zen2 CPU
1818
- 4xa100 # cc80, supported with (atleast) zen2 CPU
1919
- cc01 # non-existing GPU
20+
EESSI_VERSION:
21+
- '2023.06'
2022
fail-fast: false
2123
steps:
2224
- name: checkout
@@ -31,6 +33,10 @@ jobs:
3133
cvmfs_http_proxy: DIRECT
3234
cvmfs_repositories: software.eessi.io
3335

36+
- name: Fix EESSI version in init scripts
37+
run: |
38+
sed -i "s/__EESSI_VERSION_DEFAULT__/${{matrix.EESSI_VERSION}}/g" init/eessi_defaults
39+
3440
- name: test accelerator detection
3541
run: |
3642
export EESSI_SOFTWARE_SUBDIR_OVERRIDE='x86_64/amd/zen2'
@@ -68,7 +74,7 @@ jobs:
6874
match=$(grep "${pattern}" init.out || true)
6975
test "x${match}" = "x" || (echo "unexpected match found for '${pattern}' in init output" && exit 1)
7076
71-
pattern="Prepending /cvmfs/software.eessi.io/versions/2023.06/software/linux/.*/accel/.*/modules/all to \$MODULEPATH"
77+
pattern="Prepending /cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}/software/linux/.*/accel/.*/modules/all to \$MODULEPATH"
7278
echo ">>> checking for lack of pattern '${pattern}' in init output..."
7379
match=$(grep "${pattern}" init.out || true)
7480
test "x${match}" = "x" || (echo "unexpected match found for '${pattern}' in init output" && exit 1)
@@ -79,19 +85,19 @@ jobs:
7985
echo ">>> checking for pattern '${pattern}' in init output..."
8086
grep "${pattern}" init.out || (echo "FAILED 1" || exit 1)
8187
82-
pattern="Prepending /cvmfs/software.eessi.io/versions/2023.06/software/linux/.*/accel/.*/modules/all to \$MODULEPATH"
88+
pattern="Prepending /cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}/software/linux/.*/accel/.*/modules/all to \$MODULEPATH"
8389
echo ">>> checking for lack of pattern '${pattern}' in init output..."
8490
match=$(grep "${pattern}" init.out || true)
8591
test "x${match}" = "x" || (echo "unexpected match found for '${pattern}' in init output" && exit 1)
8692
8793
else
8894
echo ">>> checking for 'accel/nvidia/cc80' in init output..."
8995
grep "archdetect found supported accelerator for CPU target x86_64/amd/zen2: accel/nvidia/cc80" init.out || (echo "FAILED 2" && exit 1)
90-
grep "Prepending /cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/amd/zen2/accel/nvidia/cc80/modules/all to \$MODULEPATH" init.out || (echo "FAILED 3" && exit 1)
96+
grep "Prepending /cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}/software/linux/x86_64/amd/zen2/accel/nvidia/cc80/modules/all to \$MODULEPATH" init.out || (echo "FAILED 3" && exit 1)
9197
fi
9298
9399
echo ">>> checking last line of init output..."
94-
tail -1 init.out | grep "Environment set up to use EESSI (2023.06), have fun!" || (echo "FAILED, full init utput:" && cat init.out && exit 1)
100+
tail -1 init.out | grep "Environment set up to use EESSI (${{matrix.EESSI_VERSION}}), have fun!" || (echo "FAILED, full init utput:" && cat init.out && exit 1)
95101
96102
echo "All checks on init output PASSED"
97103
else
@@ -118,7 +124,7 @@ jobs:
118124
echo ">>> checking for 'accel/nvidia/cc80' in init output..."
119125
grep "archdetect found supported accelerator for CPU target x86_64/amd/zen3: accel/nvidia/cc80" init.out || (echo "FAILED 1" && exit 1)
120126
grep "Using x86_64/amd/zen2 as software subdirectory" init.out || (echo "FAILED 2" && exit 1)
121-
grep "Prepending /cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/amd/zen2/modules/all to \$MODULEPATH" init.out || (echo "FAILED 3" && exit 1)
122-
grep "Prepending /cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/amd/zen3/accel/nvidia/cc80/modules/all to \$MODULEPATH" init.out || (echo "FAILED 4" && exit 1)
127+
grep "Prepending /cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}/software/linux/x86_64/amd/zen2/modules/all to \$MODULEPATH" init.out || (echo "FAILED 3" && exit 1)
128+
grep "Prepending /cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}/software/linux/x86_64/amd/zen3/accel/nvidia/cc80/modules/all to \$MODULEPATH" init.out || (echo "FAILED 4" && exit 1)
123129
124130
echo "All checks on init output PASSED"

.github/workflows/tests_eessi_module.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
fail-fast: false
1414
matrix:
1515
EESSI_VERSION:
16-
- 2023.06
16+
- '2023.06'
1717
steps:
1818
- name: Check out software-layer repository
1919
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
@@ -68,7 +68,7 @@ jobs:
6868
fail-fast: false
6969
matrix:
7070
EESSI_VERSION:
71-
- 2023.06
71+
- '2023.06'
7272
EESSI_SOFTWARE_SUBDIR_OVERRIDE:
7373
- x86_64/amd/zen3
7474
- x86_64/amd/zen4
@@ -84,6 +84,10 @@ jobs:
8484
cvmfs_config_package: https://github.com/EESSI/filesystem-layer/releases/download/latest/cvmfs-config-eessi_latest_all.deb
8585
cvmfs_http_proxy: DIRECT
8686
cvmfs_repositories: software.eessi.io
87+
88+
- name: Fix EESSI version in init scripts
89+
run: |
90+
sed -i "s/__EESSI_VERSION_DEFAULT__/${{matrix.EESSI_VERSION}}/g" init/eessi_defaults
8791
8892
- name: Test for expected variables match between Lmod init script and original bash script
8993
run: |
@@ -141,7 +145,7 @@ jobs:
141145
fail-fast: false
142146
matrix:
143147
EESSI_VERSION:
144-
- 2023.06
148+
- '2023.06'
145149
EESSI_SOFTWARE_SUBDIR_OVERRIDE:
146150
- none
147151
- x86_64/amd/zen2

.github/workflows/tests_init_module.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
fail-fast: false
1515
matrix:
1616
EESSI_VERSION:
17-
- 2023.06
17+
- '2023.06'
1818
EESSI_SOFTWARE_SUBDIR_OVERRIDE:
1919
- x86_64/intel/haswell
2020
steps:
@@ -27,6 +27,12 @@ jobs:
2727
cvmfs_config_package: https://github.com/EESSI/filesystem-layer/releases/download/latest/cvmfs-config-eessi_latest_all.deb
2828
cvmfs_http_proxy: DIRECT
2929
cvmfs_repositories: software.eessi.io
30+
31+
- name: Fix EESSI version in lmod init scripts
32+
run: |
33+
for shell in $(ls init/lmod); do
34+
sed -i "s/__EESSI_VERSION_DEFAULT__/${{matrix.EESSI_VERSION}}/g" init/lmod/${shell}
35+
done
3036
3137
- name: Clone assert.sh script
3238
run: git clone https://github.com/lehmannro/assert.sh.git

.github/workflows/tests_readme.yml

Lines changed: 0 additions & 30 deletions
This file was deleted.

EESSI-install-software.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,7 @@ else
359359
for easystack_file in ${rebuild_easystacks} ${new_easystacks}; do
360360

361361
# make sure that easystack file being picked up is for EESSI version that we're building for...
362-
echo "${easystack_file}" | grep -q "^easystacks/${EESSI_VERSION}/"
362+
echo "${easystack_file}" | grep -q "^easystacks/$(basename ${EESSI_CVMFS_REPO})/${EESSI_VERSION}/"
363363
if [ $? -ne 0 ]; then
364364
fatal_error "Easystack file ${easystack_file} is not intended for EESSI version ${EESSI_VERSION}, giving up!"
365365
fi

README.md

Lines changed: 5 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,17 @@
1-
# Software layer
1+
# Software layer scripts
22

3-
The software layer of the EESSI project uses [EasyBuild](https://docs.easybuild.io), [Lmod](https://lmod.readthedocs.io) and [archspec](https://archspec.readthedocs.io).
3+
Scripts for building the EESSI software layer.
44

55
See also https://www.eessi.io/docs/software_layer .
66

7-
## Pilot software stack
8-
9-
You can set up your environment by sourcing the init script:
10-
11-
```
12-
$ source /cvmfs/software.eessi.io/versions/2023.06/init/bash
13-
Found EESSI repo @ /cvmfs/software.eessi.io/versions/2023.06!
14-
Derived subdirectory for software layer: x86_64/intel/haswell
15-
Using x86_64/intel/haswell subdirectory for software layer
16-
Initializing Lmod...
17-
Prepending /cvmfs/software.eessi.io/versions/2023.06/software/x86_64/intel/haswell/modules/all to $MODULEPATH...
18-
Environment set up to use EESSI (2023.06), have fun!
19-
[EESSI 2023.06] $
20-
```
21-
22-
### Accessing EESSI via a container
23-
24-
You need Singularity version 3.7 or newer. Then, simply run
25-
26-
```
27-
$ ./eessi_container.sh
28-
```
29-
Once you get presented the prompt `Singularity>` run the above `source` command.
30-
31-
If you want to build a package for the software repository, simply add the arguments `--access rw`, e.g., full command would be
32-
33-
```
34-
$ ./eessi_container.sh --access rw
35-
```
36-
Note, not all features/arguments listed via `./eessi_container.sh --help` are implemented.
7+
Easystack files used for specifying which software installations are included in EESSI software layer are in
8+
[EESSI/software-layer](https://github.com/EESSI/software-layer) repository.
379

3810
# License
3911

4012
The software in this repository is distributed under the terms of the
4113
[GNU General Public License v2.0](https://opensource.org/licenses/GPL-2.0).
4214

43-
See [LICENSE](https://github.com/EESSI/software-layer/blob/main/LICENSE) for more information.
15+
See [LICENSE](https://github.com/EESSI/software-layer-scripts/blob/main/LICENSE) for more information.
4416

4517
SPDX-License-Identifier: GPL-2.0-only

eb_hooks.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,7 @@ def parse_hook_zen4_module_only(ec, eprefix):
408408
# Need to escape newline character so that the newline character actually ends up in the module file
409409
# (otherwise, it splits the string, and a 2-line string ends up in the modulefile, resulting in syntax error)
410410
errmsg = "EasyConfigs using toolchains based on GCCcore-12.2.0 are not supported for the Zen4 architecture.\\n"
411-
errmsg += "See https://www.eessi.io/docs/known_issues/eessi-2023.06/#gcc-1220-and-foss-2022b-based-modules-cannot-be-loaded-on-zen4-architecture"
411+
errmsg += "See https://www.eessi.io/docs/known_issues/eessi-<EESSI_VERSION>/#gcc-1220-and-foss-2022b-based-modules-cannot-be-loaded-on-zen4-architecture"
412412
ec['modluafooter'] = 'if (not os.getenv("%s")) then LmodError("%s") end' % (env_varname, errmsg)
413413

414414

init/eessi_defaults

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
# license: GPLv2
99
#
1010

11+
export EESSI_VERSION_DEFAULT='__EESSI_VERSION_DEFAULT__'
12+
1113
# use different defaults for RISC-V, as we want to redirect to the riscv.eessi.io repo
1214
if [[ $(uname -m) == "riscv64" ]]; then
1315
export EESSI_CVMFS_REPO="${EESSI_CVMFS_REPO_OVERRIDE:=/cvmfs/riscv.eessi.io}"
@@ -20,7 +22,7 @@ if [[ $(uname -m) == "riscv64" ]]; then
2022
fi
2123
else
2224
export EESSI_CVMFS_REPO="${EESSI_CVMFS_REPO_OVERRIDE:=/cvmfs/software.eessi.io}"
23-
export EESSI_VERSION="${EESSI_VERSION_OVERRIDE:=2023.06}"
25+
export EESSI_VERSION="${EESSI_VERSION_OVERRIDE:=${EESSI_VERSION_DEFAULT}}"
2426
fi
2527
# use archdetect by default, unless otherwise specified
2628
export EESSI_USE_ARCHDETECT="${EESSI_USE_ARCHDETECT:=1}"

0 commit comments

Comments
 (0)