Don't re-draft an already-published release on every main push
stage_release runs on every push to main and unconditionally deletes and recreates the draft release for the version in _version.py. Since _version.py isn't bumped until sometime after a release is tagged and published by release.yml, every intervening push to main was clobbering the just-published release back to draft status. Confirmed this hit v17.3.0 through v17.8.0 (and briefly v17.8.1, manually fixed). Skip the delete/recreate if a non-draft release already exists for this tag.
This commit is contained in:
@@ -275,6 +275,14 @@ jobs:
|
||||
run: |
|
||||
TAG="v${{ steps.version.outputs.version }}"
|
||||
|
||||
# If release.yml already published this version, _version.py may
|
||||
# still reflect it until the next version bump commit. Don't
|
||||
# re-draft an already-published release on later pushes to main.
|
||||
if [[ "$(gh release view "$TAG" --json isDraft --jq .isDraft 2>/dev/null)" == "false" ]]; then
|
||||
echo "Release $TAG is already published; skipping."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Delete existing draft release if it exists (ignore errors)
|
||||
gh release delete "$TAG" --yes 2>/dev/null || true
|
||||
|
||||
|
||||
Reference in New Issue
Block a user