update eb_hooks.py for memory expensive builds of jax #28
Workflow file for this run
This file contains hidden or 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
# documentation: https://help.github.com/en/articles/workflow-syntax-for-github-actions | |
name: Tests for EESSI-extend module functionality in software.eessi.io | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
permissions: | |
contents: read # to fetch code (actions/checkout) | |
jobs: | |
basic_checks: | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
EESSI_VERSION: | |
- '2023.06' | |
steps: | |
- name: Check out software-layer repository | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
- name: Mount EESSI CernVM-FS repository | |
uses: eessi/github-action-eessi@v3 | |
with: | |
eessi_stack_version: ${{matrix.EESSI_VERSION}} | |
use_eessi_module: true | |
- name: Install the EESSI-extend shipped with the repository | |
run: | | |
# Define a function to check the values of environment variables | |
# and another that checks an environment does not contain environment | |
# variables matching a certain pattern | |
source .github/workflows/scripts/test_utils.sh | |
# Let's start from a clean slate (unload the EESSI module) | |
module purge | |
check_disallowed_env_prefix EESSI_ | |
check_disallowed_env_prefix EASYBUILD_ | |
# Load the EESSI module | |
module load EESSI/${{matrix.EESSI_VERSION}} | |
check_disallowed_env_prefix EASYBUILD_ | |
# Load EasyBuild to install EESSI-extend | |
module load EasyBuild | |
# Set an installation path | |
export MY_INSTALLATION_PATH=/tmp/easybuild | |
export EASYBUILD_PREFIX=$MY_INSTALLATION_PATH | |
eb EESSI-extend-easybuild.eb --rebuild | |
# Verify that we can pick the installed version up | |
module use $MY_INSTALLATION_PATH/modules/all | |
module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild | |
echo $EBROOTEESSIMINEXTEND | grep $MY_INSTALLATION_PATH || { echo "ERROR: Installed version of EESSI-extend not picked up (loaded $EBROOTEESSIMINEXTEND)" >&2; exit 1; } | |
module unload EESSI-extend | |
# That should have unset all EasyBuild envvars (including EASYBUILD_PREFIX) | |
check_disallowed_env_prefix EASYBUILD_ | |
module unuse $MY_INSTALLATION_PATH/modules/all | |
- name: Run tests for EESSI-extend in the various CPU-only scenarios | |
run: | | |
export MY_INSTALLATION_PATH=/tmp/easybuild | |
# Define a function to check the values of environment variables | |
# and another that checks an environment does not contain environment | |
# variables matching a certain pattern | |
source .github/workflows/scripts/test_utils.sh | |
# Let's start from a clean slate | |
module purge | |
module load EESSI/${{matrix.EESSI_VERSION}} | |
# Access the installed EESSI-extend | |
module use "$MY_INSTALLATION_PATH"/modules/all | |
check_disallowed_env_prefix EASYBUILD_ | |
# Configure for CVMFS install | |
export EESSI_CVMFS_INSTALL=1 | |
module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild | |
# check some common EasyBuild settings | |
check_env_var "EASYBUILD_READ_ONLY_INSTALLDIR" "1" | |
check_env_var "EASYBUILD_ALLOW_LOADED_MODULES" "EasyBuild,EESSI-extend" | |
check_env_var "EASYBUILD_SYSROOT" "$EESSI_EPREFIX" | |
check_env_var "EASYBUILD_HOOKS" "/cvmfs/software.eessi.io/versions/${{matrix.EESSI_VERSION}}/init/easybuild/eb_hooks.py" | |
check_env_var "EASYBUILD_RPATH" "1" | |
check_env_var "EASYBUILD_FILTER_ENV_VARS" "LD_LIBRARY_PATH" | |
# check some specific ones | |
check_env_var "EASYBUILD_INSTALLPATH" "$EESSI_SOFTWARE_PATH" | |
check_env_var "EASYBUILD_UMASK" "022" | |
# unload and check the environment is clean again | |
module unload EESSI-extend | |
check_disallowed_env_prefix EASYBUILD_ | |
unset EESSI_CVMFS_INSTALL | |
# Now configure for a site | |
export EESSI_SITE_INSTALL=1 | |
module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild | |
# check some specific envvars | |
check_env_var "EASYBUILD_INSTALLPATH" "$EESSI_SITE_SOFTWARE_PATH" | |
check_env_var "EASYBUILD_UMASK" "022" | |
# unload and check the environment is clean again | |
module unload EESSI-extend | |
check_disallowed_env_prefix EASYBUILD_ | |
unset EESSI_SITE_INSTALL | |
# Now for a project | |
export EESSI_PROJECT_INSTALL="$MY_INSTALLATION_PATH" | |
module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild | |
# check some specific envvars | |
check_env_var "EASYBUILD_INSTALLPATH" "$MY_INSTALLATION_PATH/versions/$EESSI_VERSION/software/linux/$EESSI_SOFTWARE_SUBDIR" | |
check_env_var "EASYBUILD_UMASK" "002" | |
check_env_var "EASYBUILD_GROUP_WRITABLE_INSTALLDIR" "1" | |
# unload and check the environment is clean again | |
module unload EESSI-extend | |
check_disallowed_env_prefix EASYBUILD_ | |
unset EESSI_PROJECT_INSTALL | |
# Now for a user | |
export EESSI_USER_INSTALL="$MY_INSTALLATION_PATH/$USER" | |
mkdir -p $EESSI_USER_INSTALL # must exist | |
module load EESSI-extend/${{matrix.EESSI_VERSION}}-easybuild | |
# check some specific envvars | |
check_env_var "EASYBUILD_INSTALLPATH" "$MY_INSTALLATION_PATH/$USER/versions/$EESSI_VERSION/software/linux/$EESSI_SOFTWARE_SUBDIR" | |
check_env_var "EASYBUILD_UMASK" "077" | |
# unload and check the environment is clean again | |
module unload EESSI-extend | |
check_disallowed_env_prefix EASYBUILD_ | |
unset EESSI_USER_INSTALL | |