name: Versioned Release on: push: tags: - "*" 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: - name: Checkout repository uses: actions/checkout@v4 with: repository: onsonr/sonr fetch-depth: 0 fetch-tags: true - name: Checkout Latest Tag run: git checkout $(git describe --tags --abbrev=0) - uses: actions/setup-go@v5 with: go-version: "1.23" check-latest: true - name: Login to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Release uses: goreleaser/goreleaser-action@v6 with: distribution: goreleaser-pro version: latest args: release --clean env: GITHUB_TOKEN: ${{ secrets.GH_RELEASER_TOKEN }} GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }} GITHUB_PERSONAL_AUTH_TOKEN: ${{ secrets.GH_RELEASER_TOKEN }} DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_TOKEN }} CLOUDSMITH_TOKEN: ${{ secrets.CLOUDSMITH_TOKEN }}