Skip to content

Commit 9dc67de

Browse files
authored
Merge pull request #12 from zapta/main
Made the build workflow handling of same date pre-releases more robust.
2 parents 3671963 + 33e36d9 commit 9dc67de

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

.github/workflows/build-and-release.yaml

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -175,18 +175,21 @@ jobs:
175175
176176
- name: Delete same tag pre-release if exist.
177177
run: |
178-
# Status values:
179-
# "false" - exists and is a release exists
180-
# "true" - exists and is a pre-release
181-
# "" - doesn't exist
182-
status=$(gh release view "$RELEASE_TAG" --json isPrerelease -q .isPrerelease || true)
183-
echo "Status is [$status]"
184-
if [[ "$status" == "false" ]]; then
178+
set -e
179+
gh release list --limit 100
180+
output=$(gh release view "$RELEASE_TAG" --json name,tagName,isDraft,isImmutable,isPrerelease 2>&1 || true)
181+
echo $output
182+
if [[ "$output" == "release not found" ]]; then
183+
echo "Release $RELEASE_TAG does not exist, safe to continue."
184+
elif [[ "$(echo "$output" | jq -r '.isPrerelease')" == "true" ]]; then
185+
echo "Release $RELEASE_TAG exists and is a pre-release, deleting."
186+
gh release delete "$RELEASE_TAG" --yes --cleanup-tag
187+
elif [[ "$(echo "$output" | jq -r '.isPrerelease')" == "false" ]]; then
185188
echo "Error: A stable release (non pre-release) already exists for tag $RELEASE_TAG."
186189
exit 1
187-
elif [[ "$status" == "true" ]]; then
188-
echo "Deleting existing pre-release and tag $RELEASE_TAG."
189-
gh release delete "$RELEASE_TAG" --yes --cleanup-tag
190+
else
191+
echo "Error determining if release $RELEASE_TAG exists"
192+
exit 1
190193
fi
191194
env:
192195
GITHUB_TOKEN: ${{ github.token }}

0 commit comments

Comments
 (0)