EESSI bash initialization to module file #2059
Workflow file for this run
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: | |
branches: [ "*-software.eessi.io" ] | |
pull_request: | |
permissions: | |
contents: read # to fetch code (actions/checkout) | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
proc_cpuinfo: | |
- x86_64/intel/haswell/archspec-linux-E5-2680-v3 | |
- x86_64/intel/skylake_avx512/archspec-linux-6132 | |
- x86_64/amd/zen2/Azure-CentOS7-7V12 | |
- x86_64/amd/zen3/Azure-CentOS7-7V73X | |
- x86_64/amd/zen4/Azure-Alma8-9V33X | |
- x86_64/amd/zen4/Shinx-RHEL8-9654 | |
- aarch64/neoverse_n1/Azure-Ubuntu20-Altra | |
- aarch64/neoverse_n1/AWS-awslinux-graviton2 | |
- aarch64/neoverse_v1/AWS-awslinux-graviton3 | |
# commented out since these targets are currently not supported in software.eessi.io repo | |
# (and some tests assume that the corresponding subdirectory in software layer is there) | |
# - ppc64le/power9le/unknown-power9le | |
fail-fast: false | |
steps: | |
- name: checkout | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
- name: Mount EESSI CernVM-FS pilot repository | |
uses: cvmfs-contrib/github-action-cvmfs@55899ca74cf78ab874bdf47f5a804e47c198743c # v4.0 | |
with: | |
cvmfs_config_package: https://github.com/EESSI/filesystem-layer/releases/download/latest/cvmfs-config-eessi_latest_all.deb | |
cvmfs_http_proxy: DIRECT | |
cvmfs_repositories: software.eessi.io | |
- 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 EESSI 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 |