name: Cross-Build on: push: branches: - master - 2.* pull_request: branches: - master - 2.* jobs: cross-build-test: strategy: fail-fast: false matrix: goos: - 'android' - 'linux' - 'solaris' - 'illumos' - 'dragonfly' - 'freebsd' - 'openbsd' - 'plan9' - 'windows' - 'darwin' - 'netbsd' go: - '1.21' include: # Set the minimum Go patch version for the given Go minor # Usable via ${{ matrix.GO_SEMVER }} - go: '1.21' GO_SEMVER: '~1.21.0' runs-on: ubuntu-latest continue-on-error: true steps: - name: Checkout code uses: actions/checkout@v3 - name: Install Go uses: actions/setup-go@v4 with: go-version: ${{ matrix.GO_SEMVER }} check-latest: true - name: Print Go version and environment id: vars run: | printf "Using go at: $(which go)\n" printf "Go version: $(go version)\n" printf "\n\nGo environment:\n\n" go env printf "\n\nSystem environment:\n\n" env - name: Run Build env: CGO_ENABLED: 0 GOOS: ${{ matrix.goos }} shell: bash continue-on-error: true working-directory: ./cmd/caddy run: | GOOS=$GOOS go build -trimpath -o caddy-"$GOOS"-amd64 2> /dev/null if [ $? -ne 0 ]; then echo "::warning ::$GOOS Build Failed" exit 0 fi