-
Notifications
You must be signed in to change notification settings - Fork 47
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add CI workflow for software.eessi.io + use software.eessi.io in test…
…s for eessi_container.sh script
- Loading branch information
Showing
3 changed files
with
83 additions
and
7 deletions.
There are no files selected for viewing
2 changes: 1 addition & 1 deletion
2
.github/workflows/test_eessi.yml → .github/workflows/test_eessi-hpc.org.yml
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
# documentation: https://help.github.com/en/articles/workflow-syntax-for-github-actions | ||
name: Tests relying on having software.eessi.io mounted | ||
on: [push, pull_request, workflow_dispatch] | ||
permissions: | ||
contents: read # to fetch code (actions/checkout) | ||
jobs: | ||
pilot: | ||
runs-on: ubuntu-20.04 | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
EESSI_VERSION: | ||
- 2023.06 | ||
EESSI_SOFTWARE_SUBDIR: | ||
- aarch64/generic | ||
- aarch64/neoverse_n1 | ||
- aarch64/neoverse_v1 | ||
- x86_64/amd/zen2 | ||
- x86_64/amd/zen3 | ||
- x86_64/intel/haswell | ||
- x86_64/intel/skylake_avx512 | ||
- x86_64/generic | ||
steps: | ||
- name: Check out software-layer repository | ||
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0 | ||
|
||
- name: Mount EESSI CernVM-FS pilot repository | ||
uses: cvmfs-contrib/github-action-cvmfs@d4641d0d591c9a5c3be23835ced2fb648b44c04b # v3.1 | ||
with: | ||
cvmfs_http_proxy: DIRECT | ||
cvmfs_repositories: software.eessi.io | ||
|
||
- name: Test check_missing_installations.sh script | ||
run: | | ||
source /cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}/init/bash | ||
module load EasyBuild | ||
eb --version | ||
export EESSI_PREFIX=/cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}} | ||
export EESSI_OS_TYPE=linux | ||
export EESSI_SOFTWARE_SUBDIR=${{matrix.EESSI_SOFTWARE_SUBDIR}} | ||
env | grep ^EESSI | sort | ||
echo "just run check_missing_installations.sh (should use eessi-${{matrix.EESSI_VERSION}}*.yml)" | ||
for easystack_file in $(ls easystacks/software.eessi.io/${{matrix.EESSI_VERSION}}/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) | ||
run: | | ||
source /cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}/init/bash | ||
module load EasyBuild | ||
eb --version | ||
export EESSI_PREFIX=/cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}} | ||
export EESSI_OS_TYPE=linux | ||
export EESSI_SOFTWARE_SUBDIR=${{matrix.EESSI_SOFTWARE_SUBDIR}} | ||
env | grep ^EESSI | sort | ||
# 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 ${easystack_file}; then | ||
echo "did NOT capture missing package; test FAILED" | ||
exit 1 | ||
else | ||
echo "captured missing package; test PASSED" | ||
exit 0 | ||
fi |
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