on: [push, pull_request]
jobs:
  crosscompile:
    strategy:
      fail-fast: false
      matrix:
        go: [ "1.23.x", "1.24.x", "1.25.0-rc.1" ]
    runs-on: ${{ fromJSON(vars['CROSS_COMPILE_RUNNER_UBUNTU'] || '"ubuntu-latest"') }}
    name: "Cross Compilation (Go ${{matrix.go}})"
    timeout-minutes: 30
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-go@v5
        with:
          go-version: ${{ matrix.go }}
      - name: Install build utils
        run: |
          sudo apt-get update
          sudo apt-get install -y gcc-multilib
      - name: Install dependencies
        run: go build example/main.go
      - name: Run cross compilation
        # run in parallel on as many cores as are available on the machine
        run: go tool dist list | xargs -I % -P "$(nproc)" .github/workflows/cross-compile.sh %
