# 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: "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
      $depot_tools/osx_sdk:{
        "sdk_version": "11b52"
      }
    EOF
  }
}

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

    # Mac: unlike Linux we only need to test x64 (and only clang too)
    builders {
      name: "mac-dbg"
      mixins: "mac"
      mixins: "debug"
    }
    builders {
      name: "mac-rel"
      mixins: "mac"
      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-16.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-16.04"
      mixins: "debug"
      mixins: "x64"
    }
    # Actually on the CQ
    builders {
      name: "linux-clang-dbg-x86"
      dimensions: "os:Ubuntu-16.04"
      mixins: "debug"
      mixins: "x86"
    }
    # Actually on the CQ
    builders {
      name: "linux-clang-rel-x64"
      dimensions: "os:Ubuntu-16.04"
      mixins: "release"
      mixins: "x64"
    }
    # Actually on the CQ
    builders {
      name: "linux-clang-rel-x86"
      dimensions: "os:Ubuntu-16.04"
      mixins: "release"
      mixins: "x86"
    }

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

    # Actually on the CQ
    builders {
      name: "win-clang-dbg-x64"
      dimensions: "os:Windows"
      mixins: "clang"
      mixins: "debug"
      mixins: "x64"
    }
    # Actually on the CQ
    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"
    }
  }
}
