Repository navigation
Releases: ayagmar/runnerd
Release list
v0.0.21
What changed
- A shorter landing page (#141): seven sections instead of thirteen, each a claim beside the real output that proves it, in one typeface and five type sizes.
- The cost line is shorter (#143, ADR 0074): "This month: 264 job-minutes here, about $1.58 at GitHub's 2-core Linux rate before your plan's free minutes" on the dashboard, the TUI,
runnerctl insightsand the daily digest.runnerctl insightsstill prints what the figure rests on under it. - Dashboard fixes (#142): the theme switch sits at the foot of the sidebar on every page, and on a phone the history's filters take one row each and its charts are shorter, so the jobs come sooner.
- A repository's status lists its pools only (#140):
RepositoryStatusno longer carriesprofileandlabels, sorunnerctland the dashboard from 0.0.20 cannot read a 0.0.21 daemon's status. Install both from the same release.
runnerd 0.0.21
Download runnerd 0.0.21
| 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.21
Download runnerd-cli 0.0.21
| 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/runnerdv0.0.20
What changed
- A redesigned dashboard (#136). On a wide screen the navigation is a sidebar and the overview puts the machine (memory budget, slots, the slice's charts) beside the work (what waits and why, the latest jobs, the repositories). On a phone or tablet the queue comes first, the tab bar fits, and the history filters scroll in their own rows.
- A new landing page (#135) that shows runnerd's real output instead of describing it.
- The docs describe today's runnerd (#134), checked page by page against the code, and CI now fails on a broken internal link or anchor.
runnerctl insightsshows the cost estimate once when the history is younger than both windows (#133).- Nothing is kept for versions before 0.0.19 (#137, ADR 0073). A new job history is created from one schema at version 15, and a database from before 0.0.19 is refused with its version instead of migrated.
Download runnerd 0.0.20
| 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.20
Download runnerd-cli 0.0.20
| 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/runnerdv0.0.19
What changed
- Auto sizing lowers caps every hour, by up to half (#129, ADR 0071). It lowered at most once a day by a quarter, so a cap left high by a job that got lighter held memory, and the jobs queued behind it, for days. 0.0.18 made a lowering that goes too far safe to take back at its first kill, so lowerings now run as often as raises:
[sizing] intervaldefaults to1handmax_stepto50. A file that sets either keeps its value. - What this machine's job minutes would have cost on GitHub-hosted runners (#130, ADR 0072).
runnerctl insights, the TUI, the dashboard and the daily digest price each job at GitHub's per-minute rate, rounded up to the minute per job as GitHub bills, before your plan's free minutes. Jobs default to the 2-core Linux runnerubuntu-latestgives a private repository; a profile'spriced_asnames a larger one. runnerd asks GitHub once a day whether each repository is private, and public ones read as free.
Upgrading
The first start migrates the job history to version 15, which 0.0.18 refuses; copy the database while runnerd is stopped to keep a way back. Install 0.0.19 with install.sh --version v0.0.19, move each profile's image to its -0.0.19 tag and restart runnerd. Details: Upgrading.
Download runnerd 0.0.19
| 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.19
Download runnerd-cli 0.0.19
| 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/runnerdv0.0.18
What changed
- A job reserves memory from its last runs, not its last days (#125, ADR 0070). A job that got lighter, after a workflow fix bounded its heaps or workers, kept reserving its old peaks for up to 7 days and kept its profile's cap for 30. On one host that held a 14G reservation for a job that peaked at 8.8G, and because a runner takes whichever queued job GitHub hands it, every job of the repository waited for 14G free. A job's reservation now follows its last 20 runs, and a hold at its cap ends after 3 runs in a row that stayed clear of it.
- A cap is raised only when the container's own limit ran out of memory (#125). A JVM grows its heap toward the room it has, so its peak tracked the cap and each raise asked for the next. runnerd now reads
memory.events.local: a peak near the cap that the kernel never stopped does not raise it, and neither does a limit an inner container hit. A run killed at its cap raises the profile straight to what the job needed, not one step per kill. - Auto sizing lowers
memorysafely (#125). Lowerings read a longer window of each job's runs, and a lowering is taken back to the cap it came from when a run is killed at the new cap, or when a job that passed before fails 3 runs in a row on two branches. Runs recorded before the upgrade can hold a cap up but never raise one.
Upgrading
The first start migrates the job history to version 14, which 0.0.17 refuses; copy the database while runnerd is stopped to keep a way back. Install 0.0.18 with install.sh --version v0.0.18, move each profile's image to its -0.0.18 tag and restart runnerd. Details: Upgrading.
v0.0.17
runnerd 0.0.17
What changed
- Auto sizing moves
cpuson each job's average CPU, not on its CPU peaks (#122, ADR 0068). Parallel builds spike to any cap, so the old rule only ever raisedcpus; on one host it took a JVM profile from 16 to 31 CPUs in a day while its jobs averaged 7.5. A raise now needs a job averaging 70% of its cap, and a profile far under its cap steps down bymax_stepa day. A raise the slice or the CPU budget cannot hold is not written, and every client says why. - A job cancelled before any runner took it reads
cancelled in queueinstead ofelsewhere, with no start or run time (#121, ADR 0069). - The JIT config is no longer in any process's arguments (#121). It reached
run.shand the listener as--jitconfig, readable by every host user throughps; it is now passed in an environment variable the runner removes before starting a job. - Reseeds are safe to interrupt and keep deletions (#119, #120, ADRs 0066 and 0067). A reseed that did not finish starts the profile over from the image, and image files a job deleted stay hidden after a reseed.
Upgrading
The job history stays at version 13. Install 0.0.17 with install.sh --version v0.0.17, move each profile's image to its -0.0.17 tag and restart runnerd. Going back to an older image afterwards needs the profile's snapshot and slot volumes removed. Details: Upgrading.
Download runnerd 0.0.17
| 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.17
Download runnerd-cli 0.0.17
| 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/runnerdv0.0.16
runnerd 0.0.16
Download runnerd 0.0.16
| 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.16
Download runnerd-cli 0.0.16
| 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/runnerdv0.0.15
runnerd 0.0.15
Before you upgrade
Nothing to migrate: the job history stays at version 13. A config with a Discord target cannot go back to 0.0.14,
which refuses it; remove those targets first. Upgrading has the steps.
New
- Discord notifications.
kind = "discord"in[[notify.targets]]posts failures, lost jobs, runners that cannot
start, new insights and the digest to a channel's webhook as one embed, with mentions off so a job name cannot ping
anyone. Each target kind (webhook, ntfy, Discord) is now its own sender behind one interface
(ADR 0064).
Fixed
- The budget said "27.25G of 46G free" while a job waited because the host had 6.52G to spare. When the host leaves
the slice less thanMemoryMax, the free figure is now what the host leaves, and the bar marks the rest held by
the host. While the slice is past 90% under measured admission, or the host stalls, nothing shows as free and the
bar says why. The host line in status, the TUI and the dashboard ends with what is free.
Download runnerd 0.0.15
| 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.15
Download runnerd-cli 0.0.15
| 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/runnerdv0.0.14
runnerd 0.0.14
Before you upgrade
Nothing to migrate: the job history stays at version 13. Upgrade runnerctl with the daemon, since a 0.0.13 client
cannot read a status that lists a job no profile serves. Upgrading
has the steps.
New
- Light jobs no longer wait behind heavy ones. A runner may take any queued job its labels match, so it was
sized for the heaviest: a 300M linter waited behind an 8.5G build's reservation. A repository can now be served
by several profiles, each with its own labels: repeat its[[repositories]]entry with a small profile and a
label of its own, and point the light jobs'runs-onat it. Leaveself-hostedout of the small pool's labels,
so jobs you did not move can't land there. Each pool reserves only for its own queue and keeps its own warm
runners. Split light and heavy jobs
shows the config. - Waits say what to fix. A job whose labels no pool has, such as a typo in
runs-on, waits with No profile
serves the label storefornt-small instead of sitting unlisted. A job waiting for the host's memory names what
holds it: programs outside CI hold 30G, most java 9.3G and qemu-system-x86 5.8G. The host line and
runnerd doctorname them too. - Charts show what was reserved. A job's memory and CPU charts, on the dashboard and in the TUI, draw what
admission reserved beside the cap, so a job capped at 22 CPUs that reserved 3.6 shows both.
Fixed
- The failed figure turned red for any failure, including a repository's own failing tests. It now turns red only
when the runner failed the job (lost with it, or killed for memory at its cap) and says how many.
GET /v1/activitygainsrunner_failed. - Under
admission = "measured"the config check card said a config overflowedMemoryMaxby the sum of every
slot's cap. It now holds what admission does, the largest runner and the mirror; its bar draws one block per
profile to scale undercaps.runnerd check-configand the doctor say the same. - A restart force-removed a running runner whose slot, profile or repository the config no longer had. It now
adopts it and lets it drain, as a reload does. - When a job took a warm runner's room on a slice, CPU budget or host already past its limit, admission could start
it over the budget. A budget that is overdrawn now stays overdrawn in the plan, and the job waits unless the stopped
runner's room covers it. - A reseed's seed container could start past
MemoryMaxor the host's limit. It now waits for room, and after
runnerctl reseedthe drained profile holds that room against other pools' jobs while the host could fit it. - A runner whose container Docker failed to inspect once never recorded its job, and a container recovery failed
to remove stayed until the next restart. Both are retried on later ticks. - Admission cached a placeholder for a warm runner's unlisted job and reserved the profile-wide p95 all its life;
queued jobs of a removed repository stayed queued for good; admission records showed stale free memory and CPU.
Download runnerd 0.0.14
| 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.14
Download runnerd-cli 0.0.14
| 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/runnerdv0.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/runnerdv0.0.12
runnerd 0.0.12
Before you upgrade
The job history stays at version 12, so 0.0.11 still reads it. Move each profile's image to its -0.0.12 tag:
the Docker store fix lives in the images. Upgrading has the steps.
Fixed
- Each slot now keeps its Docker images and build cache between jobs. Sysbox mounted a directory of its own
over the data root the image'sdaemon.jsonnamed and deleted it with the container, so every runner started
with an empty Docker store: every image build re-extracted its base with no cached steps, and Testcontainers
pulled its images again on every job. The engine now gets its data root as a flag, on the slot's volume. - A slot whose Docker store is damaged, by a crash or a full disk, has it emptied and its engine started again,
instead of failing every runner that lands there. - A snapshot over its
snapshot_maxstarts over at its profile's next idle moment, whateverreseed_atsays.
New
- Pull requests from a repository's own branches can write to the build cache. Set
build_cache_writers = "pull-requests"under a repository. Then a merge tomain, which builds what its pull
request's last run built, finds that build in the cache. GitHub's API decides who acted. Forks, Renovate,
Dependabot and other bots still only read, and the run's commit must be on its branch. - The slots' Docker stores share a quarter of the disk not otherwise used, measured, with nothing to set.
After a job, the build cache is trimmed first, and images are dropped only when the store is still over its share. - The volumes of slots past a lowered slot count are removed at the next moment no job runs.
Download runnerd 0.0.12
| 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.12
Download runnerd-cli 0.0.12
| 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