ci: version-driven releases from deno.json - #367
Merged
Merged
Conversation
Long-running commands (dev, start, mcp) never return from routeCommand, so this only runs for commands like deploy, push, init, build — ensuring the process exits instead of hanging on open handles.
Adds a "Release" checkbox to the manual workflow trigger in GitHub Actions. When checked, it reads the version from deno.json, validates it's a clean semver (no -rc or prerelease suffix), and creates the git tag — which triggers the existing release pipeline.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b49892cb4e
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
Replace tag-based and manual-dispatch release triggers with automatic detection from the version string in deno.json: - X.Y.Z (clean semver) → stable release (npm latest + GitHub release + Homebrew) - anything else (e.g. X.Y.Z-rc) → RC release (npm rc tag + GitHub pre-release) This makes the release process a simple PR: change the version in deno.json from "0.1.14-rc" to "0.1.14" and merge to publish a stable release. Stable releases auto-create git tags for history. No manual workflow dispatch or git tag pushing needed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Replace tag-based and manual-dispatch release triggers with automatic detection from the version string in
deno.json:X.Y.Z(clean semver) → stable release (npm latest+ GitHub release + Homebrew + git tag)X.Y.Z-rc) → RC release (npm rctag + GitHub pre-release)How it works
A new
version-checkjob readsdeno.jsonon every push tomainand outputsis_stable. Downstream jobs branch accordingly:Release workflow
deno.jsonhas0.1.14-rc→ every merge to main publishes RC0.1.14→ merge publishes aslatest0.1.15-rcin follow-up commitChanges
tags: ["v*"]trigger andworkflow_dispatchrelease inputversion-checkjob that detects RC vs stable fromdeno.jsonprereleasejob runs only whenis_stable=falsereleasejob runs only whenis_stable=true(withenvironment: productionapproval gate)update-homebrewuses version fromversion-checkoutputs instead of git tag refrelease-tagmanual dispatch jobTest plan
deno.jsonversion0.1.13(clean semver) → should trigger stable release path0.1.14-rc→ subsequent merges should publish RC only