GitHub Action to install sind and manage Slurm-in-Docker clusters in CI.
jobs:
slurm-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: GSI-HPC/sind-action@v1
with:
clusters: |
- test/cluster.yml
- name: Run Slurm tests
run: |
sind exec -- sinfo
sind exec -- srun hostname
- uses: GSI-HPC/sind-action/cleanup@v1
if: always()| Input | Description | Default |
|---|---|---|
version |
sind version to install (e.g. v0.1.0) |
latest |
clusters |
YAML list of cluster definitions (see below) | — |
pull |
Pull container images before creating | true |
realm |
sind realm for resource isolation | — |
Each entry in clusters is either a filepath to a sind cluster config or
an inline cluster config. Each entry creates one cluster via
sind create cluster --config <file>.
clusters: |
- test/cluster.yml
- kind: Cluster
name: dev
nodes:
- controller
- worker: 3| Output | Description |
|---|---|
clusters |
Comma-separated list of created cluster names |
version |
Installed sind version |
Use the cleanup sub-action to tear down clusters after your tests:
- uses: GSI-HPC/sind-action/cleanup@v1
if: always()This shows the cluster status (useful for debugging failures) and deletes all clusters.
Use realm to isolate clusters when running multiple jobs on the same runner:
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
suite: [unit, integration, e2e]
steps:
- uses: actions/checkout@v6
- uses: GSI-HPC/sind-action@v1
with:
realm: ${{ matrix.suite }}
clusters: |
- cluster.yml
- run: make test-${{ matrix.suite }}
- uses: GSI-HPC/sind-action/cleanup@v1
if: always()Copyright (c) 2026 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH. Licensed under the MIT License.