Gate build + release on the version bump #488
Labels
No labels
Kestra
bug
enhancement
someday
subtask
☁️ api
🎛️ infrastructure
🐞 sentry
📆 2025 Season
📝 pages
allpicks
📝 pages
picks
📝 pages
standings
🚀 performance
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
johnsturgeon/tgfp-web#488
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Make releases deliberate: land 1..N PRs, then when I run
uv version --bump(in a PR that lands), that merge triggers a single image build and a single Forgejo release. Merges that don't change the version produce no image and no release. The release notes cover every PR landed since the previous release, not just the triggering PR.Current behavior
.forgejo/workflows/build-image.ymlbuilds and pushes on every push tomain(:latest,:<version>,:<sha>). Because the version only moves onuv version --bump, back-to-back merges re-push:<version>onto newer SHAs — the version tag drifts off the commit it was first cut at..forgejo/workflows/release-on-merge.ymlcuts a release/tag on every merged PR, with notes drawn from that one PR. It already no-ops when a release for the current version exists (the guard that catches unbumped PRs), so it half-does this already.Desired behavior
pyproject.tomlversion differs from the latest release → build image + cut release. A merge with no version change → nothing (no build, no release, no tag).(previous release's target commit .. this merge commit]— each PR's title/link plus the issues it closed (reuse the existingclose/fix/resolve #nkeyword scan per PR).:<version>is pushed once, at the bump commit, so version ↔ image tag ↔ release tag stay a single identifier for a given landing.Implementation sketch
MERGE_SHAagainst the latest existing release tag —release-on-merge.ymlalready fetches both; extend that guard to also gate the build.#N) between the previous release's target commit andMERGE_SHA.build-image.ymlneeds the same gate — either detect the bump itself, or trigger off the created release/tag instead of a raw push tomain.Open questions
:latest/:<sha>for testing, or build nothing at all until a bump?Answer: build nothing until a bump, I don't want any automated build / deploy / on new release stuff firing until I intentionally release a new version
Answer: version bump is the trigger -> tag -> create the release -> build the release / tag
The per-PR version bump requirement stays as-is; only the build/release trigger and the notes assembly change.
Gate build + release on the version bump, and aggregate all PRs since the last releaseto Gate build + release on the version bump