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: 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@v1 with: subject-path: '${{ github.workspace }}/dist/magellan_linux_amd64_v3/magellan'