matrix:
  platform:
    # Disable platforms that do not support c++20 or have a new enough gcc (>11)
    # - debian10
    # - debian11
    # - ubuntu2004
    # - ubuntu2004_arm64
    # Windows is not yet supported.
    # - windows
    - ubuntu2204
    - ubuntu2404
    - macos_arm64
  bazel:
    - 7.x
    - 8.x
    - rolling
tasks:
  verify_targets:
    platform: ${{ platform }}
    bazel: ${{ bazel }}
    build_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:
      - "--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"
    build_targets:
      - "@folly//..."
    test_targets:
      - "@folly//..."
