Skip to content

Add new hook to filter invalid scales based on features set in the config file #272

Add new hook to filter invalid scales based on features set in the config file

Add new hook to filter invalid scales based on features set in the config file #272

Workflow file for this run

# documentation: https://help.github.com/en/articles/workflow-syntax-for-github-actions
name: Tests for EESSI test suite, using EESSI pilot repo
on: [push, pull_request, workflow_dispatch]
permissions: read-all
jobs:
test_with_eessi_pilot:
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
EESSI_VERSION:
- "2021.12"
steps:
- name: Check out software-layer repository
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
persist-credentials: false
- 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: pilot.eessi-hpc.org
- name: Run test suite
run: |
source /cvmfs/pilot.eessi-hpc.org/versions/${{matrix.EESSI_VERSION}}/init/bash
# install latest version of EasyBuild, to install ReFrame with it,
# since that includes the ReFrame test library (hpctestlib) that we rely on
python3 -m venv venv
source venv/bin/activate
pip3 install easybuild
eb --version
export EASYBUILD_PREFIX=$HOME/easybuild
# need to force module generation with --module-only --force because 'pip check' fails
# in EESSI pilot 2021.12, see https://github.com/EESSI/compatibility-layer/issues/152
eb ReFrame-4.3.3.eb || eb ReFrame-4.3.3.eb --module-only --force
# load ReFrame
module use $HOME/easybuild/modules/all
module load ReFrame/4.3.3
reframe --version
# configure ReFrame (cfr. https://reframe-hpc.readthedocs.io/en/stable/manpage.html#environment)
export RFM_CONFIG_FILES=$PWD/config/github_actions.py
export RFM_SYSTEM=github_actions_eessi
export RFM_CHECK_SEARCH_PATH=$PWD/eessi/testsuite/tests/apps
# update $PYTHONPATH so 'import eessi.testsuite.utils' works
export PYTHONPATH=$PWD:$PYTHONPATH
echo $PYTHONPATH
python -c 'import eessi.testsuite.utils'
# show active ReFrame configuration,
# enable verbose output to help expose problems with configuration file (if any)
reframe -vvv --show-config
# perform a dry run of *all* tests, without any filtering
time reframe --dry-run 2>&1 | tee dry_run.out
pattern='PASSED .*0 failure'
grep "${pattern}" dry_run.out || (echo "Pattern '${pattern}' not found!" && exit 1)
# list tests that are tagged with both 'CI' and '1_node'
time reframe --tag CI --tag 1_node --list-detailed 2>&1 | tee ci_1-node_tests_list.txt
# GROMACS CI test is HECBioSim/Crambin input
pattern='benchmark_info=HECBioSim/Crambin'
grep "${pattern}" ci_1-node_tests_list.txt || (echo "Pattern '${pattern}' not found!" && exit 1)