JingsongLi commented on PR #790: URL: https://github.com/apache/paimon-rust/pull/790#issuecomment-5526304069
**[P2] Support Go release recovery when rerunning only failed jobs** Location: [`.github/workflows/release-go-binding.yml:321–323`](https://github.com/apache/paimon-rust/blob/9a5775c784ca21992f9cbb7d66a14005c657f1ba/.github/workflows/release-go-binding.yml#L321-L323) On the first run, `validate` outputs an empty `tag_object` because the Go release tag does not exist yet. If `publish` successfully pushes the tag but then fails while creating the GitHub Release, selecting **Re-run failed jobs** reruns `publish` while retaining the successful `validate` job's outputs. The new checkout now contains the tag, but `EXPECTED_TAG_OBJECT` is still empty, so this comparison fails with `tag ... changed after validation` before reaching the recovery branch. This leaves a common retry path unsupported by the new recovery logic. Rerunning all jobs or starting a new manual run works around it, but rerunning only the failed `publish` job cannot recover. Could tag creation and GitHub Release publication be split into separate jobs, with the latter consuming the successful tag job's object SHA? That would allow the failed Release job to resume while preserving the strict tag-object binding. I reproduced the guard failure using the actual tag step in an isolated local Git repository with a local bare remote. The artifact verifier was stubbed; the failure occurs before it is invoked. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
