name: "go: test building cross-platform binary" on: pull_request: workflow_dispatch: [] jobs: build: name: Build runs-on: ubuntu-latest strategy: matrix: goos: [linux, windows, darwin, freebsd, netbsd, openbsd] goarch: [amd64, arm, arm64, 386] exclude: - goarch: arm goos: darwin - goarch: 386 goos: darwin - goarch: arm goos: windows - goarch: arm64 goos: windows concurrency: group: ${{ github.head_ref }}/binary_test/${{ matrix.goos }}/${{ matrix.goarch }} cancel-in-progress: true steps: - name: Set up Go 1.x uses: actions/setup-go@v2 with: go-version: ^1.13 id: go - name: Check out code into the Go module directory uses: actions/checkout@v2 - name: Get dependencies run: | cd weed; go get -v -t -d ./... if [ -f Gopkg.toml ]; then curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh dep ensure fi - name: Build run: cd weed; GOOS=${{ matrix.goos }} GOARCH=${{ matrix.goarch }} go build -v .