dist attaches to the release ship creates - #12
Merged
Merged
Conversation
ship's publish step runs `gh release create` for the tag before any build starts. dist's host job ended with a `gh release create` of its own for the same tag, which GitHub rejects as already_exists, so host went red, the homebrew job that needs it was skipped, and none of the archives, installers or checksums reached the release. `create-release = false` regenerates that step as `gh release upload` followed by `gh release edit --draft=false`, which attaches to the release already there. Workflow regenerated with dist 0.31.0, the pinned version. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014BDPzwzMCSL2rhkrmGCAtP
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.
ship creates the GitHub release itself, in
release.Create, before any build starts. Thehostjob of the dist-generated.github/workflows/release.ymlended with agh release createfor the same tag, and GitHub rejects the second create asalready_exists. The job goes red,publish-homebrew-formulaneeds it and is skipped, and since that one command is what attaches every artifact, the release is left carrying only whatdeb.ymlputs on it. ship does not see the failure, because it waits on release-event runs and the dist run is a push-event one, so the walk carries on to the homebrew step and sits there until it refuses.The fix is
create-release = falseindist-workspace.toml. dist then generatesgh release uploadfollowed bygh release edit --draft=falsein place of the create, which attaches to the release that is already there. The workflow was regenerated with dist 0.31.0, the version the file pins, rather than edited by hand.This is the config
excelano/ship-test-rusthas carried since it was written, and is the same change there byte for byte: the same twoghcommands, the same header, the same droppedANNOUNCEMENT_*environment. Thepublish-homebrew-formulajob is untouched and still runs offhost. I verified the collision by reading ship'srelease.Create, this repo's generated workflow and the reference repo's, and by comparing the regenerated file against that reference; I did not cut a release to observe the 422.All five of the fleet's cargo-dist repos in my scope had the identical workflow (md5
a7908adcff1a717bf2f5fbe2c0afbb8d) and the identical omission, and all five are fixed on branches of their own.anderix/ship#36 covers ved, waddle and paxc together, so this is one of three matching pull requests and the issue is only settled once all three land.
Closes anderix/ship#36
🤖 Generated with Claude Code
https://claude.ai/code/session_014BDPzwzMCSL2rhkrmGCAtP