Skip to content

ci: release as commit, tag, draft, then a ci-build dispatch - #545

Open
hhvrc wants to merge 3 commits into
developfrom
ci/release-dispatch
Open

hhvrc wants to merge 3 commits into
developfrom
ci/release-dispatch

Conversation

@hhvrc

@hhvrc hhvrc commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

The tag no longer triggers ci-build, so ci-build never starts before the draft exists. release.yml now publishes the release commit on its own, so a rejected commit never strands an immutable tag, then the tag, then stages the draft against the tag, and last dispatches ci-build on the tag with release=true.

ci-build's gate sends a release dispatch to prod and refuses one that is not on a tag, and only that dispatch runs the release job; a manual dispatch on a tag still republishes without publishing the release.

A version input lets a master release use a given version instead of the computed one, e.g. to skip one an immutable release used up; release-tool refuses it on beta.

Summary by CodeRabbit

  • Release Process
    • Release builds now start after a draft release is staged, helping ensure the draft is available before the production build begins.
    • Release tags no longer start builds directly when pushed; release builds are initiated through the release process.
    • Release runs can accept an optional version, and release builds must use a version tag.

The tag no longer triggers ci-build, so ci-build never starts before the draft exists. release.yml now publishes the release commit on its own, so a rejected commit never strands an immutable tag, then the tag, then stages the draft against the tag, and last dispatches ci-build on the tag with release=true.

ci-build's gate sends a release dispatch to prod and refuses one that is not on a tag, and only that dispatch runs the release job; a manual dispatch on a tag still republishes without publishing the release.

A version input lets a master release use a given version instead of the computed one, e.g. to skip one an immutable release used up; release-tool refuses it on beta.
@hhvrc
hhvrc requested a balanced review from Copilot October 29, 2026 11:19
@hhvrc hhvrc self-assigned this Oct 29, 2026
@github-project-automation github-project-automation Bot moved this to Todo in Roadmap Oct 29, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

@coderabbitai

coderabbitai Bot commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 22 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: f715be1c-1ee4-4a77-9cf5-34ce41dedff1
Commits

Reviewing files that changed from the base of the PR and between e6db6d5 and 8ad7603.

Files selected for processing: 5
  • .github/workflows/ci-build.yml
  • .github/workflows/release.yml
  • scripts/ci_build_gate.py
  • scripts/repo_server_policy.py
  • scripts/tests/test_ci_build_gate.py

No actionable comments were generated in the recent review.

Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 59ad69fd-d4db-48fc-9967-20e4e575ce90
Commits

Reviewing files that changed from the base of the PR and between 7794c51 and e6db6d5.

Files selected for processing: 5
  • .github/workflows/ci-build.yml
  • .github/workflows/release.yml
  • scripts/ci_build_gate.py
  • scripts/repo_server_policy.py
  • scripts/tests/test_ci_build_gate.py

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

Walkthrough

The release workflow now pushes the release commit and tag, stages a draft release, and dispatches the CI build workflow with release=true. The CI workflow handles release builds through dispatches rather than tag pushes.

Changes: Release build dispatch

Layer / File(s) Summary
CI release dispatch contract
.github/workflows/ci-build.yml, scripts/ci_build_gate.py, scripts/tests/test_ci_build_gate.py, scripts/repo_server_policy.py
The CI workflow accepts a release dispatch input. The gate builds and publishes to production when a release dispatch uses a tag, and refuses release dispatches from branches. Push events are unsupported. Tests cover these cases.
Release staging and dispatch
.github/workflows/release.yml
The release workflow accepts an optional version, pushes the release commit and tag, stages a draft release, then dispatches the CI workflow for the generated tag.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Bug fix

Sequence Diagram(s)

sequenceDiagram
  participant ReleaseWorkflow as release.yml
  participant Repository as GitHub repository
  participant GitHubReleases as GitHub Releases
  participant BuildWorkflow as ci-build.yml
  ReleaseWorkflow->>Repository: Push release commit and tag
  ReleaseWorkflow->>GitHubReleases: Create draft release for tag
  ReleaseWorkflow->>BuildWorkflow: Dispatch tag with release=true
  BuildWorkflow->>BuildWorkflow: Build and publish when release dispatch uses a tag
Loading

Possibly related PRs

Suggested labels: in: ci, type: enhancement

Merge Risk: Minimal · previous review e6db6

The release flow now stages a draft before dispatching a production build on the tag. No new merge-blocking behavior was found.

Pre-merge checks: Passed 4 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 25.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documenta… Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 4 passed
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly summarizes the main release workflow change: create the release commit and tag, stage a draft, then dispatch ci-build.
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 25.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 4 functions across 3 files. (2 skipped: 2 unsupported.)

Resolution

Write docstrings for the functions missing them to satisfy the coverage threshold.

Finishing Touches
Generate docstrings
  • Commit to this branch
  • Create a new PR
Fix failing CI checks
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@github-actions

Copy link
Copy Markdown
Contributor

Change file check

⚠️ Missing: this PR does not add a change file under .changes/.

If this change should show up in the release notes, add one with release-tool new "<title>" --kind <added|changed|deprecated|removed|fixed|security|safety|chore>. Otherwise add the no-changelog label.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

2 participants