-
Notifications
You must be signed in to change notification settings - Fork 52
98 lines (93 loc) · 4.44 KB
/
test-check_easystacks.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# 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