Replace the GitHub workflows with a gitbay pipeline !5

merged merged by cmc on 2026-08-30 17:04 UTC · krz/orgo:gitbay-release-pipeline into main

Discussion

cmc

The release ran on GitHub Actions and reached it only because gitbay push-mirrors there. This moves it onto the VPS runner and deletes both workflows.

.gitbay/ci.yml — three jobs, within gitbay's limits (≤10 jobs, ≤50 steps, ≤4096 bytes per step, name regex checked against internal/ci/ci.go):

job trigger does
test any branch push cargo test, clippy -D warnings, a --strict docs build
pages push to main publishes the site to the pages branch, serving orgo.krz.sh
release v* tag Linux tarballs, the release with notes, then cargo publish --locked

macOS moves to a pre-push hook. The runner is Linux, and runner next claims the oldest pending build with no platform targeting, so a second runner could not be aimed at darwin jobs. .githooks/pre-push builds both Mac targets on the machine doing the push, which also turns the tag into a gate — a build failure aborts the push, where release.yml discovered it after the tag was already public. Uploading has to wait, since release asset add needs the release the tag push creates, so the hook hands it to a detached .githooks/upload-macos that waits for it. Tarballs and log stay in dist/macos/<tag>/, and the script is rerunnable.

Verified locally: both darwin targets build, and the tarball layout and .sha256 format come out identical to the v0.23.0 assets release.yml produced.

.github/ keeps FUNDING.yml.