From ec57c76a2a0d31997d45a93edef0e7b06d67eb56 Mon Sep 17 00:00:00 2001 From: Prad Nukala Date: Wed, 11 Dec 2024 17:45:13 -0500 Subject: [PATCH] feat: enable GoReleaser releases on tags and snapshots --- .github/workflows/scheduled-release.yml | 33 ++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/.github/workflows/scheduled-release.yml b/.github/workflows/scheduled-release.yml index 84374cdee..b03d92698 100644 --- a/.github/workflows/scheduled-release.yml +++ b/.github/workflows/scheduled-release.yml @@ -15,9 +15,23 @@ jobs: runs-on: ubuntu-latest outputs: release_exists: ${{ steps.check.outputs.release_exists }} + is_tag: ${{ steps.check-ref.outputs.is_tag }} + ref_name: ${{ steps.check-ref.outputs.ref_name }} steps: + - name: Determine ref type and name + id: check-ref + run: | + if [[ $GITHUB_REF == refs/tags/* ]]; then + echo "is_tag=true" >> "$GITHUB_OUTPUT" + echo "ref_name=${GITHUB_REF#refs/tags/}" >> "$GITHUB_OUTPUT" + else + echo "is_tag=false" >> "$GITHUB_OUTPUT" + echo "ref_name=${GITHUB_REF#refs/heads/}" >> "$GITHUB_OUTPUT" + fi + - name: Check if release exists id: check + if: steps.check-ref.outputs.is_tag == 'true' run: | RELEASE_EXISTS=$(curl -s -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ "https://api.github.com/repos/onsonr/sonr/releases/tags/${GITHUB_REF#refs/tags/}" \ @@ -27,7 +41,9 @@ jobs: goreleaser: name: Run GoReleaser needs: check-release - if: needs.check-release.outputs.release_exists == 'false' + if: | + (needs.check-release.outputs.is_tag == 'true' && needs.check-release.outputs.release_exists == 'false') || + (needs.check-release.outputs.is_tag == 'false') permissions: write-all runs-on: ubuntu-latest steps: @@ -38,8 +54,17 @@ jobs: fetch-depth: 0 fetch-tags: true - - name: Checkout Latest Tag - run: git checkout $(git describe --tags --abbrev=0) + - name: Set up release configuration + id: setup + run: | + if [[ "${{ needs.check-release.outputs.is_tag }}" == "true" ]]; then + echo "Using tag configuration" + git checkout ${{ needs.check-release.outputs.ref_name }} + echo "args=release --clean" >> "$GITHUB_OUTPUT" + else + echo "Using snapshot configuration" + echo "args=release --snapshot --clean" >> "$GITHUB_OUTPUT" + fi - uses: actions/setup-go@v5 with: @@ -57,7 +82,7 @@ jobs: with: distribution: goreleaser-pro version: latest - args: release --clean + args: ${{ steps.setup.outputs.args }} env: GITHUB_TOKEN: ${{ secrets.GH_RELEASER_TOKEN }} GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}