name: release on: push: tags: - "v*" workflow_dispatch: jobs: goreleaser: runs-on: ubuntu-latest steps: - name: Checkout repository and submodules uses: actions/checkout@v3 - name: Unshallow run: git fetch --prune --unshallow - name: Setup Go id: go uses: actions/setup-go@v3 with: go-version: 1.21.0 - name: Locate cache paths id: cache run: | echo "GOMODCACHE=$(go env GOMODCACHE)" >> $GITHUB_OUTPUT echo "GOCACHE=$(go env GOCACHE)" >> $GITHUB_OUTPUT # Note: use custom caching because below performs a cross platform build # through goreleaser and don't want to share a cache with the test builds. - name: Setup caching uses: actions/cache@v3 with: path: | ${{ steps.cache.outputs.GOMODCACHE }} ${{ steps.cache.outputs.GOCACHE }} key: release-${{ runner.os }}-go-${{ steps.go.outputs.go-version }}-${{ hashFiles('go.sum', '.goreleaser.yaml') }} - name: Run GoReleaser uses: goreleaser/goreleaser-action@v4 with: version: latest args: release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}