matrix:
  platform:
    # Disable platforms that do not support c++20 or have a new enough gcc (>11)
    # - debian10
    # - debian11
    # - ubuntu2004
    # - ubuntu2004_arm64
    # MacOS is not yet supported.
    # - macos
    # - macos_arm64
    # Windows is not yet supported.
    # - windows
    - ubuntu2204
    - ubuntu2204_arm64
    - ubuntu2404
    - ubuntu2404_arm64
  bazel:
    - 7.x
    - 8.x
    # Disabled for now because glog does not use rules_cc for cc_* targets.
    # - rolling
tasks:
  verify_targets:
    platform: ${{ platform }}
    bazel: ${{ bazel }}
    build_flags: &cxx_flags
      - '--cxxopt=-std=c++20'
      - '--host_cxxopt=-std=c++20'
      # Disable spammy warnings in external dependencies to make build output readable.
      - '--per_file_copt=external/.*@-w'
      - '--host_per_file_copt=external/.*@-w'
    test_flags: *cxx_flags
    build_targets:
      - '@proxygen//...'
    test_targets:
      - '@proxygen//...'
