Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions .github/workflows/minimal_usage_lmod_init.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: ubuntu-minimal_usage-lmod_init
on:
schedule:
- cron: '0 0 * * *' # Runs once a day at midnight UTC
workflow_dispatch: # Allows manual triggering
push:
branches:
- main
pull_request:
branches:
- main
# Declare default permissions as read only.
permissions: read-all
jobs:
minimal_usage:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-24.04-arm
- ubuntu-24.04
- ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: ./
with:
use_eessi_module: true
init_direnv: false
- name: Test EESSI
run: |
module avail
module list |& grep "EESSI/"
shell: bash
- name: Test available repos
run: |
ls /cvmfs/software.eessi.io
ls /cvmfs/dev.eessi.io
shell: bash
31 changes: 23 additions & 8 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,14 @@ inputs:
description: 'Comma-separated list of fully qualified repository names that shall be mountable under /cvmfs.'
required: false
default: 'software.eessi.io,dev.eessi.io'
use_eessi_module:
description: 'Use the EESSI module to initialise EESSI (rather than sourcing a bash script), valid values are true or false'
required: false
default: 'false'
init_direnv:
description: 'Enable direnv initialisation for the repository, valid values are true or false'
required: false
default: 'true'

runs:
using: "composite"
Expand All @@ -26,17 +34,23 @@ runs:
run: |
if [ "$RUNNER_OS" == "Linux" ]; then
echo 'unset BASH_ENV' >> $HOME/env_config.export
echo "source /cvmfs/software.eessi.io/versions/$EESSI_STACK_VERSION/init/bash" >> $HOME/env_config.export
if [[ "${{ inputs.use_eessi_module }}" == "true" ]]; then
echo "source /cvmfs/software.eessi.io/versions/$EESSI_STACK_VERSION/init/lmod/bash" >> $HOME/env_config.export
else
echo "source /cvmfs/software.eessi.io/versions/$EESSI_STACK_VERSION/init/bash" >> $HOME/env_config.export
fi
# allow oversubscription for OpenMPI
echo "export OMPI_MCA_rmaps_base_oversubscribe=1" >> $HOME/env_config.export
sudo apt install -y direnv
echo 'eval "$(direnv export bash)"' >> $HOME/env_config.export
mkdir -p $HOME/direnv/
echo "[whitelist]" >> $HOME/direnv/direnv.toml
echo "prefix = [ '$GITHUB_WORKSPACE' ]" >> $HOME/direnv/direnv.toml
cp $HOME/direnv/direnv.toml $HOME/direnv/config.toml
if [[ "${{ inputs.init_direnv }}" == "true" ]]; then
sudo apt install -y direnv
echo 'eval "$(direnv export bash)"' >> $HOME/env_config.export
mkdir -p $HOME/direnv/
echo "[whitelist]" >> $HOME/direnv/direnv.toml
echo "prefix = [ '$GITHUB_WORKSPACE' ]" >> $HOME/direnv/direnv.toml
cp $HOME/direnv/direnv.toml $HOME/direnv/config.toml
echo "DIRENV_CONFIG=$HOME/direnv" >> $GITHUB_ENV
fi
echo "BASH_ENV=$HOME/env_config.export" >> $GITHUB_ENV
echo "DIRENV_CONFIG=$HOME/direnv" >> $GITHUB_ENV
elif [ "$RUNNER_OS" == "macOS" ]; then
# EESSI on macOS requires lima so we get a Linux VM, see https://gitlab.com/eessi/support/-/issues/70
# (unfortunately this requires nested virtualisation in GitHub Actions which is not available with M1)
Expand All @@ -51,3 +65,4 @@ runs:
shell: bash
env:
EESSI_STACK_VERSION: ${{ inputs.eessi_stack_version }}