From ed5ee034b8d9fc77b0d73a8a4672c05b59454557 Mon Sep 17 00:00:00 2001 From: Prad Nukala Date: Wed, 11 Dec 2024 17:41:14 -0500 Subject: [PATCH] feat: prevent duplicate releases --- .github/workflows/scheduled-release.yml | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/.github/workflows/scheduled-release.yml b/.github/workflows/scheduled-release.yml index ab73409ab..843cef04e 100644 --- a/.github/workflows/scheduled-release.yml +++ b/.github/workflows/scheduled-release.yml @@ -3,14 +3,30 @@ name: Versioned Release on: push: tags: - - "v*" + - "*" permissions: contents: write jobs: + check-release: + name: Check Existing Release + runs-on: ubuntu-latest + outputs: + release_exists: ${{ steps.check.outputs.release_exists }} + steps: + - name: Check if release exists + id: check + run: | + RELEASE_EXISTS=$(curl -s -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ + "https://api.github.com/repos/onsonr/sonr/releases/tags/${GITHUB_REF#refs/tags/}" \ + | jq -r 'if .message == "Not Found" then "false" else "true" end') + echo "release_exists=$RELEASE_EXISTS" >> "$GITHUB_OUTPUT" + goreleaser: name: Run GoReleaser + needs: check-release + if: needs.check-release.outputs.release_exists == 'false' permissions: write-all runs-on: ubuntu-latest steps: