--- name: Build on: [push, pull_request] permissions: read-all jobs: build: runs-on: ubuntu-latest strategy: fail-fast: false matrix: target: - linux-amd64 - linux-386 - darwin-amd64 - darwin-arm64 - windows-amd64 - linux-arm - linux-arm64 - linux-ppc64le - linux-s390x steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - id: goversion run: echo "goversion=$(cat .go-version)" >> "$GITHUB_OUTPUT" - uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 with: go-version: ${{ steps.goversion.outputs.goversion }} - env: TARGET: ${{ matrix.target }} run: | set -euo pipefail echo "${TARGET}" case "${TARGET}" in linux-amd64) GOOS=linux GOARCH=amd64 make build ;; linux-386) GOOS=linux GOARCH=386 make build ;; darwin-amd64) GOOS=darwin GOARCH=amd64 make build ;; darwin-arm64) GOOS=darwin GOARCH=arm64 make build ;; windows-amd64) GOOS=windows GOARCH=amd64 make build ;; linux-arm) GOOS=linux GOARCH=arm make build ;; linux-arm64) GOOS=linux GOARCH=arm64 make build ;; linux-ppc64le) GOOS=linux GOARCH=ppc64le make build ;; linux-s390x) GOOS=linux GOARCH=s390x make build ;; *) echo "Failed to find target" exit 1 ;; esac