|
1 | 1 | # documentation: https://help.github.com/en/articles/workflow-syntax-for-github-actions |
2 | | -name: Tests relying on having EESSI pilot repo mounted |
| 2 | +name: Check for missing software installations in pilot.nessi.no |
3 | 3 | on: [push, pull_request, workflow_dispatch] |
4 | 4 | permissions: |
5 | 5 | contents: read # to fetch code (actions/checkout) |
6 | 6 | jobs: |
7 | | - pilot: |
8 | | - runs-on: ubuntu-20.04 |
| 7 | + check_missing: |
| 8 | + runs-on: ubuntu-22.04 |
9 | 9 | strategy: |
10 | 10 | fail-fast: false |
11 | 11 | matrix: |
12 | 12 | EESSI_VERSION: |
13 | 13 | - 2023.06 |
14 | | - EESSI_SOFTWARE_SUBDIR: |
| 14 | + EESSI_SOFTWARE_SUBDIR_OVERRIDE: |
15 | 15 | # - aarch64/generic |
16 | 16 | - x86_64/amd/zen2 |
17 | 17 | - x86_64/intel/broadwell |
18 | | -# - x86_64/intel/cascadelake |
19 | 18 | - x86_64/intel/skylake_avx512 |
20 | 19 | - x86_64/generic |
21 | | - EASYSTACK_FILE: |
22 | | - - eessi-2023.06-eb-4.7.2-2021a.yml |
23 | | - - eessi-2023.06-eb-4.7.2-2021b.yml |
24 | | - - eessi-2023.06-eb-4.7.2-2022a.yml |
25 | | - - eessi-2023.06-eb-4.7.2-2022b.yml |
26 | | - - eessi-2023.06-eb-4.7.2-system.yml |
27 | | - - eessi-2023.06-eb-4.8.0-system.yml |
28 | | - - eessi-2023.06-eb-4.8.1-2022a.yml |
29 | | - - eessi-2023.06-eb-4.8.1-system.yml |
30 | | - - eessi-2023.06-eb-4.8.2-2022a.yml |
31 | 20 | steps: |
32 | 21 | - name: Check out software-layer repository |
33 | 22 | uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0 |
34 | 23 |
|
35 | | - - name: Mount EESSI CernVM-FS pilot repository |
| 24 | + - name: Mount NESSI CernVM-FS repository |
36 | 25 | uses: cvmfs-contrib/github-action-cvmfs@d4641d0d591c9a5c3be23835ced2fb648b44c04b # v3.1 |
37 | 26 | with: |
38 | 27 | cvmfs_config_package: https://github.com/NorESSI/filesystem-layer/releases/download/latest/cvmfs-config-nessi_latest_all.deb |
39 | 28 | cvmfs_http_proxy: DIRECT |
40 | 29 | cvmfs_repositories: pilot.nessi.no |
41 | 30 |
|
42 | | - - name: Test check_missing_installations.sh script with EESSI_SOFTWARE_SUBDIR_OVERRIDE |
43 | | - if: '!cancelled()' |
44 | | - run: | |
45 | | - export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${{matrix.EESSI_SOFTWARE_SUBDIR}} |
46 | | - source /cvmfs/pilot.nessi.no/versions/${{matrix.EESSI_VERSION}}/init/bash |
47 | | - module load EasyBuild |
48 | | - eb --version |
49 | | - export EESSI_PREFIX=/cvmfs/pilot.nessi.no/versions/${{matrix.EESSI_VERSION}} |
50 | | - export EESSI_OS_TYPE=linux |
51 | | - env | grep ^EESSI | sort |
52 | | - echo "just run check_missing_installations.sh (should use ${{matrix.EASYSTACK_FILE}})" |
53 | | - ./check_missing_installations.sh ${{matrix.EASYSTACK_FILE}} |
54 | | -
|
55 | | - - name: Test check_missing_installations.sh script without EESSI_SOFTWARE_SUBDIR_OVERRIDE |
56 | | - if: '!cancelled()' |
| 31 | + - name: Test check_missing_installations.sh script |
57 | 32 | run: | |
| 33 | + export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}} |
58 | 34 | source /cvmfs/pilot.nessi.no/versions/${{matrix.EESSI_VERSION}}/init/bash |
| 35 | + # set $EESSI_CPU_FAMILY to the CPU architecture that corresponds to $EESSI_SOFTWARE_SUBDIR_OVERRIDE (part before the first slash), |
| 36 | + # to prevent issues with checks in the Easybuild configuration that use this variable |
| 37 | + export EESSI_CPU_FAMILY=${EESSI_SOFTWARE_SUBDIR_OVERRIDE%%/*} |
59 | 38 | module load EasyBuild |
| 39 | + which eb |
60 | 40 | eb --version |
61 | 41 | export EESSI_PREFIX=/cvmfs/pilot.nessi.no/versions/${{matrix.EESSI_VERSION}} |
62 | 42 | export EESSI_OS_TYPE=linux |
63 | | - export EESSI_SOFTWARE_SUBDIR=${{matrix.EESSI_SOFTWARE_SUBDIR}} |
64 | 43 | env | grep ^EESSI | sort |
65 | | - echo "just run check_missing_installations.sh (should use ${{matrix.EASYSTACK_FILE}})" |
66 | | - ./check_missing_installations.sh ${{matrix.EASYSTACK_FILE}} |
| 44 | + echo "just run check_missing_installations.sh (should use easystacks/pilot.nessi.no/${{matrix.EESSI_VERSION}}/eessi-${{matrix.EESSI_VERSION}}-*.yml)" |
| 45 | + for easystack_file in $(ls easystacks/pilot.nessi.no/${{matrix.EESSI_VERSION}}/eessi-${{matrix.EESSI_VERSION}}-eb-*.yml); do |
| 46 | + echo "check missing installations for ${easystack_file}..." |
| 47 | + ./check_missing_installations.sh ${easystack_file} |
| 48 | + ec=$? |
| 49 | + if [[ ${ec} -ne 0 ]]; then echo "missing installations found for ${easystack_file}!" >&2; exit ${ec}; fi |
| 50 | + done |
67 | 51 |
|
68 | 52 | - name: Test check_missing_installations.sh with missing package (GCC/8.3.0) |
69 | | - if: '!cancelled()' |
70 | 53 | run: | |
| 54 | + export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}} |
71 | 55 | source /cvmfs/pilot.nessi.no/versions/${{matrix.EESSI_VERSION}}/init/bash |
| 56 | + # set $EESSI_CPU_FAMILY to the CPU architecture that corresponds to $EESSI_SOFTWARE_SUBDIR_OVERRIDE (part before the first slash), |
| 57 | + # to prevent issues with checks in the Easybuild configuration that use this variable |
| 58 | + export EESSI_CPU_FAMILY=${EESSI_SOFTWARE_SUBDIR_OVERRIDE%%/*} |
72 | 59 | module load EasyBuild |
73 | 60 | which eb |
74 | 61 | eb --version |
75 | 62 | export EESSI_PREFIX=/cvmfs/pilot.nessi.no/versions/${{matrix.EESSI_VERSION}} |
76 | 63 | export EESSI_OS_TYPE=linux |
77 | | - export EESSI_SOFTWARE_SUBDIR=${{matrix.EESSI_SOFTWARE_SUBDIR}} |
78 | 64 | env | grep ^EESSI | sort |
79 | 65 | # create dummy easystack file with a single entry (something that is not installed in EESSI) |
80 | 66 | easystack_file="test.yml" |
|
0 commit comments