# Defines buckets on cr-buildbucket.appspot.com, used to schedule builds
# on buildbot. In particular, CQ uses some of these buckets to schedule tryjobs.
#
# See http://luci-config.appspot.com/schemas/projects:cr-buildbucket.cfg for
# schema of this file and documentation.
#
# Please keep this list sorted by bucket name.

acl_sets {
  name: "ci"
  acls {
    role: READER
    group: "all"
  }
  acls {
    role: SCHEDULER
    identity: "luci-scheduler@appspot.gserviceaccount.com"
  }
}

acl_sets {
  name: "try"
  acls {
    role: READER
    group: "all"
  }
  acls {
    role: SCHEDULER
    group: "project-dawn-tryjob-access"
  }
  acls {
    role: SCHEDULER
    group: "service-account-cq"
  }
}

builder_mixins {
  name: "clang"
  recipe {
    properties_j: "clang:true"
  }
}
builder_mixins {
  name: "no_clang"
  recipe {
    properties_j: "clang:false"
  }
}
builder_mixins {
  name: "release"
  recipe {
    properties_j: "debug:false"
  }
}
builder_mixins {
  name: "debug"
  recipe {
    properties_j: "debug:true"
  }
}
builder_mixins {
  name: "x86"
  recipe {
    properties: "target_cpu:x86"
  }
}
builder_mixins {
  name: "x64"
  recipe {
    properties: "target_cpu:x64"
  }
}
builder_mixins {
  name: "linux",
  dimensions: "os:Ubuntu-18.04"
  recipe {
    properties_j: <<EOF
      $build/goma: {
        "enable_ats": true,
        "rpc_extra_params": "?prod",
        "server_host": "goma.chromium.org"
      }
    EOF
  }
}
builder_mixins {
  name: "windows",
  dimensions: "os:Windows-10"
  caches {
      path: "win_toolchain"
      name: "win_toolchain"
  }
  recipe {
    properties_j: <<EOF
      $build/goma: {
        "enable_ats": true,
        "rpc_extra_params": "?prod",
        "server_host": "goma.chromium.org"
      }
    EOF
  }
}
builder_mixins {
  name: "mac"
  dimensions: "os:Mac-10.15"
  caches: {   # cache for depot_tools.osx_sdk recipe module
    name: "osx_sdk"
    path: "osx_sdk"
  }
  recipe {
    properties_j: <<EOF
      $build/goma: {
        "rpc_extra_params": "?prod",
        "server_host": "goma.chromium.org"
      }
    EOF
  }
}

builder_mixins {
  name: "gen_fuzz_corpus"
  recipe {
    properties_j: "gen_fuzz_corpus:true"
  }
}

buckets {
  name: "luci.dawn.ci"
  acl_sets: "ci"

  swarming {
    hostname: "chromium-swarm.appspot.com"
    builder_defaults {
      dimensions: "pool:luci.flex.ci"
      # We have 32bit test configurations but some of our toolchain is 64bit (like CIPD)
      dimensions: "cpu:x86-64"
      recipe {
        cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
        cipd_version: "refs/heads/master"
        name: "dawn"
      }
      service_account: "dawn-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
    }

    # Linux: test combinations of {clang}x{release,debug}x{x86,x64}
    builders {
      name: "linux-clang-dbg-x64"
      mixins: "linux"
      mixins: "clang"
      mixins: "debug"
      mixins: "x64"
    }
    builders {
      name: "linux-clang-dbg-x86"
      mixins: "linux"
      mixins: "clang"
      mixins: "debug"
      mixins: "x86"
    }
    builders {
      name: "linux-clang-rel-x64"
      mixins: "linux"
      mixins: "clang"
      mixins: "release"
      mixins: "x64"
    }
    builders {
      name: "linux-clang-rel-x86"
      mixins: "linux"
      mixins: "clang"
      mixins: "release"
      mixins: "x86"
    }

    # Mac: unlike Linux we only need to test x64 (and only clang too)
    builders {
      name: "mac-dbg"
      mixins: "mac"
      mixins: "clang"
      mixins: "debug"
      mixins: "x64"
    }
    builders {
      name: "mac-rel"
      mixins: "mac"
      mixins: "clang"
      mixins: "release"
      mixins: "x64"
    }

    # Windows: test combinations of {clang,msvc}x{release,debug}x{x86,x64}
    # but limit msvc to x64
    builders {
      name: "win-clang-dbg-x64"
      mixins: "windows"
      mixins: "clang"
      mixins: "debug"
      mixins: "x64"
    }
    builders {
      name: "win-clang-dbg-x86"
      mixins: "windows"
      mixins: "clang"
      mixins: "debug"
      mixins: "x86"
    }
    builders {
      name: "win-clang-rel-x64"
      mixins: "windows"
      mixins: "clang"
      mixins: "release"
      mixins: "x64"
    }
    builders {
      name: "win-clang-rel-x86"
      mixins: "windows"
      mixins: "clang"
      mixins: "release"
      mixins: "x86"
    }
    # GOMA doesn't support MSVC builds so we don't used the "windows" mixin and
    # instead list the dimensions: "os:Windows-10" directly.
    builders {
      name: "win-msvc-dbg-x64"
      dimensions: "os:Windows-10"
      mixins: "no_clang"
      mixins: "debug"
      mixins: "x64"
    }
    builders {
      name: "win-msvc-rel-x64"
      dimensions: "os:Windows-10"
      mixins: "no_clang"
      mixins: "release"
      mixins: "x64"
    }

    builders {
      name: "cron-linux-clang-rel-x64"
      mixins: "linux"
      mixins: "clang"
      mixins: "release"
      mixins: "x64"
      mixins: "gen_fuzz_corpus"
    }
  }
}

