name: Release with goreleaser on: workflow_dispatch: push: tags: - v* permissions: write-all jobs: build: runs-on: ubuntu-latest steps: - name: Set up latest stable Go uses: actions/setup-go@v5 with: go-version: stable - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Install dependencies run: | sudo apt update && sudo apt install -y curl git gcc g++ make \ gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu \ libc6-dev-arm64-cross software-properties-common - name: Checkout uses: actions/checkout@v4 with: fetch-tags: 1 fetch-depth: 1 # Set environment variables required by GoReleaser - name: Set build environment variables run: | echo "GIT_STATE=$(if git diff-index --quiet HEAD --; then echo 'clean'; else echo 'dirty'; fi)" >> $GITHUB_ENV echo "BUILD_HOST=$(hostname)" >> $GITHUB_ENV echo "GO_VERSION=$(go version | awk '{print $3}')" >> $GITHUB_ENV echo "BUILD_USER=$(whoami)" >> $GITHUB_ENV echo "CGO_ENABLED=1" >> $GITHUB_ENV - name: Docker Login uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Release with goreleaser uses: goreleaser/goreleaser-action@v6 env: GITHUB_TOKEN: ${{ github.token }} with: version: latest args: release --clean id: goreleaser - name: Attest Binaries uses: actions/attest-build-provenance@v2 with: subject-checksums: dist/checksums.txt