Repository navigation
Conversation
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.
|
Warning Review limit reachedYou'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. View limit details
No actionable comments were generated in the recent review.
|
| 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
Possibly related PRs
- OpenShock/Firmware#532: Changes the CI and release workflow contracts that this PR updates.
- OpenShock/Firmware#531: Changes the same release-tag publishing and CI dispatch path.
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: 
4 · 
1
-
Failed checks: 1 warning Passed checks: 4 passedFull 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.
Change file check
If this change should show up in the release notes, add one with |
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