Repository navigation
Pin release workflow definition to source commit - #4179
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughThe release pipeline now creates immutable source tags, dispatches workflows from those tags, validates workflow attestation metadata, pins nightly releases to the triggering ref, and adds contract tests for the updated behavior. ChangesImmutable release pipeline
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant CanaryCI
participant GitHubAPI
participant ReleaseWorkflow
participant Attestation
CanaryCI->>GitHubAPI: Create or reuse immutable source tag
GitHubAPI-->>CanaryCI: Return validated commit target
CanaryCI->>ReleaseWorkflow: Dispatch using immutable tag ref
ReleaseWorkflow->>Attestation: Provide workflow SHA and tag metadata
Attestation-->>ReleaseWorkflow: Accept or reject source match
ReleaseWorkflow->>GitHubAPI: Dispatch nightly workflow using source ref
Possibly related PRs
Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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. Comment |
⏭️ Performance benchmarks were skippedPerf benchmarks (CodSpeed) are opt-in on pull requests — they no longer run on every push. They always run automatically after merge to To run them on this PR, do any of the following, then push a commit (or re-run CI):
|
Binary size checks passed✅ 7 passed
Generated by |
What changed
baml-language-source-<sha>tag after canary CI succeedscanarysource_sha, and checked-out SHA are identicalWhy
A delayed CI run could dispatch
release-baml-language.ymlfrom the latestcanaryworkflow while checking out an oldersource_sha. That combined pipeline instructions from one commit with product files from another. The observed failure loaded the new CFFI export-allowlist path from the newer workflow against an older checkout where that path did not exist.Release stamping already freezes package metadata and product source, but GitHub chooses the workflow YAML before checkout and stamping. This change pins that missing workflow identity.
Validation
python3 -m unittest discover -s scripts/tests -p 'test_*.py' -v(25 tests)actionlint .github/workflows/release-baml-language.ymlgit diff --checkThe existing
releaseGitHub environment also needs thebaml-language-source-*deployment-tag policy before merge; no new environment is introduced andboundary-tools-prodrequires no change.Summary by CodeRabbit
Release Process
Tests