Skip to content

ci(release): publish GitHub releases instead of leaving them as drafts - #259

Merged
ErikBjare merged 2 commits into
ActivityWatch:masterfrom
TimeToBuildBob:ci/publish-github-releases
Sep 14, 2026
Merged

ErikBjare merged 2 commits into
ActivityWatch:masterfrom
TimeToBuildBob:ci/publish-github-releases

Conversation

@TimeToBuildBob

Copy link
Copy Markdown
Contributor

Leftover from #236. The original three items there already shipped; this is the draft: / prerelease: cleanup that was left as a judgment call.

What just happened

v0.14.0 was created as a draft on 2026-09-11 and sat unpublished until it was published by hand on 2026-09-13. Same class of failure as #236's original report: the Play Store "full changelog" link points at a GitHub release page that non-admins cannot see while the release is a draft.

Empty bodies are already fail-closed (#241). Drafts were the remaining hole.

Fix

  • draft: false always. Changelog generation already refuses to ship an empty body, so the review-window draft was only hiding the page. Pre-releases are marked prerelease: true so they do not steal "Latest release".
  • Classify the tag with scripts/assert-play-track.sh (same X.Y.Z → stable rule as the Play track). check-version-format-action treats 0.x.x as unstable per semver, so the old prerelease: ${{ !(steps.version.outputs.is_stable == 'true') }} would have marked every v0.14.0-style stable release as a prerelease.

Mapping (verified against assert-play-track.sh --self-test):

tag GitHub release
v0.14.0 published, not prerelease
v0.14.0b2 published, prerelease
v0.14.0dev… published, prerelease

This does not change Play Console promotions.

v0.14.0 sat as a draft until it was published by hand. Classify tags with
assert-play-track.sh so 0.x.x stable releases are not marked prerelease.

Git-Session-Id: 087828bb-1476-551f-9400-d18d7f6cd6f9
@greptile-apps

greptile-apps Bot commented Sep 13, 2026

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

The PR appears safe to merge; the earlier tag-based shell-injection concern is fixed and no new actionable issues remain.

Summary

  • Replaces semver-based stability detection with assert-play-track.sh.
  • Marks non-production tags as GitHub prereleases.
  • Passes the tag through the quoted GITHUB_REF_NAME environment variable.
  • Keeps changelog generation aligned with the resulting stability classification.

Reviews (2) · Last reviewed commit: "fix(ci): pass release tag via env instea..."

Comment thread .github/workflows/build.yml Outdated
GITHUB_REF_NAME is already set; interpolating github.ref_name into the
script lets a crafted tag inject into the release job.

Git-Session-Id: f73bd466-b160-5442-a857-61d58fab9408
@TimeToBuildBob

Copy link
Copy Markdown
Contributor Author

@greptileai review

@TimeToBuildBob

Copy link
Copy Markdown
Contributor Author

CI-green and mergeable (Greptile 5/5) — waiting only on a maintainer click.

This PR is ready to merge, but the bot has pull-only access to this repo and can't self-merge — surfacing it here so it isn't lost. The monitoring loop will stop re-flagging it now that this note is posted.

@ErikBjare
ErikBjare merged commit 418dd4b into ActivityWatch:master Sep 14, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants