-
Notifications
You must be signed in to change notification settings - Fork 50
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #668 from MaKaNu/2023.06-software.eessi.io
Add new init scripts for new initialization module
- Loading branch information
Showing
8 changed files
with
178 additions
and
0 deletions.
There are no files selected for viewing
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,50 @@ | ||
#!/bin/bash | ||
EESSI_VERSION="2023.06" | ||
export LMOD_PAGER=cat | ||
|
||
# initialize assert framework | ||
if [ ! -d assert.sh ]; then | ||
echo "assert.sh not cloned." | ||
echo "" | ||
echo "run \`git clone https://github.com/lehmannro/assert.sh.git\`" | ||
exit 1 | ||
fi | ||
. assert.sh/assert.sh | ||
|
||
TEST_SHELLS=("bash" "zsh" "fish" "ksh") | ||
SHELLS=$@ | ||
|
||
for shell in ${SHELLS[@]}; do | ||
echo = | awk 'NF += (OFS = $_) + 100' | ||
echo RUNNING TESTS FOR SHELL: $shell | ||
echo = | awk 'NF += (OFS = $_) + 100' | ||
if [[ ! " ${TEST_SHELLS[*]} " =~ [[:space:]]${shell}[[:space:]] ]]; then | ||
### EXCEPTION FOR CSH ### | ||
echo -e "\033[33mWe don't now how to test the shell '$shell', PRs are Welcome.\033[0m" | ||
else | ||
# TEST 1: Source Script and check Module Output | ||
assert "$shell -c 'source init/lmod/$shell' 2>&1 " "EESSI/$EESSI_VERSION loaded successfully" | ||
# TEST 2: Check if module overviews first section is the loaded EESSI module | ||
MODULE_SECTIONS=($($shell -c "source init/lmod/$shell 2>/dev/null; module ov 2>&1 | grep -e '---'")) | ||
PATTERN="/cvmfs/software\.eessi\.io/versions/$EESSI_VERSION/software/linux/x86_64/(intel/haswell|amd/zen3)/modules/all" | ||
assert_raises 'echo "${MODULE_SECTIONS[1]}" | grep -E "$PATTERN"' | ||
# TEST 3: Check if module overviews second section is the EESSI init module | ||
assert "echo ${MODULE_SECTIONS[4]}" "/cvmfs/software.eessi.io/versions/$EESSI_VERSION/init/modules" | ||
# Test 4: Load Python module and check version | ||
command="$shell -c 'source init/lmod/$shell 2>/dev/null; module load Python/3.10.8-GCCcore-12.2.0; python --version'" | ||
expected="Python 3.10.8" | ||
assert "$command" "$expected" | ||
# Test 5: Load Python module and check path | ||
PYTHON_PATH=$($shell -c "source init/lmod/$shell 2>/dev/null; module load Python/3.10.8-GCCcore-12.2.0; which python") | ||
PATTERN="/cvmfs/software\.eessi\.io/versions/$EESSI_VERSION/software/linux/x86_64/(intel/haswell|amd/zen3)/software/Python/3\.10\.8-GCCcore-12\.2\.0/bin/python" | ||
echo "$PYTHON_PATH" | grep -E "$PATTERN" | ||
assert_raises 'echo "$PYTHON_PATH" | grep -E "$PATTERN"' | ||
|
||
#End Test Suite | ||
assert_end "source_eessi_$shell" | ||
fi | ||
done | ||
|
||
|
||
# RESET PAGER | ||
export LMOD_PAGER= |
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,43 @@ | ||
# documentation: https://help.github.com/en/articles/workflow-syntax-for-github-actions | ||
name: Check for EESSI init shell scripts to load eessi software module in software.eessi.io | ||
on: | ||
push: | ||
branches: [ "*-software.eessi.io" ] | ||
pull_request: | ||
workflow_dispatch: | ||
permissions: | ||
contents: read # to fetch code (actions/checkout) | ||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
EESSI_VERSION: | ||
- 2023.06 | ||
EESSI_SOFTWARE_SUBDIR_OVERRIDE: | ||
- x86_64/intel/haswell | ||
steps: | ||
- name: Check out software-layer repository | ||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | ||
|
||
- 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: software.eessi.io | ||
|
||
- name: Clone assert.sh script | ||
run: git clone https://github.com/lehmannro/assert.sh.git | ||
|
||
- name: Install missing shells | ||
run: | | ||
sudo apt update | ||
sudo apt install zsh ksh fish | ||
echo "# INIT ZSH" > ~/.zshrc | ||
- name: Run tests for available shells | ||
run: | | ||
.github/workflows/scripts/test_init_scripts.sh "bash" "zsh" "ksh" "fish" "csh" | ||
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,16 @@ | ||
# Choose an EESSI version | ||
EESSI_VERSION="${EESSI_VERSION:-2023.06}" | ||
# Path to top-level module tree | ||
export MODULEPATH=/cvmfs/software.eessi.io/versions/"$EESSI_VERSION"/init/modules | ||
. /cvmfs/software.eessi.io/versions/"$EESSI_VERSION"/compat/linux/$(uname -m)/usr/share/Lmod/init/bash | ||
|
||
if [ -z "$__Init_Default_Modules" ]; then | ||
export __Init_Default_Modules=1; | ||
|
||
## ability to predefine elsewhere the default list | ||
LMOD_SYSTEM_DEFAULT_MODULES=${LMOD_SYSTEM_DEFAULT_MODULES:-"EESSI/$EESSI_VERSION"} | ||
export LMOD_SYSTEM_DEFAULT_MODULES | ||
module --initial_load --no_redirect restore | ||
else | ||
module refresh | ||
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# Choose an EESSI version | ||
if (! $?EESSI_VERSION) then; set EESSI_VERSION = "2023.06"; endif | ||
# Path to top-level module tree | ||
setenv MODULEPATH /cvmfs/software.eessi.io/versions/"$EESSI_VERSION"/init/modules | ||
source /cvmfs/software.eessi.io/versions/"$EESSI_VERSION"/compat/linux/`uname -m`/usr/share/Lmod/init/csh | ||
|
||
if (! $?__Init_Default_Modules ) then | ||
setenv __Init_Default_Modules 1; | ||
|
||
## ability to predefine elsewhere the default list | ||
if (! $?LMOD_SYSTEM_DEFAULT_MODULES) then; setenv LMOD_SYSTEM_DEFAULT_MODULES "EESSI/$EESSI_VERSION"; endif | ||
module --initial_load --no_redirect restore | ||
else | ||
module refresh | ||
endif | ||
|
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,15 @@ | ||
# Choose an EESSI version | ||
set EESSI_VERSION (set -q EESSI_VERSION; and echo "$EESSI_VERSION"; or echo "2023.06") | ||
# Path to top-level module tree | ||
set -x MODULEPATH /cvmfs/software.eessi.io/versions/"$EESSI_VERSION"/init/modules | ||
. /cvmfs/software.eessi.io/versions/"$EESSI_VERSION"/compat/linux/(uname -m)/usr/share/Lmod/init/fish | ||
|
||
if test -z "$__Init_Default_Modules" | ||
export __Init_Default_Modules=1; | ||
|
||
## ability to predefine elsewhere the default list | ||
set -x LMOD_SYSTEM_DEFAULT_MODULES (set -q LMOD_SYSTEM_DEFAULT_MODULE; and echo "$LMOD_SYSTEM_DEFAULT_MODULE"; or echo "EESSI/$EESSI_VERSION") | ||
module --initial_load --no_redirect restore | ||
else | ||
module refresh | ||
end |
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,16 @@ | ||
# Choose an EESSI version | ||
EESSI_VERSION="${EESSI_VERSION:-2023.06}" | ||
# Path to top-level module tree | ||
export MODULEPATH=/cvmfs/software.eessi.io/versions/"$EESSI_VERSION"/init/modules | ||
. /cvmfs/software.eessi.io/versions/"$EESSI_VERSION"/compat/linux/$(uname -m)/usr/share/Lmod/init/ksh | ||
|
||
if [ -z "$__Init_Default_Modules" ]; then | ||
export __Init_Default_Modules=1; | ||
|
||
## ability to predefine elsewhere the default list | ||
LMOD_SYSTEM_DEFAULT_MODULES=${LMOD_SYSTEM_DEFAULT_MODULES:-"EESSI/$EESSI_VERSION"} | ||
export LMOD_SYSTEM_DEFAULT_MODULES | ||
module --initial_load --no_redirect restore | ||
else | ||
module refresh | ||
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# Choose an EESSI version | ||
EESSI_VERSION="${EESSI_VERSION:-2023.06}" | ||
# Path to top-level module tree | ||
export MODULEPATH=/cvmfs/software.eessi.io/versions/"$EESSI_VERSION"/init/modules | ||
. /cvmfs/software.eessi.io/versions/"$EESSI_VERSION"/compat/linux/$(uname -m)/usr/share/Lmod/init/zsh | ||
|
||
if [ -z "$__Init_Default_Modules" ]; then | ||
export __Init_Default_Modules=1; | ||
|
||
## ability to predefine elsewhere the default list | ||
LMOD_SYSTEM_DEFAULT_MODULES=${LMOD_SYSTEM_DEFAULT_MODULES:-"EESSI/$EESSI_VERSION"} | ||
export LMOD_SYSTEM_DEFAULT_MODULES | ||
module --initial_load --no_redirect restore | ||
else | ||
module refresh | ||
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