buckets: {
  name: "luci.dawn.try"
  acl_sets: "try"

  swarming {
    hostname: "chromium-swarm.appspot.com"

    builder_defaults {
      dimensions: "pool:luci.flex.try"
      # We have 32bit test configurations but some of our toolchain is 64bit (like CIPD)
      dimensions: "cpu:x86-64"
      recipe {
        cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
        cipd_version: "refs/heads/master"
        name: "dawn"
        properties_j: "$depot_tools/bot_update:{\"apply_patch_on_gclient\":true}"
      }
      service_account: "dawn-try-builder@chops-service-accounts.iam.gserviceaccount.com"
    }

    builders {
      name: "presubmit"
      dimensions: "os:Ubuntu-18.04"
      recipe {
        name: "run_presubmit"
        properties: "repo_name:dawn"
        properties_j: "runhooks:true"
      }
    }

    # A subset of the CI configurations are used for the CQ. We still mirror
    # the CI builders here so we can trigger tryjobs on their specific
    # configuration.

    # CI Mirror only
    builders {
      name: "linux-clang-dbg-x64"
      mixins: "linux"
      mixins: "clang"
      mixins: "debug"
      mixins: "x64"
    }
    # Actually on the CQ
    builders {
      name: "linux-clang-dbg-x86"
      mixins: "linux"
      mixins: "clang"
      mixins: "debug"
      mixins: "x86"
    }
    # Actually on the CQ
    builders {
      name: "linux-clang-rel-x64"
      mixins: "linux"
      mixins: "clang"
      mixins: "release"
      mixins: "x64"
    }
    # Actually on the CQ
    builders {
      name: "linux-clang-rel-x86"
      mixins: "linux"
      mixins: "clang"
      mixins: "release"
      mixins: "x86"
    }

    # Actually on the CQ
    builders {
      name: "mac-dbg"
      mixins: "clang"
      mixins: "mac"
      mixins: "debug"
      mixins: "x64"
    }
    # Actually on the CQ
    builders {
      name: "mac-rel"
      mixins: "clang"
      mixins: "mac"
      mixins: "release"
      mixins: "x64"
    }

    # Actually on the CQ
    builders {
      name: "win-clang-dbg-x64"
      mixins: "windows"
      mixins: "clang"
      mixins: "debug"
      mixins: "x64"
    }
    # Actually on the CQ
    builders {
      name: "win-clang-dbg-x86"
      mixins: "windows"
      mixins: "clang"
      mixins: "debug"
      mixins: "x86"
    }
    # Actually on the CQ
    builders {
      name: "win-clang-rel-x64"
      mixins: "windows"
      mixins: "clang"
      mixins: "release"
      mixins: "x64"
    }
    # CI Mirror only
    builders {
      name: "win-clang-rel-x86"
      mixins: "windows"
      mixins: "clang"
      mixins: "release"
      mixins: "x86"
    }
    # GOMA doesn't support MSVC builds so we don't used the "windows" mixin and
    # instead list the dimensions: "os:Windows-10" directly.
    builders {
      name: "win-msvc-dbg-x64"
      dimensions: "os:Windows-10"
      mixins: "no_clang"
      mixins: "debug"
      mixins: "x64"
    }
    builders {
      name: "win-msvc-rel-x64"
      dimensions: "os:Windows-10"
      mixins: "no_clang"
      mixins: "release"
      mixins: "x64"
    }
  }
}
