ci: split release-please into independent release and PR creation steps#17
Closed
keelerm84 wants to merge 2 commits into
Closed
ci: split release-please into independent release and PR creation steps#17keelerm84 wants to merge 2 commits into
keelerm84 wants to merge 2 commits into
Conversation
Contributor
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
Contributor
|
Closing: The split release-please pattern is only needed for repos with artifact uploads. This attestation-only repo doesn't need it. The attestation changes are in PR #16. |
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
Splits the release-please action into two sequential passes to support GitHub's immutable releases. This matches the pattern established in ld-relay PR #622.
Pass 1 (
skip-github-pull-request: true): Attempts to create a GitHub release. If a release is created, the workflow checks out the repo and manually creates/pushes the tag (since release-please needs the tag to exist to know a release was already made).Pass 2 (
skip-github-release: true): Only runs if no release was created in pass 1. Creates or updates release-please PRs.This two-pass approach is required because release-please determines whether to open a new release PR by checking if the tag already exists. Without the split, there's a race where the tag isn't created before release-please tries to evaluate PR state.
Review & Testing Checklist for Human
release_created(singular, used in tag creation conditions) andreleases_created(plural, used in job output for downstreamci/publishjobs) are both emitted correctly by release-please for this single-package repogh apicheck guards against duplicate tag pushes, but verify this matches expected behaviormainto confirm release-please PRs are still created correctly (the non-release path via pass 2)Notes
16a9c90856f42705d54a6fda1823352bdc62cf38is unchanged; only the version comment was updated from# v4to# v4.4.0for accuracygithub-actions[bot]identity, consistent with the ld-relay reference implementationLink to Devin session: https://app.devin.ai/sessions/7d5bda4d9dbe4ae0b950b30a50485e60
Requested by: @keelerm84
Note
Medium Risk
Changes the release workflow’s control flow and tag creation behavior; a mis-emitted
release_createdoutput or tag push failure could blockci/publishfrom running on release commits.Overview
Updates the
Release PleaseGitHub Actions workflow to runrelease-pleasein two passes: first to create a GitHub release (with PR creation disabled), then—only if no release was created—to open/update release PRs (with release creation disabled).When a release is created, the workflow now checks out the repo and manually creates/pushes the release tag (idempotently, skipping if the tag already exists). Downstream
ciandpublishjobs are gated on the new singularrelease_createdoutput instead ofreleases_created.Reviewed by Cursor Bugbot for commit 0bb1a72. Bugbot is set up for automated code reviews on this repo. Configure here.