You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Release pipeline: binaries, installer and platform smoke tests #33
Set up dist (formerly cargo-dist) so that pushing a v<version> tag builds and publishes a GitHub Release:
static binaries for x86_64-unknown-linux-musl and aarch64-apple-darwin;
a shell installer, published on the Release, that installs thirdshift to ~/.local/bin;
release notes generated from merged pull requests, with no CHANGELOG file.
The Linux binary must stay statically linked against musl so that it runs on Rocky Linux 9's older glibc.
Before the Release is published, the workflow runs the built musl binary's thirdshift version:
inside a rockylinux:9 container;
inside WSL2 with Ubuntu 24.04 on a windows-latest runner.
If either fails, the release stops: no GitHub Release is published and nothing else is published.
Put customisations through dist's own configuration hooks where possible, so that regenerating the workflow after a dist upgrade doesn't drop them. Configure the installer so that a later ticket's built-in thirdshift update can read its install receipt. That ticket adds the updater to the binary itself, so no separate thirdshift-update executable is needed.
Prove the build and smoke jobs on this ticket's own pull request without publishing anything, while ordinary pull requests don't pay for the slow Rocky and WSL jobs.
Acceptance criteria
dist is configured for exactly the two targets, with the shell installer installing to ~/.local/bin.
A v* tag triggers a workflow that builds both binaries and the installer and publishes a GitHub Release with generated notes.
The Linux binary is statically linked (musl) and runs in a rockylinux:9 container.
The Rocky and WSL2 smoke jobs run thirdshift version against the built musl binary and gate publishing.
This ticket's PR shows the build and both smoke jobs passing without creating a Release.
Ordinary pull requests don't run the Rocky and WSL jobs.
Activity