Check for CUDA builds in changed easystacks #5
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: Check for CUDA builds in changed easystacks | |
on: | |
push: | |
branches: [ "*-software.eessi.io" ] | |
pull_request: | |
workflow_dispatch: | |
permissions: | |
contents: read # to fetch code (actions/checkout) | |
env: | |
EESSI_ACCELERATOR_TARGETS: | | |
x86_64/amd/zen2: | |
- nvidia/cc80 | |
x86_64/amd/zen3: | |
- nvidia/cc80 | |
jobs: | |
check_missing: | |
runs-on: ubuntu-24.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
EESSI_VERSION: | |
- 2023.06 | |
EESSI_SOFTWARE_SUBDIR_OVERRIDE: | |
- x86_64/amd/zen2 | |
- x86_64/amd/zen3 | |
- x86_64/amd/zen4 | |
- x86_64/intel/haswell | |
- x86_64/intel/skylake_avx512 | |
- x86_64/generic | |
steps: | |
- name: Check out software-layer repository | |
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: find changed easystacks | |
uses: dorny/paths-filter@v3 | |
id: changes | |
with: | |
filters: | | |
changed: | |
- 'easystacks/**' | |
- name: Test check_missing_installations.sh script | |
if: ${{ steps.changes.outputs.changed == 'true' }} | |
run: | | |
export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}} | |
source /cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}/init/bash | |
# set $EESSI_CPU_FAMILY to the CPU architecture that corresponds to $EESSI_SOFTWARE_SUBDIR_OVERRIDE (part before the first slash), | |
# to prevent issues with checks in the Easybuild configuration that use this variable | |
export EESSI_CPU_FAMILY=${EESSI_SOFTWARE_SUBDIR_OVERRIDE%%/*} | |
module load EasyBuild | |
which eb | |
eb --version | |
export EESSI_PREFIX=/cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}} | |
export EESSI_OS_TYPE=linux | |
env | grep ^EESSI | sort | |
# check for missing installations if a file in the easystacks directory is changed | |
echo "check for missing installation in changed easystack files" | |
echo ${{ steps.changes.outputs.changed_files }} | |
for easystack_file in (${{ steps.changes.outputs.changed_files }}); do | |
echo "check missing installatios for ${easystack_file}..." | |
./check_missing_installations.sh ${easystack_file} | |
ec=$? | |
echo "print the output of missing: ${eb_missing_out}" | |
done | |
# now check the accelerator builds for this CPU target | |
#accelerators=$(echo "${EESSI_ACCELERATOR_TARGETS}" | yq ".${EESSI_SOFTWARE_SUBDIR_OVERRIDE}[]") | |
#if [ -z ${accelerators} ]; then | |
# echo "no accelerator targets defined for ${EESSI_SOFTWARE_SUBDIR_OVERRIDE}" | |
#else | |
# for accel in ${accelerators}; do | |
# module use ${EESSI_SOFTWARE_PATH}/accel/${accel}/modules/all | |
# echo "checking missing installations for accelerator ${accel} using modulepath: ${MODULEPATH}" | |
# for easystack_file in $(EESSI_VERSION=${{matrix.EESSI_VERSION}} ACCEL_EASYSTACKS=1 .github/workflows/scripts/only_latest_easystacks.sh); do | |
# echo "check missing installations for ${easystack_file}..." | |
# ./check_missing_installations.sh ${easystack_file} | |
# ec=$? | |
# if [[ ${ec} -ne 0 ]]; then echo "missing installations found for ${easystack_file}!" >&2; exit ${ec}; fi | |
# done | |
# module unuse ${EESSI_SOFTWARE_PATH}/accel/${accel}/modules/all | |
# done | |
#fi */ | |
#if ./check_missing_installations.sh ${easystack_file}; then | |
# echo "did NOT capture missing package; test FAILED" | |
# exit 1 | |
#else | |
# echo "captured missing package; test PASSED" | |
exit 0 | |
fi |