From 05eba7313991b8c7bb49d2d00e4403c07ec289b8 Mon Sep 17 00:00:00 2001 From: Thomas Roeblitz Date: Thu, 5 Oct 2023 22:31:07 +0200 Subject: [PATCH 1/9] bio packages - set 1 --- eessi-2023.06-eb-4.8.1-2022a.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 eessi-2023.06-eb-4.8.1-2022a.yml diff --git a/eessi-2023.06-eb-4.8.1-2022a.yml b/eessi-2023.06-eb-4.8.1-2022a.yml new file mode 100644 index 0000000000..86dcd7714a --- /dev/null +++ b/eessi-2023.06-eb-4.8.1-2022a.yml @@ -0,0 +1,7 @@ +easyconfigs: + - BAMM-2.5.0-foss-2022a.eb + - BamTools-2.5.2-GCC-11.3.0.eb + - BCFtools-1.15.1-GCC-11.3.0.eb + - Bowtie2-2.4.5-GCC-11.3.0.eb + - FastTree-2.1.11-GCCcore-11.3.0.eb + - SAMtools-1.16.1-GCC-11.3.0.eb From 2f85702467c4f6179e4fa94237657052860cc8f0 Mon Sep 17 00:00:00 2001 From: Thomas Roeblitz Date: Thu, 5 Oct 2023 23:17:43 +0200 Subject: [PATCH 2/9] add new easystack file to CI --- .github/workflows/test_eessi.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test_eessi.yml b/.github/workflows/test_eessi.yml index 72dc642c7d..2554ed78b3 100644 --- a/.github/workflows/test_eessi.yml +++ b/.github/workflows/test_eessi.yml @@ -25,6 +25,7 @@ jobs: - eessi-2023.06-eb-4.7.2-2022b.yml - eessi-2023.06-eb-4.7.2-system.yml - eessi-2023.06-eb-4.8.0-system.yml + - eessi-2023.06-eb-4.8.1-2022a.yml steps: - name: Check out software-layer repository uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0 From 920fa096f0db6e94e6f1ee2bfcafd59e3637ebb8 Mon Sep 17 00:00:00 2001 From: Thomas Roeblitz Date: Fri, 6 Oct 2023 07:57:08 +0200 Subject: [PATCH 3/9] reverting change on _OVERRIDE + shorter test label --- .github/workflows/test_eessi.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test_eessi.yml b/.github/workflows/test_eessi.yml index 2554ed78b3..a6bce68cf0 100644 --- a/.github/workflows/test_eessi.yml +++ b/.github/workflows/test_eessi.yml @@ -4,7 +4,7 @@ on: [push, pull_request, workflow_dispatch] permissions: contents: read # to fetch code (actions/checkout) jobs: - eessi_pilot_repo: + pilot: runs-on: ubuntu-20.04 strategy: fail-fast: false @@ -39,13 +39,15 @@ jobs: - name: Test check_missing_installations.sh script run: | - export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}} + # export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}} source /cvmfs/pilot.nessi.no/versions/${{matrix.EESSI_VERSION}}/init/bash module load EasyBuild which eb eb --version + eb --show-config export EESSI_PREFIX=/cvmfs/pilot.nessi.no/versions/${{matrix.EESSI_VERSION}} export EESSI_OS_TYPE=linux + export EESSI_SOFTWARE_SUBDIR=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}} env | grep ^EESSI | sort echo "just run check_missing_installations.sh (should use eessi-${{matrix.EESSI_VERSION}}.yml)" ./check_missing_installations.sh ${{matrix.EASYSTACK_FILE}} From 37209de14f7583a8f04e44c4b55a9dda0ba9fe95 Mon Sep 17 00:00:00 2001 From: Thomas Roeblitz Date: Fri, 6 Oct 2023 09:38:42 +0200 Subject: [PATCH 4/9] show EasyBuild config when running script --- check_missing_installations.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/check_missing_installations.sh b/check_missing_installations.sh index 3627d1d0b5..e927f14701 100755 --- a/check_missing_installations.sh +++ b/check_missing_installations.sh @@ -22,6 +22,9 @@ source $TOPDIR/scripts/utils.sh source $TOPDIR/configure_easybuild +echo ">> Active EasyBuild configuration when checking for missing installations:" +${EB:-eb} --show-config + echo ">> Checking for missing installations in ${EASYBUILD_INSTALLPATH}..." eb_missing_out=$LOCAL_TMPDIR/eb_missing.out ${EB:-eb} --easystack ${easystack} --missing 2>&1 | tee ${eb_missing_out} From 54e511159e4abc7cbbe6bf652a56ee1363547337 Mon Sep 17 00:00:00 2001 From: Thomas Roeblitz Date: Fri, 6 Oct 2023 11:32:24 +0200 Subject: [PATCH 5/9] run check script with and without _OVERRIDE --- .github/workflows/test_eessi.yml | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test_eessi.yml b/.github/workflows/test_eessi.yml index a6bce68cf0..71332bca36 100644 --- a/.github/workflows/test_eessi.yml +++ b/.github/workflows/test_eessi.yml @@ -37,9 +37,22 @@ jobs: cvmfs_http_proxy: DIRECT cvmfs_repositories: pilot.nessi.no - - name: Test check_missing_installations.sh script + - name: Test check_missing_installations.sh script with EESSI_SOFTWARE_SUBDIR_OVERRIDE + run: | + export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}} + source /cvmfs/pilot.nessi.no/versions/${{matrix.EESSI_VERSION}}/init/bash + module load EasyBuild + which eb + eb --version + eb --show-config + export EESSI_PREFIX=/cvmfs/pilot.nessi.no/versions/${{matrix.EESSI_VERSION}} + export EESSI_OS_TYPE=linux + env | grep ^EESSI | sort + echo "just run check_missing_installations.sh (should use ${{matrix.EASYSTACK_FILE}})" + ./check_missing_installations.sh ${{matrix.EASYSTACK_FILE}} + + - name: Test check_missing_installations.sh script without EESSI_SOFTWARE_SUBDIR_OVERRIDE run: | - # export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}} source /cvmfs/pilot.nessi.no/versions/${{matrix.EESSI_VERSION}}/init/bash module load EasyBuild which eb @@ -49,7 +62,7 @@ jobs: export EESSI_OS_TYPE=linux export EESSI_SOFTWARE_SUBDIR=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}} env | grep ^EESSI | sort - echo "just run check_missing_installations.sh (should use eessi-${{matrix.EESSI_VERSION}}.yml)" + echo "just run check_missing_installations.sh (should use ${{matrix.EASYSTACK_FILE}})" ./check_missing_installations.sh ${{matrix.EASYSTACK_FILE}} - name: Test check_missing_installations.sh with missing package (GCC/8.3.0) From 0e58034e12bed5782b9a4b81b406ad09ec3c9c92 Mon Sep 17 00:00:00 2001 From: Thomas Roeblitz Date: Fri, 6 Oct 2023 11:42:43 +0200 Subject: [PATCH 6/9] run some steps if preceeding test(s) failed --- .github/workflows/test_eessi.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/test_eessi.yml b/.github/workflows/test_eessi.yml index 71332bca36..a60eba47d1 100644 --- a/.github/workflows/test_eessi.yml +++ b/.github/workflows/test_eessi.yml @@ -38,6 +38,7 @@ jobs: cvmfs_repositories: pilot.nessi.no - name: Test check_missing_installations.sh script with EESSI_SOFTWARE_SUBDIR_OVERRIDE + if: '!cancelled()' run: | export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}} source /cvmfs/pilot.nessi.no/versions/${{matrix.EESSI_VERSION}}/init/bash @@ -52,6 +53,7 @@ jobs: ./check_missing_installations.sh ${{matrix.EASYSTACK_FILE}} - name: Test check_missing_installations.sh script without EESSI_SOFTWARE_SUBDIR_OVERRIDE + if: '!cancelled()' run: | source /cvmfs/pilot.nessi.no/versions/${{matrix.EESSI_VERSION}}/init/bash module load EasyBuild @@ -66,6 +68,7 @@ jobs: ./check_missing_installations.sh ${{matrix.EASYSTACK_FILE}} - name: Test check_missing_installations.sh with missing package (GCC/8.3.0) + if: '!cancelled()' run: | export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}} source /cvmfs/pilot.nessi.no/versions/${{matrix.EESSI_VERSION}}/init/bash From 487263801c7351157404a94cb946c72475fc4069 Mon Sep 17 00:00:00 2001 From: Thomas Roeblitz Date: Fri, 6 Oct 2023 14:15:33 +0200 Subject: [PATCH 7/9] updated CI to reduce number of tests --- .github/workflows/test_eessi.yml | 47 ++++++++++++++++---------------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/.github/workflows/test_eessi.yml b/.github/workflows/test_eessi.yml index a60eba47d1..1a558f1cb0 100644 --- a/.github/workflows/test_eessi.yml +++ b/.github/workflows/test_eessi.yml @@ -11,21 +11,13 @@ jobs: matrix: EESSI_VERSION: - 2023.06 - EESSI_SOFTWARE_SUBDIR_OVERRIDE: + EESSI_SOFTWARE_SUBDIR: - aarch64/generic - x86_64/amd/zen2 - x86_64/intel/broadwell - x86_64/intel/cascadelake - x86_64/intel/skylake_avx512 - x86_64/generic - EASYSTACK_FILE: - - eessi-2023.06-eb-4.7.2-2021a.yml - - eessi-2023.06-eb-4.7.2-2021b.yml - - eessi-2023.06-eb-4.7.2-2022a.yml - - eessi-2023.06-eb-4.7.2-2022b.yml - - eessi-2023.06-eb-4.7.2-system.yml - - eessi-2023.06-eb-4.8.0-system.yml - - eessi-2023.06-eb-4.8.1-2022a.yml steps: - name: Check out software-layer repository uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0 @@ -40,53 +32,60 @@ jobs: - name: Test check_missing_installations.sh script with EESSI_SOFTWARE_SUBDIR_OVERRIDE if: '!cancelled()' run: | - export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}} + export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${{matrix.EESSI_SOFTWARE_SUBDIR}} source /cvmfs/pilot.nessi.no/versions/${{matrix.EESSI_VERSION}}/init/bash module load EasyBuild - which eb eb --version - eb --show-config export EESSI_PREFIX=/cvmfs/pilot.nessi.no/versions/${{matrix.EESSI_VERSION}} export EESSI_OS_TYPE=linux env | grep ^EESSI | sort - echo "just run check_missing_installations.sh (should use ${{matrix.EASYSTACK_FILE}})" - ./check_missing_installations.sh ${{matrix.EASYSTACK_FILE}} + for easystack_file in $(ls eessi-${{matrix.EESSI_VERSION}}-eb-*.yml); 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 - name: Test check_missing_installations.sh script without EESSI_SOFTWARE_SUBDIR_OVERRIDE if: '!cancelled()' run: | source /cvmfs/pilot.nessi.no/versions/${{matrix.EESSI_VERSION}}/init/bash module load EasyBuild - which eb eb --version - eb --show-config export EESSI_PREFIX=/cvmfs/pilot.nessi.no/versions/${{matrix.EESSI_VERSION}} export EESSI_OS_TYPE=linux - export EESSI_SOFTWARE_SUBDIR=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}} + export EESSI_SOFTWARE_SUBDIR=${{matrix.EESSI_SOFTWARE_SUBDIR}} env | grep ^EESSI | sort - echo "just run check_missing_installations.sh (should use ${{matrix.EASYSTACK_FILE}})" - ./check_missing_installations.sh ${{matrix.EASYSTACK_FILE}} + for easystack_file in $(ls eessi-${{matrix.EESSI_VERSION}}-eb-*.yml); 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 - name: Test check_missing_installations.sh with missing package (GCC/8.3.0) if: '!cancelled()' run: | - export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}} source /cvmfs/pilot.nessi.no/versions/${{matrix.EESSI_VERSION}}/init/bash module load EasyBuild which eb eb --version export EESSI_PREFIX=/cvmfs/pilot.nessi.no/versions/${{matrix.EESSI_VERSION}} export EESSI_OS_TYPE=linux + export EESSI_SOFTWARE_SUBDIR=${{matrix.EESSI_SOFTWARE_SUBDIR}} env | grep ^EESSI | sort - echo "modify easystack file by adding a missing package (GCC/8.3.0)" - echo " - GCC-8.3.0:" >> ${{matrix.EASYSTACK_FILE}} - tail -n 5 ${{matrix.EASYSTACK_FILE}} + # create dummy easystack file with a single entry (something that is not installed in EESSI) + easystack_file="test.yml" + echo "easyconfigs:" > ${easystack_file} + echo " - GCC-8.3.0:" >> ${easystack_file} + echo "created easystack file '${easystack_file}' with a missing installation (GCC/8.3.0):" + cat ${easystack_file} # note, check_missing_installations.sh exits 1 if a package was # missing, which is intepreted as false (exit code based, not # boolean logic), hence when the script exits 0 if no package was # missing it is interpreted as true, thus the test did not capture # the missing package - if ./check_missing_installations.sh ${{matrix.EASYSTACK_FILE}}; then + if ./check_missing_installations.sh ${easystack_file}; then echo "did NOT capture missing package; test FAILED" exit 1 else From 5300d767d4f859a674f38ca0752c382fb97db850 Mon Sep 17 00:00:00 2001 From: Thomas Roeblitz Date: Fri, 6 Oct 2023 14:17:13 +0200 Subject: [PATCH 8/9] call 'eb --show-config' for each easystack file being processed --- EESSI-pilot-install-software.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/EESSI-pilot-install-software.sh b/EESSI-pilot-install-software.sh index c6c51e7abc..026919157f 100755 --- a/EESSI-pilot-install-software.sh +++ b/EESSI-pilot-install-software.sh @@ -172,8 +172,6 @@ if [ ! -z "${shared_fs_path}" ]; then export EASYBUILD_SOURCEPATH=${shared_eb_sourcepath}:${EASYBUILD_SOURCEPATH} fi -${EB} --show-config - echo ">> Setting up \$MODULEPATH..." # make sure no modules are loaded module --force purge @@ -200,6 +198,8 @@ for easystack_file in $(cat ${pr_diff} | grep '^+++' | cut -f2 -d' ' | sed 's@^[ # load EasyBuild module (will be installed if it's not available yet) source ${TOPDIR}/load_easybuild_module.sh ${eb_version} + ${EB} --show-config + echo_green "All set, let's start installing some software with EasyBuild v${eb_version} in ${EASYBUILD_INSTALLPATH}..." if [ -f ${easystack_file} ]; then From 7cd9277bbb73739a0e6aa465b1b044e25055502d Mon Sep 17 00:00:00 2001 From: Thomas Roeblitz Date: Fri, 6 Oct 2023 14:45:00 +0200 Subject: [PATCH 9/9] revert back to have yml-file times architecture tests --- .github/workflows/test_eessi.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/test_eessi.yml b/.github/workflows/test_eessi.yml index 1a558f1cb0..832d4cf74f 100644 --- a/.github/workflows/test_eessi.yml +++ b/.github/workflows/test_eessi.yml @@ -18,6 +18,14 @@ jobs: - x86_64/intel/cascadelake - x86_64/intel/skylake_avx512 - x86_64/generic + EASYSTACK_FILE: + - eessi-2023.06-eb-4.7.2-2021a.yml + - eessi-2023.06-eb-4.7.2-2021b.yml + - eessi-2023.06-eb-4.7.2-2022a.yml + - eessi-2023.06-eb-4.7.2-2022b.yml + - eessi-2023.06-eb-4.7.2-system.yml + - eessi-2023.06-eb-4.8.0-system.yml + - eessi-2023.06-eb-4.8.1-2022a.yml steps: - name: Check out software-layer repository uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0 @@ -39,12 +47,8 @@ jobs: export EESSI_PREFIX=/cvmfs/pilot.nessi.no/versions/${{matrix.EESSI_VERSION}} export EESSI_OS_TYPE=linux env | grep ^EESSI | sort - for easystack_file in $(ls eessi-${{matrix.EESSI_VERSION}}-eb-*.yml); 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 + echo "just run check_missing_installations.sh (should use ${{matrix.EASYSTACK_FILE}})" + ./check_missing_installations.sh ${{matrix.EASYSTACK_FILE}} - name: Test check_missing_installations.sh script without EESSI_SOFTWARE_SUBDIR_OVERRIDE if: '!cancelled()' @@ -56,12 +60,8 @@ jobs: export EESSI_OS_TYPE=linux export EESSI_SOFTWARE_SUBDIR=${{matrix.EESSI_SOFTWARE_SUBDIR}} env | grep ^EESSI | sort - for easystack_file in $(ls eessi-${{matrix.EESSI_VERSION}}-eb-*.yml); 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 + echo "just run check_missing_installations.sh (should use ${{matrix.EASYSTACK_FILE}})" + ./check_missing_installations.sh ${{matrix.EASYSTACK_FILE}} - name: Test check_missing_installations.sh with missing package (GCC/8.3.0) if: '!cancelled()'