Environment
getsentry/publish using getsentry/craft:latest
Steps to Reproduce
- Prepare
release/<version> and publish through getsentry/publish with a CI-approved SHA. Since Publish commit 7c60ddb, the workflow invokes craft publish <version> --rev <SHA>.
- Inspect the 0.17.0 and 0.17.1 jobs.
Expected Result
Craft merges the release into master and deletes the remote release/<version> branch.
Actual Result
Both jobs succeeded and pushed their merges (0.17.0, 0.17.1), but the 0.17.0 and 0.17.1 branches remain. Both logs report error: branch 'remotes/origin/release/<version>' not found.
On the --rev path, git name-rev returned a remote-tracking ref for these jobs. After pushing the merge, Craft attempts to delete that name as a local branch before deleting the remote. The local deletion fails, so the remote deletion never runs. The catch handler incorrectly calls this a merge failure and suggests git push origin --delete remotes/origin/release/<version>, which is not the remote branch name.
Proposed fix: use the approved SHA for publishing, but resolve the canonical release/<version> name for remote deletion. Do not depend on deleting a local branch first. Report cleanup failures separately from merge failures.
Environment
getsentry/publishusinggetsentry/craft:latestSteps to Reproduce
release/<version>and publish throughgetsentry/publishwith a CI-approved SHA. Since Publish commit7c60ddb, the workflow invokescraft publish <version> --rev <SHA>.Expected Result
Craft merges the release into
masterand deletes the remoterelease/<version>branch.Actual Result
Both jobs succeeded and pushed their merges (0.17.0, 0.17.1), but the 0.17.0 and 0.17.1 branches remain. Both logs report
error: branch 'remotes/origin/release/<version>' not found.On the
--revpath,git name-revreturned a remote-tracking ref for these jobs. After pushing the merge, Craft attempts to delete that name as a local branch before deleting the remote. The local deletion fails, so the remote deletion never runs. The catch handler incorrectly calls this a merge failure and suggestsgit push origin --delete remotes/origin/release/<version>, which is not the remote branch name.Proposed fix: use the approved SHA for publishing, but resolve the canonical
release/<version>name for remote deletion. Do not depend on deleting a local branch first. Report cleanup failures separately from merge failures.