Skip to content

ci: automate safe publish-track certification - #393

Merged
DecisionNerd merged 2 commits into
mainfrom
ci/386-publish-track
Aug 4, 2026
Merged

DecisionNerd merged 2 commits into
mainfrom
ci/386-publish-track

Conversation

@DecisionNerd

@DecisionNerd DecisionNerd commented Aug 4, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • schedule exact-main Binding RC certification and reuse only a complete, unexpired 30-day candidate
  • require retained-byte validation plus explicit maintainer release and publish confirmations before the existing release event invokes publish.yaml
  • document that M1, checkpoint, m20, and m21 are human-close evidence, not publish-track prerequisites

Test plan

  • python3 scripts/ci/test-publish-track.py
  • python3 scripts/ci/test-release-publish-preflight.py
  • python3 scripts/ci/test-binding-release-candidate.py
  • uv run ruff format --check scripts/ci/test-publish-track.py
  • uv run ruff check scripts/ci/test-publish-track.py
  • scripts/check-workflows.sh

Closes #386

Made with Cursor


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Note

Add automated publish-track certification workflow for safe release creation

  • Adds publish-track.yml, a scheduled (6-hour) and manually-dispatchable workflow that validates a Binding RC artifact set against the current main SHA before creating a GitHub Release.
  • The workflow locates a prior successful RC run with exactly one unexpired artifact per required group, validates artifacts against expected SHA and version, and dispatches a new RC build if none is found.
  • Release creation requires both create_release and confirm_registry_publish inputs set, with an exact tag match against v<root-version>; the workflow never writes to registries directly and relies on publish.yaml for that.
  • Adds test-publish-track.py, a contract test run in CI that fails if the workflow deviates from its safety properties or if publish.yaml bypasses artifact reuse.
  • Updates test-ci-storage-policy.py to accept artifact downloads keyed by either the candidate discovery run or the prior candidate step run ID.

Macroscope summarized cfdeff3.

@coderabbitai

coderabbitai Bot commented Aug 4, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 35 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 34554dc3-1abb-45c7-8511-2c4b46c2be4c

📥 Commits

Reviewing files that changed from the base of the PR and between af88fed and cfdeff3.

⛔ Files ignored due to path filters (5)
  • .github/workflows/README.md is excluded by !**/*.md, !**/.github/**
  • .github/workflows/publish-track.yml is excluded by !**/.github/**
  • .github/workflows/test.yml is excluded by !**/.github/**
  • docs/development/publication-order.md is excluded by !**/*.md, !**/docs/**
  • docs/engineering/PUBLISHING.md is excluded by !**/*.md, !**/docs/**
📒 Files selected for processing (2)
  • scripts/ci/test-ci-storage-policy.py
  • scripts/ci/test-publish-track.py

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added documentation Improvements or additions to documentation ci-cd CI/CD configuration changes tooling Developer tooling and automation release:none No release note or version impact labels Aug 4, 2026
@DecisionNerd
DecisionNerd force-pushed the ci/386-publish-track branch from f1d2067 to d115a39 Compare August 4, 2026 16:26
DecisionNerd and others added 2 commits August 4, 2026 10:34
Schedule exact-main Binding RC dispatch while requiring a fully retained, validated candidate and explicit maintainer confirmation before a release can trigger registry publication.

Co-authored-by: Cursor <cursoragent@cursor.com>
Publish-track reuses retained Binding RC partitions via
needs.locate_candidate run IDs; inventory those cross-run downloads.

Co-authored-by: Cursor <cursoragent@cursor.com>
@DecisionNerd
DecisionNerd force-pushed the ci/386-publish-track branch from d115a39 to cfdeff3 Compare August 4, 2026 16:34
@DecisionNerd
DecisionNerd merged commit 62b16d2 into main Aug 4, 2026
20 checks passed
@DecisionNerd
DecisionNerd deleted the ci/386-publish-track branch August 4, 2026 17:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-cd CI/CD configuration changes documentation Improvements or additions to documentation release:none No release note or version impact tooling Developer tooling and automation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ci: automate publish-track Binding RC to tag to publish.yaml

1 participant