@@ -55,32 +55,46 @@ jobs:
5555 with :
5656 fetch-depth : 0 # Fetch all history for all branches and tags
5757
58+ - name : Clone EESSI/software-layer-scripts repository
59+ run : |
60+ git clone https://github.com/EESSI/software-layer-scripts
61+
62+ - name : Show host system info
63+ run : |
64+ echo "/proc/cpuinfo:"
65+ cat /proc/cpuinfo
66+ echo
67+ echo "lscpu:"
68+ lscpu
69+
5870 - name : Mount EESSI CernVM-FS pilot repository
5971 uses : cvmfs-contrib/github-action-cvmfs@55899ca74cf78ab874bdf47f5a804e47c198743c # v4.0
6072 with :
6173 cvmfs_config_package : https://github.com/EESSI/filesystem-layer/releases/download/latest/cvmfs-config-eessi_latest_all.deb
6274 cvmfs_http_proxy : DIRECT
6375 cvmfs_repositories : software.eessi.io
6476
65- - name : Test check_missing_installations.sh script
77+ - name : Check for missing installlations
6678 run : |
6779 export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}}
6880 source /cvmfs/software.eessi.io/versions/${EESSI_VERSION}/init/bash
6981 # set $EESSI_CPU_FAMILY to the CPU architecture that corresponds to $EESSI_SOFTWARE_SUBDIR_OVERRIDE (part before the first slash),
7082 # to prevent issues with checks in the Easybuild configuration that use this variable
7183 export EESSI_CPU_FAMILY=${EESSI_SOFTWARE_SUBDIR_OVERRIDE%%/*}
72- module load EasyBuild
73- which eb
74- eb --version
7584 export EESSI_PREFIX=/cvmfs/software.eessi.io/versions/${EESSI_VERSION}
7685 export EESSI_OS_TYPE=linux
7786 env | grep ^EESSI | sort
7887
7988 # first check the CPU-only builds for this CPU target
80- echo "just run check_missing_installations.sh (should use easystacks/software.eessi.io/${EESSI_VERSION}/eessi-${EESSI_VERSION}-*.yml with latest EasyBuild release) "
89+ echo "first run check_missing_installations.sh for CPU-only builds "
8190 for easystack_file in $(EESSI_VERSION=${EESSI_VERSION} .github/workflows/scripts/only_latest_easystacks.sh); do
82- echo "check missing installations for ${easystack_file}..."
83- ./check_missing_installations.sh ${easystack_file}
91+ eb_version=$(echo ${easystack_file} | sed 's/.*eb-\([0-9.]*\).*.yml/\1/g')
92+ echo "check missing installations for ${easystack_file} with EasyBuild ${eb_version}..."
93+ module purge
94+ module load EasyBuild/${eb_version}
95+ which eb
96+ eb --version
97+ software-layer-scripts/check_missing_installations.sh ${easystack_file}
8498 ec=$?
8599 if [[ ${ec} -ne 0 ]]; then echo "missing installations found for ${easystack_file}!" >&2; exit ${ec}; fi
86100 done
@@ -94,15 +108,23 @@ jobs:
94108 module use ${EESSI_SOFTWARE_PATH}/accel/${accel}/modules/all
95109 echo "checking missing installations for accelerator ${accel} using modulepath: ${MODULEPATH}"
96110 for easystack_file in $(EESSI_VERSION=${EESSI_VERSION} ACCEL_EASYSTACKS=1 .github/workflows/scripts/only_latest_easystacks.sh); do
97- echo "check missing installations for ${easystack_file}..."
98- ./check_missing_installations.sh ${easystack_file}
111+ eb_version=$(echo ${easystack_file} | sed 's/.*eb-\([0-9.]*\).*.yml/\1/g')
112+ echo "check missing installations for ${easystack_file} with EasyBuild ${eb_version}..."
113+ module purge
114+ module load EasyBuild/${eb_version}
115+ which eb
116+ eb --version
117+ software-layer-scripts/check_missing_installations.sh ${easystack_file}
99118 ec=$?
100119 if [[ ${ec} -ne 0 ]]; then echo "missing installations found for ${easystack_file}!" >&2; exit ${ec}; fi
101120 done
102121 module unuse ${EESSI_SOFTWARE_PATH}/accel/${accel}/modules/all
103122 done
104123 fi
105124
125+ # make sure that Lmod cache file is present
126+ ls -l ${EESSI_SOFTWARE_PATH}/.lmod/cache/spiderT.lua
127+
106128 - name : Test check_missing_installations.sh with missing package (GCC/8.3.0)
107129 run : |
108130 export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}}
@@ -127,35 +149,10 @@ jobs:
127149 # boolean logic), hence when the script exits 0 if no package was
128150 # missing it is interpreted as true, thus the test did not capture
129151 # the missing package
130- if . /check_missing_installations.sh ${easystack_file}; then
152+ if software-layer-scripts /check_missing_installations.sh ${easystack_file}; then
131153 echo "did NOT capture missing package; test FAILED"
132154 exit 1
133155 else
134156 echo "captured missing package; test PASSED"
135157 exit 0
136158 fi
137-
138- - name : Check that EasyBuild hook is up to date
139- if : ${{ github.event_name == 'pull_request' }}
140- run : |
141- FILE="eb_hooks.py"
142- TEMP_FILE="$(mktemp)"
143-
144- # Fetch base branch
145- git fetch origin ${{ github.base_ref }}
146-
147- # Check if the hooks has changed in the PR
148- if git diff --name-only origin/${{ github.base_ref }}...HEAD | grep -q "^$FILE$"; then
149- echo "Hooks changed in PR. Using PR version."
150- cp "$FILE" "$TEMP_FILE"
151- else
152- echo "File not changed in PR. Using default branch version."
153- git show origin/${{ github.base_ref }}:$FILE > "$TEMP_FILE"
154- fi
155-
156- # Compare the hooks to what is shipped in the repository
157- # (it is overkill, but harmless, to do this for every architecture)
158- export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}}
159- source /cvmfs/software.eessi.io/versions/${EESSI_VERSION}/init/bash
160- module load EESSI-extend
161- diff "$TEMP_FILE" "$EASYBUILD_HOOKS"
0 commit comments