Repository navigation
ci(release): comment on no pull request, and complete a release that failed after publishing - #241
Merged
Merged
Conversation
@semantic-release/github's success step reads every pull request a released commit came from; GitHub answers 422 for #227, which changed too many files, and the step failed after the tag, the push to nuget.org and the draft, so attest provenance and publish documentation never ran for 0.3.0. successCommentCondition: false skips the step's reads altogether. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018bXdF3LqPfoQDtE8WnZkcW
…blished A release dispatched with complete set to a stable tag skips every job but resume, attest provenance and publish documentation: resume, in the nuget-stable environment, checks that the tag is on the dispatched commit's history and that its GitHub Release is still a draft; attest provenance then attests the draft's own packages and their assemblies, attaches the bundle and publishes it, and the site is deployed at the tag. Neither a re-run nor a new dispatch could reach those jobs once semantic-release had tagged, which left 0.3.0 a draft. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018bXdF3LqPfoQDtE8WnZkcW
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.
Why
The 0.3.0 release run (job) failed in the
successstep of@semantic-release/github. By then the tag, the push to nuget.org and the draft release were already done:Before posting its comments, the plugin (12.0.9,
lib/success.js) fetches every pull request associated with a released commit. A PR merged with Rebase and merge has no commit with the same SHA, so the plugin falls back toGET /pulls/{n}, and the 422 GitHub returns for #227 is not caught.successCommentConditionis only evaluated after these reads, so it cannot exclude a single PR. Because the release job failed,attest provenanceandpublish documentationwere skipped.The release cannot be finished with what exists today. Re-running the job runs the dispatched commit's semantic-release again. A new dispatch computes 0.3.0 again, a version already tagged. So 0.3.0 stays a draft.
What
ci(release): comment on no pull request after a release.releaserc.json:successCommentis replaced bysuccessCommentCondition: false, which skips the whole step: no reads, no comments.release-config.test.mjs.ci(release): complete a release that failed after semantic-release publishedcompleteinput onrelease.yml(a stable tag). With it set, every job is skipped except these three:resume: runs in thenuget-stableenvironment, so it needs the same approval as a release. It refuses a dry run and anything that is not avX.Y.Ztag. It also refuses a tag that is missing or not in the dispatched commit's history, a tag with no release, and a release that is already published.attest provenance: attests the draft's own.nupkg/.snupkgfiles and their assemblies (the files semantic-release attached from the pack artifact, which was checked against its digests), attaches the bundle, then publishes the draft. It signs asrelease.yml, as a normal release does.publish documentation: deploys the site at the tag.|| needs.resume.result == 'success'.docs/maintaining.mdand.github/CLAUDE.mdare updated.node --test '.github/scripts/*.test.mjs'passes locally (5/5). actionlint could not run in this environment; theworkflowsjob checks it.After the merge
Dispatch release from
mainwithcomplete: v0.3.0, then approvenuget-stable.🤖 Generated with Claude Code
https://claude.ai/code/session_018bXdF3LqPfoQDtE8WnZkcW