EESSI-based GitHub Action for Continuous Integration¶
The European Environment for Scientific Software Installations (EESSI) is a collaboration between a number of academic and industrial partners in the HPC community to set up a shared stack of scientific software installations to avoid the installation and execution of sub-optimal applications on HPC resources. The software stack is intended to work on laptops, personal workstations, HPC clusters and in the cloud, which means the project will need to support different CPUs, networks, GPUs, and so on.
EESSI can be leveraged in continuous integration (CI) workflows to easily provide the dependencies of an application. With this module we are a GitHub Action for EESSI so that it can be used with CI on GitHub.
Purpose of Module¶
To set up the European Environment for Scientific Software Installations (EESSI) for use in GitHub Workflows.
Background Information¶
The European Environment for Scientific Software Installations EESSI is a collaboration between a number of academic and industrial partners in the HPC community. Through the EESSI project, they want to set up a shared stack of scientific software installations to avoid not only duplicate work across HPC sites but also the execution of sub-optimal applications on HPC resources.
The software stack is intended to work on laptops, personal workstations, HPC clusters and in the cloud, which means the project will need to support different CPUs, networks, GPUs, and so on. As such the stack can also be leveraged to provide dependencies for applications within CI workflows.
Building and Testing¶
You can use this GitHub Action in a workflow in your own repository, see the EESSI action in the GitHub Marketplace for further details.
A minimal job example for GitHub-hosted runners of type ubuntu-latest
is:
jobs:
ubuntu-minimal:
runs-on: ubuntu-latest
steps:
- uses: eessi/github-action-eessi@v1
- name: Test EESSI
run: |
module avail
shell: bash
This means that one can potentially load any application provided by EESSI in your
workflow. A further full example that uses GROMACS from a particular version of the
EESSI stack (2020.12
) is:
name: ubuntu_gromacs
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: eessi/github-action-eessi@main
with:
eessi_stack_version: '2020.12'
- name: Test EESSI
run: |
module load GROMACS
gmx --version
shell: bash
Source Code¶
We link here the GitHub repository of the EESSI GitHub Action.