name: Go Releaser Check on: workflow_call: inputs: go-version-file: description: "Path to go.mod for version resolution" type: string default: "go.mod" snapshot-artifact: description: "Upload snapshot binaries as artifact" type: boolean default: false jobs: check: name: goreleaser check runs-on: ubuntu-latest env: GO_VERSION_FILE: ${{ inputs.go-version-file }} steps: - uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v5 with: go-version-file: ${{ env.GO_VERSION_FILE }} cache: true - name: Validate .goreleaser.yaml uses: goreleaser/goreleaser-action@v6 with: version: latest args: check build: name: goreleaser build (snapshot) runs-on: ubuntu-latest needs: check env: GO_VERSION_FILE: ${{ inputs.go-version-file }} steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up Go uses: actions/setup-go@v5 with: go-version-file: ${{ env.GO_VERSION_FILE }} cache: true - name: Build snapshot uses: goreleaser/goreleaser-action@v6 with: version: latest args: build --snapshot --clean - name: Upload snapshot binaries if: ${{ inputs.snapshot-artifact }} uses: actions/upload-artifact@v4 with: name: snapshot-binaries path: dist/ retention-days: 3