Automated builder for the latest stable Slurm Debian packages (.deb). The workflow runs on every push and daily at 10:00 UTC+8, uploads build artifacts, and creates a vX.Y.Z tag and GitHub Release.
- Auto-detect latest version: Parse the newest
slurm-X.Y.Z.tar.*from SchedMD's download index. - Debian packaging: Use upstream Debian packaging with
dpkg-buildpackageto produce multiple binary packages. - Requested components enabled via build deps:
- acct_gather_energy/ipmi (
freeipmi) - acct_gather_interconnect/ofed (
libibmad,libibumad, etc.) - acct_gather_profile/hdf5 (
libhdf5-dev) - accounting_storage/mysql (
default-libmysqlclient-dev) - auth/munge (
libmunge-dev) - auth/slurm (jwt) (
libjwt-dev; inject--with-jwtintodebian/rulesif needed) - AutoDetect=nvml (
libnvidia-ml-devor CUDA toolkit as fallback) - PAM support (
libpam0g-dev) - task/affinity (
libnuma-dev) - task/cgroup (
libhwloc-dev,libbpf-dev,libdbus-1-dev) - slurmrestd (
libjson-c-dev,libhttp-parser-dev,libyaml-dev,libjwt-dev) - HTML man pages (
man2html) - Plus Readline, PMIx, GTK2 (sview) where applicable
- acct_gather_energy/ipmi (
- Artifacts and Release: Upload
.deband*.changesas artifacts and create avX.Y.Zrelease.
Reference: Quick Start Administrator Guide
- Push to any branch
- Schedule: daily at 10:00 UTC+8 (
0 2 * * *) - Manual: Workflow Dispatch
Workflow: /.github/workflows/main.yaml.
Typically (actual results may vary):
slurmctld_*.debslurmdbd_*.debslurmd_*.debslurmrestd_*.debslurm-client_*.debslurm-libpmi*_*.debslurm-dev_*.deb- plus meta
slurm-<version>_*.deband*.changes
- After a PR or push run, download from the run's Artifacts.
- Each successful build publishes a
vX.Y.ZRelease with all.debfiles.
sudo apt-get update
sudo apt-get install -y ./slurmctld_*.deb ./slurmd_*.deb ./slurm-client_*.deb
# For RESTD, DBD, dev packages, or PMI, install additional .deb as neededNote:
accounting_storage/mysqlmeans the plugin is built. You still need to deploy and configure the database andslurmdbd.
- Pin a specific Slurm version by modifying the "discover latest version" step in
main.yaml. - Change the schedule via
on.schedule.cron(default0 2 * * *). - Adjust build dependencies or injected
configureflags to match your needs.
- Manually run via GitHub Actions → Run workflow.
- If features are missing, ensure the proper
*-devpackages are installed and check whetherdebian/rulesneeds--with-*/--enable-*.
- MIT License. See
LICENSE.