Skip to content

feat(ci): automate upstream stable release PRs - #162

Merged
psadi merged 1 commit into
mainfrom
feature/auto-release-pr
Sep 16, 2026
Merged

psadi merged 1 commit into
mainfrom
feature/auto-release-pr

Conversation

@psadi

@psadi psadi commented Sep 16, 2026

Copy link
Copy Markdown
Collaborator

Summary

Extends the existing daily schedule in ci.yaml with a create_release_pr job that automates the manual stable-release flow.

When a new upstream Ghostty stable tag is found:

  1. Creates a release/<version> branch
  2. Bumps VERSION to the upstream release version
  3. Pushes a v<version> git tag
  4. Opens a PR into main

Detection is extracted into bin/check-upstream-release.sh (runnable/testable locally) so the workflow only orchestrates.

How detection works

  • Reads latest stable tag from ghostty-org/ghostty (filters ^vX.Y.Z$, strips v)
  • Requires the release artifact to exist at release.files.ghostty.org/<ver>/ghostty-<ver>.tar.gz (tags can precede published artifacts)
  • Only proceeds when upstream is strictly newer than the repo VERSION (handles existing +N patch tags via sort -V)
  • Idempotent: skips if the branch, tag, or an open PR already exists

Notes

  • Job is gated to scheduled runs on main, reusing the existing cron.
  • Adds pull-requests: write to this job; VERSION-only PRs are already paths-ignored.
  • Currently a no-op since VERSION=1.3.1 matches upstream v1.3.1.
  • Verified by actionlint, zizmor, shellcheck, shfmt (pre-commit) and manual runs of the script.

The daily schedule now detects new upstream Ghostty stable tags and, when
found, creates a release/<version> branch that bumps VERSION, pushes a
v<version> tag, and opens a PR to main. Detection lives in
bin/check-upstream-release.sh so it can be run and tested locally.
@psadi
psadi merged commit 34b350f into main Sep 16, 2026
7 checks passed
@psadi
psadi deleted the feature/auto-release-pr branch September 16, 2026 00:37
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.

1 participant