diff --git a/.github/workflows/languages-go-goreleaser-check.yml b/.github/workflows/languages-go-goreleaser-check.yml new file mode 100644 index 0000000..8d48707 --- /dev/null +++ b/.github/workflows/languages-go-goreleaser-check.yml @@ -0,0 +1,61 @@ +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 + steps: + - uses: actions/checkout@v4 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version-file: ${{ inputs.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 + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version-file: ${{ inputs.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 diff --git a/.github/workflows/languages-go-goreleaser.yml b/.github/workflows/languages-go-goreleaser.yml new file mode 100644 index 0000000..0dc11e7 --- /dev/null +++ b/.github/workflows/languages-go-goreleaser.yml @@ -0,0 +1,35 @@ +name: Go Release + +on: + workflow_call: + inputs: + go-version-file: + description: "Path to go.mod for version resolution" + type: string + default: "go.mod" + secrets: + GITHUB_TOKEN: + required: true + +jobs: + release: + name: goreleaser release + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version-file: ${{ inputs.go-version-file }} + cache: true + + - name: Run GoReleaser + uses: goreleaser/goreleaser-action@v6 + with: + version: latest + args: release --clean + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}