@@ -29,6 +29,11 @@ permissions:
29
29
jobs :
30
30
build :
31
31
runs-on : ubuntu-24.04
32
+ strategy :
33
+ fail-fast : false
34
+ matrix :
35
+ EESSI_VERSION :
36
+ - ' 2023.06'
32
37
steps :
33
38
- name : checkout
34
39
uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
39
44
40
45
- name : test load_easybuild_module.sh script
41
46
run : |
42
- # bind current directory into container as /software-layer
43
- export SINGULARITY_BIND="${PWD}:/software-layer"
47
+ # bind current directory into container as /software-layer-scripts
48
+ export SINGULARITY_BIND="${PWD}:/software-layer-scripts "
44
49
45
50
# can't test with EasyBuild versions older than v4.5.2 when using EESSI 2023.06,
46
51
# since Python in compat layer is Python 3.11.x;
@@ -58,64 +63,79 @@ jobs:
58
63
echo 'export TMPDIR=$(mktemp -d)' >> ${test_script}
59
64
# set up environment to have utility functions in place that load_easybuild_module.sh script relies on,
60
65
# along with $EESSI_* environment variables, and Lmod
61
- echo 'ls -l /software-layer/' >> ${test_script}
62
- echo 'source /software-layer/scripts/utils.sh' >> ${test_script}
63
- echo 'source /software-layer/init/eessi_environment_variables' >> ${test_script}
66
+ echo 'ls -l /software-layer-scripts/' >> ${test_script}
67
+ echo 'export EESSI_VERSION_OVERRIDE="${{matrix.EESSI_VERSION}}"' >> ${test_script}
68
+ echo 'source /software-layer-scripts/scripts/utils.sh' >> ${test_script}
69
+ echo 'source /software-layer-scripts/init/eessi_environment_variables' >> ${test_script}
64
70
echo 'source ${EPREFIX}/usr/share/Lmod/init/bash' >> ${test_script}
65
71
# minimal configuration for EasyBuild so we can test installation aspect of load_easybuild_module.sh script
66
72
echo "export EASYBUILD_INSTALLPATH=/tmp/eb-${EB_VERSION}" >> ${test_script}
67
73
echo 'module use ${EASYBUILD_INSTALLPATH}/modules/all' >> ${test_script}
68
74
echo '' >> ${test_script}
69
- echo "source /software-layer/load_easybuild_module.sh ${EB_VERSION}" >> ${test_script}
75
+ echo "source /software-layer-scripts /load_easybuild_module.sh ${EB_VERSION}" >> ${test_script}
70
76
echo 'module list' >> ${test_script}
71
77
echo 'eb --version' >> ${test_script}
72
78
73
79
chmod u+x ${test_script}
74
80
81
+ # make sure that correct EESSI version is used (required because default is a placeholder version)
82
+ export EESSI_VERSION_OVERRIDE="${{matrix.EESSI_VERSION}}"
83
+
75
84
# run wrapper script + capture & check output
76
85
out="${PWD}/eb-${EB_VERSION}.out"
77
- ./eessi_container.sh --access rw --mode run --verbose /software-layer/run_in_compat_layer_env.sh /software-layer/eb-${EB_VERSION}.sh 2>&1 | tee ${out}
86
+ ./eessi_container.sh --access rw --mode run --verbose /software-layer-scripts /run_in_compat_layer_env.sh /software-layer-scripts /eb-${EB_VERSION}.sh 2>&1 | tee ${out}
78
87
pattern="^This is EasyBuild ${EB_VERSION} "
79
88
grep "${pattern}" ${out} || (echo "Pattern '${pattern}' not found in output!" && exit 1)
80
89
done
81
90
82
91
- name : test install_software_layer.sh script
83
92
run : |
84
- # bind current directory into container as /software-layer
85
- export SINGULARITY_BIND="${PWD}:/software-layer"
93
+ # bind current directory into container as /software-layer-scripts
94
+ export SINGULARITY_BIND="${PWD}:/software-layer-scripts "
86
95
# force using x86_64/generic, to avoid triggering an installation from scratch
87
96
sed -i "s@./EESSI-install-software.sh@\"export EESSI_SOFTWARE_SUBDIR_OVERRIDE='x86_64/generic'; ./EESSI-install-software.sh\"@g" install_software_layer.sh
88
97
# skip installation of CUDA SDKs, since this is too heavy for CI
89
98
sed -i "s@./EESSI-install-software.sh@./EESSI-install-software.sh --skip-cuda-install@g" install_software_layer.sh
90
- ./eessi_container.sh --mode run --verbose /software-layer/install_software_layer.sh
99
+
100
+ # make sure that correct EESSI version is used (required because default is a placeholder version)
101
+ export EESSI_VERSION_OVERRIDE="${{matrix.EESSI_VERSION}}"
102
+
103
+ ./eessi_container.sh --mode run --verbose /software-layer-scripts/install_software_layer.sh
91
104
92
105
- name : test create_directory_tarballs.sh script
93
106
run : |
94
- # bind current directory into container as /software-layer
95
- export SINGULARITY_BIND="${PWD}:/software-layer"
107
+ # bind current directory into container as /software-layer-scripts
108
+ export SINGULARITY_BIND="${PWD}:/software-layer-scripts"
109
+
110
+ # make sure that correct EESSI version is used (required because default is a placeholder version)
111
+ export EESSI_VERSION_OVERRIDE="${{matrix.EESSI_VERSION}}"
112
+
96
113
# scripts need to be copied to /tmp,
97
114
# since create_directory_tarballs.sh must be accessible from within build container
98
- ./eessi_container.sh --mode run --verbose /software-layer/create_directory_tarballs.sh 2023.06
115
+ ./eessi_container.sh --mode run --verbose /software-layer-scripts /create_directory_tarballs.sh 2023.06
99
116
# check if tarballs have been produced
100
117
ls -l *.tar.gz
101
118
102
119
- name : test create_lmodsitepackage.py script
103
120
run : |
104
- # bind current directory into container as /software-layer
105
- export SINGULARITY_BIND="${PWD}:/software-layer"
121
+ # bind current directory into container as /software-layer-scripts
122
+ export SINGULARITY_BIND="${PWD}:/software-layer-scripts "
106
123
107
- # Creates .lmod/SitePackage.lua in current dir, which then gets bind-mounted into /software-layer
124
+ # Creates .lmod/SitePackage.lua in current dir, which then gets bind-mounted into /software-layer-scripts
108
125
python3 create_lmodsitepackage.py .
109
126
# run some commands to make sure that generated Lmod SitePackage file works
110
127
test_script="${PWD}/test_lmod_sitepackage.sh"
111
128
echo '#!/bin/bash' > ${test_script}
112
- echo 'export LMOD_PACKAGE_PATH="/software-layer/.lmod"' > ${test_script}
129
+ echo 'export LMOD_PACKAGE_PATH="/software-layer-scripts /.lmod"' > ${test_script}
113
130
echo 'ml --config' >> ${test_script}
114
131
115
132
chmod u+x ${test_script}
116
133
134
+ # make sure that correct EESSI version is used (required because default is a placeholder version)
135
+ export EESSI_VERSION_OVERRIDE="${{matrix.EESSI_VERSION}}"
136
+
117
137
out="${PWD}/test_create_lmodsitepackage.out"
118
- ./eessi_container.sh --mode run --verbose /software-layer/run_in_compat_layer_env.sh /software-layer/test_lmod_sitepackage.sh 2>&1 | tee ${out}
119
- for pattern in "^Site Pkg location.*/software-layer/.lmod/SitePackage.lua" "LMOD_SITEPACKAGE_LOCATION.*/software-layer/.lmod/SitePackage.lua"; do
138
+ ./eessi_container.sh --mode run --verbose /software-layer-scripts /run_in_compat_layer_env.sh /software-layer-scripts /test_lmod_sitepackage.sh 2>&1 | tee ${out}
139
+ for pattern in "^Site Pkg location.*/software-layer-scripts /.lmod/SitePackage.lua" "LMOD_SITEPACKAGE_LOCATION.*/software-layer-scripts /.lmod/SitePackage.lua"; do
120
140
grep "${pattern}" ${out} || (echo "Pattern '${pattern}' not found in output!" && exit 1)
121
141
done
0 commit comments