Repository navigation
v0.0.13
runnerd 0.0.13
Before you upgrade
The first start migrates the job history to version 13, and 0.0.12 refuses it after that. To keep a way back, copy
the database while runnerd is stopped. Upgrading has the steps.
New
- Admission follows the host's memory. A host short of memory, such as one with a busy desktop and no swap,
made the kernel throttle every download in the runners' cgroups: checkouts and action downloads stalled for up to
about 100 s. runnerd now reads the host's available memory and memory pressure. It starts a runner only while the
host has room for it beside everything else, and not while the host stalls short of memory. Waiting jobs say
"The host is short of memory", running jobs are never stopped, and these waits don't count as demand for more
slots. Nothing to configure, and nothing to change on the host. - Caps keep room for page cache. Sizing gives each job at least its largest peak plus 1G. A job pressed against
its own cap was also throttled. - Visible when it happens anyway. A job's page and
runnerctl jobcount the times its downloads were
throttled. A Memory pressure insight warns when that keeps happening to a repository. The host's memory shows in
status, the TUI and the dashboard, andrunnerd doctorhas ahost memorycheck.
Fixed
- After a restart, runners runnerd adopted reserved their full CPU and memory caps until their jobs ended, which
held new starts back. They also showed a fresh uptime. Both now carry over. - A reload that changed a repository's labels left its warm runner holding a job forever. Waiting runners whose
labels, limits or image changed are now replaced, the image only once the new one is pulled. - A notification target behind a redirect counted as delivered. Warnings that still held were sent again after a
day of downtime, and a target added by a reload missed the next event. runnerctl caches cleanwas refused while any warm runner waited.- A paused repository's waiting runner could still take its next job.
- The build cache:
- refused writes when the config named a repository in another case than GitHub's;
- lost the uploads of jobs that ended before GitHub had answered;
- kept a renamed default branch until a restart.
- The daemon's start waited on Docker measuring every volume.
- The overview's latest jobs went blank during a burst. A job a warm runner took showed the runner's uptime as its
wait. Waiting reasons now say what failed, and never "needs 2 CPUs; 2 are free".
Download runnerd 0.0.13
| File | Platform | Checksum |
|---|---|---|
| runnerd-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| runnerd-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo ayagmar/runnerdYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation> --repo ayagmar/runnerdrunnerd-cli 0.0.13
Download runnerd-cli 0.0.13
| File | Platform | Checksum |
|---|---|---|
| runnerd-cli-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| runnerd-cli-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo ayagmar/runnerdYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation> --repo ayagmar/runnerd