diff --git a/.github/workflows/minimal_usage_lmod_init.yml b/.github/workflows/minimal_usage_lmod_init.yml new file mode 100644 index 0000000..62e45bf --- /dev/null +++ b/.github/workflows/minimal_usage_lmod_init.yml @@ -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 diff --git a/action.yml b/action.yml index 5ad3c03..4135944 100644 --- a/action.yml +++ b/action.yml @@ -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" @@ -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) @@ -51,3 +65,4 @@ runs: shell: bash env: EESSI_STACK_VERSION: ${{ inputs.eessi_stack_version }} +