v0.5.8 — A release that attaches what it has
The two things v0.5.7 taught us when an arm64 runner was lost mid-build — no failed step, no log, GitHub holds no log blob for it at all.
A release now attaches what it has
attach needed every job above it, so it was skipped, and the result was worse than a red check:
- the amd64 packages had been built, and were thrown away;
- the release page for v0.5.7 had nothing on it;
- the
aptworkflow never ran, because it waits for a Release that succeeded.
A release that exists and offers nothing is a release somebody arrives at and leaves.
It now uploads whatever was built, lists by name what was not, writes that list into the release's own notes under a marker — so a later run takes the sentence away again — and then fails. The check stays red, which is correct, and whoever comes to the page gets the half that works plus a sentence about the half that does not.
Both paths were run before being committed, against a stand-in for gh: half a release uploaded five files, named seven as missing, and exited 1; a whole one uploaded twelve, wrote no notice, and exited 0.
And the compiling is its own job
It shared a job with the packaging, so losing one runner took the packaging and every container check down with it — none of which had anything to do with the loss, and all of which had already passed on the other architecture.
| job | what it does | timeout |
|---|---|---|
binaries |
the musl daemon and the GTK window, per architecture | 75 min |
packages |
.deb, .rpm, tarball — and installs each where it is for. No compiler. |
30 min |
window |
the window compiled inside Fedora and openSUSE Tumbleweed | 60 min |
attach |
uploads, and says what is missing | 15 min |
Losing a runner now costs the expensive half alone, and gh run rerun --failed repeats only that.
Two details worth the words: an artifact does not carry the executable bit, so the packaging job puts it back — a package built from a file that is not executable installs a file that is not executable. And every job has a timeout now, because the lost one ran for forty-seven minutes before anybody could tell it was not going to finish.
Nothing in the program changed
This release is the machinery that publishes it. v0.5.7 is what runs.