Skip to content

Tests for EESSI software repository #178

Tests for EESSI software repository

Tests for EESSI software repository #178

# documentation: https://help.github.com/en/articles/workflow-syntax-for-github-actions
name: Tests for EESSI software repository
on:
push:
pull_request:
schedule:
# run check daily at 08:00 UTC
# * is a special character in YAML so you have to quote this string
- cron: '0 14 * * *'
# Declare default permissions as read only.
permissions: read-all
jobs:
software_repo:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
EESSI_VERSION:
# note: use string quotes here, to avoid values being interpreted as floating point values...
- '2023.06'
EESSI_ARCH:
- aarch64
- x86_64
EESSI_OS:
- linux
python:
- 3.8
steps:
- name: Check out code
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Install QEMU
if: matrix.EESSI_ARCH != 'x86_64'
run: |
sudo apt-get update
sudo apt-get install qemu-user
- name: Mount EESSI CernVM-FS 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: Check compat layer in EESSI repository
env:
EPREFIX: /cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}/compat/linux/${{matrix.EESSI_ARCH}}
run: |
# trigger automount
echo '>> ls /cvmfs/software.eessi.io'
ls /cvmfs/software.eessi.io
# check which Stratum 1 we're connected to
echo '>> cvmfs_config stat -v software.eessi.io'
cvmfs_config stat -v software.eessi.io
echo '>> ls ${EPREFIX}/startprefix'
ls ${EPREFIX}/startprefix
# enter Prefix environment, list installed packages, and exit
# this magically works, even for non-x86_64 architectures, thanks to QEMU \o/
echo '>> ${EPREFIX}/startprefix <<< "which bash; qlist -IRv; exit"'
${EPREFIX}/startprefix <<< "which bash; qlist -IRv; exit"
- name: Set up Python
uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0
with:
python-version: ${{matrix.python}}
architecture: x64
- name: Install ReFrame
run: |
pip install reframe-hpc requests
- name: Run ReFrame test suite
run: |
export EESSI_ARCH=${{matrix.EESSI_ARCH}}
export EESSI_OS=${{matrix.EESSI_OS}}
export EESSI_VERSION=${{matrix.EESSI_VERSION}}
reframe -r -v -c ./test/compat_layer.py