|
# 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" |