Skip to content

update eb_hooks.py for memory expensive builds of jax #28

update eb_hooks.py for memory expensive builds of jax

update eb_hooks.py for memory expensive builds of jax #28

# 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