name: release on: push: tags: ["v*"] permissions: # Creating the GitHub release and uploading its archives. contents: write jobs: goreleaser: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 with: # The changelog is the commits since the previous tag, and a # shallow clone has neither. fetch-depth: 0 - uses: actions/setup-go@v6 with: go-version-file: go.mod # A tag is cut from a commit CI has usually already passed, but not # necessarily: this is the last chance to not publish a broken build. - name: test run: go test ./... - uses: goreleaser/goreleaser-action@v6 with: distribution: goreleaser version: "~> v2" args: release --clean env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}