name: Compile on: push: branches: - main tags: - "*" pull_request: branches: - main release: types: - published permissions: contents: write packages: write jobs: build: runs-on: ubuntu-latest steps: - name: Check out code uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: show-progress: false fetch-depth: 0 - name: Set up Go uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 with: go-version-file: go.ver - name: Set up QEMU uses: docker/setup-qemu-action@06116385d9baf250c9f4dcb4858b16962ea869c3 # v4.1.0 - name: Docker Login uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: Test releasing binaries if: github.event_name == 'pull_request' uses: goreleaser/goreleaser-action@5daf1e915a5f0af01ddbcd89a43b8061ff4f1a89 # v7.2.2 with: args: release --clean --skip=validate --skip=sign --skip=sbom --skip=publish --snapshot - name: Extract release changelog if: startsWith(github.ref, 'refs/tags/') id: changelog uses: sean0x42/markdown-extract@4178293dd16a52514b6cb2c01f4d309d264b2736 # v2 with: file: docs/changelog.md pattern: "${{ github.ref_name }}" no-print-matched-heading: true - name: Write changelog if: startsWith(github.ref, 'refs/tags/') run: | mkdir .tmp exec 3<<'HERE' ${{ steps.changelog.outputs.markdown }} HERE cat /dev/fd/3 | tee .tmp/changelog.txt - name: Release binaries if: startsWith(github.ref, 'refs/tags/') uses: goreleaser/goreleaser-action@5daf1e915a5f0af01ddbcd89a43b8061ff4f1a89 # v7.2.2 with: args: release --clean --release-notes=.tmp/changelog.txt env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}