From 2119538b97fd88dee60199396eec240cd8ebfdb8 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 29 Jan 2026 16:55:56 +0100 Subject: [PATCH 1/3] force interactive shell for 'eessi shell' --- src/eessi/cli/shell.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/eessi/cli/shell.py b/src/eessi/cli/shell.py index 50f1a4e..c8447b2 100644 --- a/src/eessi/cli/shell.py +++ b/src/eessi/cli/shell.py @@ -36,6 +36,6 @@ def shell( with open(init_file, 'w') as fp: fp.write(f"set -e; source /cvmfs/software.eessi.io/versions/{eessi_version}/init/bash") - res = subprocess.run(['/bin/bash', '--init-file', init_file]) + res = subprocess.run(['/bin/bash', '--init-file', init_file, '-i']) if res.returncode != 0: report_error("ERROR: Non-zero exit code detected for interactive shell!", exit_code=res.returncode) From bec3aa63fe5eb5050f8cac2045f9f822de0b262f Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 29 Jan 2026 17:09:09 +0100 Subject: [PATCH 2/3] add tests for 'eessi shell' in CI workflow --- .github/workflows/test.yml | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 86dbe61..3836e09 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,16 +24,35 @@ jobs: echo "export PATH=$PREFIX/bin:$PATH" >> ~/env echo "export PYTHONPATH=$(ls -d $PREFIX/lib/python*/site-packages)" >> ~/env - - name: Test init (without EESSI mounted) + - name: Test 'eessi init' (without EESSI mounted) run: | source ~/env eessi init 2>&1 | grep "^ERROR: /cvmfs/software.eessi.io/versions/2023.06 does not exist" + - name: Test 'eessi shell' (without EESSI mounted) + run: | + source ~/env + eessi shell --eessi-version 2023.06 2>&1 | tee shell.out + grep "No such file or directory" shell.out + grep "^ERROR: Non-zero exit code detected for interactive shell" shell.out + - name: Mount EESSI uses: eessi/github-action-eessi@e1f8f20638ea417a18d23ab29443ee34794ff900 # v3.1.0 - - name: Test init + - name: Test 'eessi init' run: | source ~/env eessi init eval "$(eessi init)" + + - name: Test 'eessi shell' + run: | + source ~/env + + eessi shell 2>&1 | tee shell.out + grep "EESSI version to use is not specified" shell.out + + eessi shell --eessi-version 2023.06 <<< 'env | grep ^EESSI' 2>&1 | tee shell.out + grep '^Found EESSI repo @ /cvmfs/software.eessi.io/versions/2023.06' shell.out + grep '^Environment set up to use EESSI (2025.06), have fun' shell.out + grep '^EESSI_VERSION=2023.06' shell.out From 191f687c01cde9ba0b20c83c3fad5495f7955dac Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 29 Jan 2026 17:18:16 +0100 Subject: [PATCH 3/3] use github-action-cvmfs instead of github-action-eessi to only mount EESSI CernVM-FS repository, not initialise EESSI --- .github/workflows/test.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3836e09..fd5413f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -36,8 +36,10 @@ jobs: grep "No such file or directory" shell.out grep "^ERROR: Non-zero exit code detected for interactive shell" shell.out - - name: Mount EESSI - uses: eessi/github-action-eessi@e1f8f20638ea417a18d23ab29443ee34794ff900 # v3.1.0 + - name: Mount EESSI CernVM-FS repository + uses: cvmfs-contrib/github-action-cvmfs@bc6dae3b3c00a732994bacfac8f0902a3e422c53 # v5.4 + with: + cvmfs_repositories: 'software.eessi.io' - name: Test 'eessi init' run: | @@ -49,10 +51,12 @@ jobs: run: | source ~/env + echo ">>> checking behaviour of 'eessi shell' without specifying EESSI version to use..." eessi shell 2>&1 | tee shell.out grep "EESSI version to use is not specified" shell.out + echo ">>> checking environment of subshell created with 'eessi shell' for EESSI 2023.06" eessi shell --eessi-version 2023.06 <<< 'env | grep ^EESSI' 2>&1 | tee shell.out grep '^Found EESSI repo @ /cvmfs/software.eessi.io/versions/2023.06' shell.out - grep '^Environment set up to use EESSI (2025.06), have fun' shell.out + grep '^Environment set up to use EESSI (2023.06), have fun' shell.out grep '^EESSI_VERSION=2023.06' shell.out