# 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"
  }
}

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"
      caches {
        path: "win_toolchain"
        name: "win_toolchain"
      }
      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"
      dimensions: "os:Ubuntu-14.04"
      mixins: "debug"
      mixins: "x64"
    }
    builders {
      name: "linux-clang-dbg-x86"
      dimensions: "os:Ubuntu-14.04"
      mixins: "debug"
      mixins: "x86"
    }
    builders {
      name: "linux-clang-rel-x64"
      dimensions: "os:Ubuntu-14.04"
      mixins: "release"
      mixins: "x64"
    }
    builders {
      name: "linux-clang-rel-x86"
      dimensions: "os:Ubuntu-14.04"
      mixins: "release"
      mixins: "x86"
    }

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

    # Linux: test combinations of {clang,msvc}x{release,debug}x{x86,x64}
    # but limit msvc to x64
    builders {
      name: "win-clang-dbg-x64"
      dimensions: "os:Windows"
      mixins: "clang"
      mixins: "debug"
      mixins: "x64"
    }
    builders {
      name: "win-clang-dbg-x86"
      dimensions: "os:Windows"
      mixins: "clang"
      mixins: "debug"
      mixins: "x86"
    }
    builders {
      name: "win-clang-rel-x64"
      dimensions: "os:Windows"
      mixins: "clang"
      mixins: "release"
      mixins: "x64"
    }
    builders {
      name: "win-clang-rel-x86"
      dimensions: "os:Windows"
      mixins: "clang"
      mixins: "release"
      mixins: "x86"
    }
    builders {
      name: "win-msvc-dbg-x64"
      dimensions: "os:Windows"
      mixins: "no_clang"
      mixins: "debug"
      mixins: "x64"
    }
    builders {
      name: "win-msvc-rel-x64"
      dimensions: "os:Windows"
      mixins: "no_clang"
      mixins: "release"
      mixins: "x64"
    }
  }
}

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"
      caches {
        path: "win_toolchain"
        name: "win_toolchain"
      }
      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-14.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"
      dimensions: "os:Ubuntu-14.04"
      mixins: "debug"
      mixins: "x64"
    }
    # CI Mirror only
    builders {
      name: "linux-clang-dbg-x86"
      dimensions: "os:Ubuntu-14.04"
      mixins: "debug"
      mixins: "x86"
    }
    # Actually on the CQ
    builders {
      name: "linux-clang-rel-x64"
      dimensions: "os:Ubuntu-14.04"
      mixins: "release"
      mixins: "x64"
    }
    # Actually on the CQ
    builders {
      name: "linux-clang-rel-x86"
      dimensions: "os:Ubuntu-14.04"
      mixins: "release"
      mixins: "x86"
    }

    # Actually on the CQ
    builders {
      name: "mac-dbg"
      dimensions: "os:Mac-10.13"
      mixins: "debug"
    }
    # Actually on the CQ
    builders {
      name: "mac-rel"
      dimensions: "os:Mac-10.13"
      mixins: "release"
    }

    # Actually on the CQ
    builders {
      name: "win-clang-dbg-x64"
      dimensions: "os:Windows"
      mixins: "clang"
      mixins: "debug"
      mixins: "x64"
    }
    # CI Mirror only
    builders {
      name: "win-clang-dbg-x86"
      dimensions: "os:Windows"
      mixins: "clang"
      mixins: "debug"
      mixins: "x86"
    }
    # Actually on the CQ
    builders {
      name: "win-clang-rel-x64"
      dimensions: "os:Windows"
      mixins: "clang"
      mixins: "release"
      mixins: "x64"
    }
    # CI Mirror only
    builders {
      name: "win-clang-rel-x86"
      dimensions: "os:Windows"
      mixins: "clang"
      mixins: "release"
      mixins: "x86"
    }
    # CI Mirror only
    builders {
      name: "win-msvc-dbg-x64"
      dimensions: "os:Windows"
      mixins: "no_clang"
      mixins: "debug"
      mixins: "x64"
    }
    # CI Mirror only
    builders {
      name: "win-msvc-rel-x64"
      dimensions: "os:Windows"
      mixins: "no_clang"
      mixins: "release"
      mixins: "x64"
    }
  }
}
