Skip to content

v0.0.13

Choose a tag to compare

@github-actions github-actions released this 24 Oct 22:44
v0.0.13
3961157

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 job count 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, and runnerd doctor has a host memory check.

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 clean was 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/runnerd

You 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

runnerd-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/runnerd

You 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