Skip to content

Support dash init shell with Lmod approach, make sure second initialsation gives expected EESSI version #850

Support dash init shell with Lmod approach, make sure second initialsation gives expected EESSI version

Support dash init shell with Lmod approach, make sure second initialsation gives expected EESSI version #850

# 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: [ "main" ]
pull_request:
workflow_dispatch:
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
build:
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
EESSI_VERSION:
- '2023.06'
- '2025.06'
EESSI_SOFTWARE_SUBDIR_OVERRIDE:
- x86_64/intel/haswell
include:
- EESSI_VERSION: '2023.06'
EXPECTED_EASYBUILD_VERSION: '5.0.0'
- EESSI_VERSION: '2025.06'
EXPECTED_EASYBUILD_VERSION: '5.1.1'
steps:
- name: Check out software-layer repository
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Avoid processing man-db trigger
run: |
# avoid processing trigger for man-db (seems to slow down installation)
echo "set man-db/auto-update false" | sudo debconf-communicate
sudo dpkg-reconfigure man-db
- 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: Fix EESSI version in lmod init scripts
run: |
for shell in $(ls init/lmod); do
sed -i "s/__EESSI_VERSION_DEFAULT__/${{matrix.EESSI_VERSION}}/g" init/lmod/${shell}
done
- name: Clone assert.sh at pinned commit
run: |
ASSERT_COMMIT_SHA=fe359e341670f1e8e86a3804ca00e5a3ebc30fa4
git clone --no-checkout https://github.com/lehmannro/assert.sh.git
cd assert.sh
git fetch --depth 1 origin $ASSERT_COMMIT_SHA
git checkout $ASSERT_COMMIT_SHA
- name: Install missing shells
run: |
sudo apt update
# We're in Ubuntu so dash is already installed (and is symlinked to sh)
sudo apt install zsh ksh fish tcsh
echo "# INIT ZSH" > ~/.zshrc
- name: Run tests for available shells without system Lmod
run: |
export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}}
export EESSI_VERSION=${{matrix.EESSI_VERSION}}
export EXPECTED_EASYBUILD_VERSION=${{matrix.EXPECTED_EASYBUILD_VERSION}}
.github/workflows/scripts/test_init_scripts.sh "bash" "zsh" "ksh" "fish" "csh" "sh"
- name: Run tests for available shells with system Lmod
run: |
# We also want to perform the same test when there is an Lmod version available on the system
sudo apt install lmod
source /usr/share/lmod/lmod/init/bash
export MODULEPATH=/usr/share/lmod/lmod/modulefiles
module avail
export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${{matrix.EESSI_SOFTWARE_SUBDIR_OVERRIDE}}
export EESSI_VERSION=${{matrix.EESSI_VERSION}}
export EXPECTED_EASYBUILD_VERSION=${{matrix.EXPECTED_EASYBUILD_VERSION}}
.github/workflows/scripts/test_init_scripts.sh "bash" "zsh" "ksh" "fish" "csh" "sh"