Merge pull request #277 from trz42/nessi-23.06-ReFrame-system #582
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# documentation: https://help.github.com/en/articles/workflow-syntax-for-github-actions | |
name: Tests for eessi_archdetect.sh | |
on: [push, pull_request] | |
permissions: | |
contents: read # to fetch code (actions/checkout) | |
jobs: | |
build: | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
proc_cpuinfo: | |
- x86_64/intel/broadwell/archspec-linux-E5-2683-v4 | |
- x86_64/intel/skylake_avx512/archspec-linux-6132 | |
- x86_64/amd/zen2/Azure-CentOS7-7V12 | |
# commented out since these targets are currently not supported in pilot.nessi.no repo | |
# (and some tests assume that the corresponding subdirectory in software layer is there) | |
# - aarch64/neoverse-n1/Azure-Ubuntu20-Altra | |
# - aarch64/neoverse-n1/AWS-awslinux-graviton2 | |
# - aarch64/neoverse-v1/AWS-awslinux-graviton3 | |
# - ppc64le/power9le/unknown-power9le | |
# - x86_64/intel/haswell/archspec-linux-E5-2680-v3 | |
# - x86_64/amd/zen3/Azure-CentOS7-7V73X | |
fail-fast: false | |
steps: | |
- name: checkout | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
- name: Mount NESSI CernVM-FS repository | |
uses: cvmfs-contrib/github-action-cvmfs@55899ca74cf78ab874bdf47f5a804e47c198743c # v4.0 | |
with: | |
cvmfs_config_package: https://github.com/NorESSI/filesystem-layer/releases/download/latest/cvmfs-config-nessi_latest_all.deb | |
cvmfs_http_proxy: DIRECT | |
cvmfs_repositories: pilot.nessi.no | |
- name: test eessi_archdetect.sh | |
run: | | |
export EESSI_MACHINE_TYPE=${{matrix.proc_cpuinfo}} | |
export EESSI_MACHINE_TYPE=${EESSI_MACHINE_TYPE%%/*} | |
export EESSI_PROC_CPUINFO=./tests/archdetect/${{matrix.proc_cpuinfo}}.cpuinfo | |
# check that printing of best match works correctly | |
CPU_ARCH=$(./init/eessi_archdetect.sh cpupath) | |
if [[ $CPU_ARCH == "$( cat ./tests/archdetect/${{matrix.proc_cpuinfo}}.output )" ]]; then | |
echo "Test for ${{matrix.proc_cpuinfo}} PASSED: $CPU_ARCH" | |
else | |
echo "Test for ${{matrix.proc_cpuinfo}} FAILED: $CPU_ARCH" >&2 | |
exit 1 | |
fi | |
# check that $EESSI_SOFTWARE_SUBDIR_OVERRIDE is honored | |
export EESSI_SOFTWARE_SUBDIR_OVERRIDE='dummy/cpu' | |
CPU_ARCH=$(./init/eessi_archdetect.sh cpupath) | |
if [[ $CPU_ARCH == "${EESSI_SOFTWARE_SUBDIR_OVERRIDE}" ]]; then | |
echo "Test for picking up on \$EESSI_SOFTWARE_SUBDIR_OVERRIDE PASSED" | |
else | |
echo "Test for picking up on \$EESSI_SOFTWARE_SUBDIR_OVERRIDE FAILED" >&2 | |
exit 1 | |
fi | |
unset EESSI_SOFTWARE_SUBDIR_OVERRIDE | |
# check that printing of all matches works correctly (-a option for cpupath action) | |
CPU_ARCHES=$(./init/eessi_archdetect.sh -a cpupath) | |
if [[ $CPU_ARCHES == "$( cat ./tests/archdetect/${{matrix.proc_cpuinfo}}.all.output )" ]]; then | |
echo "Test for ${{matrix.proc_cpuinfo}} PASSED: $CPU_ARCHES" | |
else | |
echo "Test for ${{matrix.proc_cpuinfo}} FAILED: $CPU_ARCHES" >&2 | |
exit 1 | |
fi | |
# Check all those architectures actually exist (if this NESSI version has been populated already) | |
if [ -d ${EESSI_PREFIX}/software/linux ]; then | |
for dir in $(echo "$CPU_ARCHES" | tr ':' '\n'); do | |
# Search all EESSI versions as we may drop support at some point | |
ls -d ${EESSI_PREFIX}/software/linux/${dir} | |
done | |
fi |