This repository contains a custom GitHub Action for running jobs on a SLURM cluster.
name: SLURM Job Example
on: [push]
jobs:
run-on-slurm:
runs-on: [slurm]
steps:
- uses: actions/checkout@v3
- uses: astron-rd/slurm-action@v1
with:
partition: defq
gres: gpu:A4000 # Omit for CPU jobs
time: 00:10:00 # Max runtime (HH:MM:SS)
commands: |
echo "Running on $(hostname)"
nvidia-smi
<your commands>| Parameter | Required | Default | Description |
|---|---|---|---|
| partition | No | defq | SLURM partition name |
| gres | No | (none) | GPU resources (e.g., gpu:A4000) |
| time | No | 00:10:00 | Maximum job runtime |
| commands | Yes | - | Commands to execute on SLURM |
- Real-time output
- Automatic cleanup of temporary files
- Supports GPU resource requests via GRES
- Proper error code propagation
- Self-hosted runner on SLURM control node
sruncommand available- Shared filesystem access to
$HOME
- Register runner with
slurmlabel:
./config.sh --labels slurm- Place this action in
.github/actions/slurm/action.yml - Add
uses: .github/actions/slurm/action.ymlto your workflow - Or use this action directly by specifying:
uses: astron-rd/slurm-action@v1