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

builder_mixins {
  name: "linux"
  dimensions: "os:Ubuntu-16.04"
}

builder_mixins {
  name: "win"
  dimensions: "os:Windows-10"
}

builder_mixins {
  name: "normal"
  dimensions: "normal:true"
}

builder_mixins {
  name: "jctf"
  dimensions: "jctf:true"
}

builder_mixins {
  name: "internal"
  dimensions: "internal:true"
}

builder_mixins {
  name: "mac"
  dimensions: "os:Mac-10.13"
  dimensions: "cores:"  # Macs can be 4 or 8 cores.
}

builder_mixins {
  name: "build_limited_scripts_slave recipe"
  recipe {
    cipd_package: "infra_internal/recipe_bundles/chrome-internal.googlesource.com/chrome/tools/build_limited/scripts/slave"
    cipd_version: "refs/heads/master"
  }
}

builder_mixins {
  name: "fast_bot"
  execution_timeout_secs: 5400 # 1.5 hours
}

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

acl_sets {
  name: "try"
  acls {
    role: READER
    group: "project-r8-readers"
  }
  acls {
    role: WRITER
    group: "project-r8-admins"
  }
  acls {
    role: SCHEDULER
    group: "service-account-cq"
  }
  acls {
    role: SCHEDULER
    group: "project-r8-tryjob-access"
  }
}

buckets {
  name: "luci.r8.ci"
  acl_sets: "ci"
  swarming {
    hostname: "chrome-swarming.appspot.com"
    builder_defaults {
      dimensions: "cores:8"
      dimensions: "cpu:x86-64"
      dimensions: "pool:luci.r8.ci"
      service_account: "r8-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
      execution_timeout_secs: 21600  # 6h
      expiration_secs: 126000 # 35h, execution_timeout_secs + expiration_secs must be <=47h
      swarming_tags: "vpython:native-python-wrapper"
      build_numbers: YES
      luci_migration_host: "luci-migration.appspot.com"
      recipe {
        properties: "mastername:internal.client.r8"
        name: "rex"
      }
      mixins: "build_limited_scripts_slave recipe"
    }

    builders {
      name: "archive"
      priority: 25
      mixins: "linux"
      execution_timeout_secs: 1800  # 1/2h
      recipe {
        properties: "archive:True"
      }
    }
    builders {
      name: "archive_release"
      priority: 25
      mixins: "linux"
      execution_timeout_secs: 1800  # 1/2h
      recipe {
        properties: "archive:True"
      }

    }
    builders {
      name: "d8-linux-android-4.0.4_release"
      mixins: "linux"
      mixins: "normal"
      recipe {
        properties: "tool:d8"
        properties: "dex_vm:4.0.4"
      }
    }
    builders {
      name: "d8-linux-android-4.4.4_release"
      mixins: "linux"
      mixins: "normal"
      recipe {
        properties: "tool:d8"
        properties: "dex_vm:4.4.4"
      }
    }
    builders {
      name: "d8-linux-android-5.1.1_release"
      mixins: "linux"
      mixins: "normal"
      recipe {
        properties: "tool:d8"
        properties: "dex_vm:5.1.1"
      }
    }
    builders {
      name: "d8-linux-android-6.0.1_release"
      mixins: "linux"
      mixins: "normal"
      recipe {
        properties: "tool:d8"
        properties: "dex_vm:6.0.1"
      }
    }
    builders {
      name: "d8-linux-android-7.0.0_release"
      mixins: "linux"
      mixins: "normal"
      recipe {
        properties: "tool:d8"
        properties: "dex_vm:7.0.0"
      }
    }
    builders {
      name: "d8-linux_release"
      mixins: "linux"
      mixins: "normal"
      recipe {
        properties: "tool:d8"
      }
    }
    builders {
      name: "linux"
      mixins: "linux"
      mixins: "normal"
      recipe {
        properties: "tool:r8"
      }
    }
    builders {
      name: "linux_release"
      mixins: "normal"
      mixins: "linux"
      recipe {
        properties: "tool:r8"
      }
    }
    builders {
      name: "linux-android-4.0.4"
      mixins: "linux"
      mixins: "normal"
      recipe {
        properties: "tool:r8"
        properties: "dex_vm:4.0.4"
      }
    }
    builders {
      name: "linux-android-4.0.4_release"
      mixins: "linux"
      mixins: "normal"
      recipe {
        properties: "tool:r8"
        properties: "dex_vm:4.0.4"
      }
    }
    builders {
      name: "linux-android-4.4.4"
      mixins: "linux"
      mixins: "normal"
      recipe {
        properties: "tool:r8"
        properties: "dex_vm:4.4.4"
      }
    }
    builders {
      name: "linux-android-4.4.4_release"
      mixins: "linux"
      mixins: "normal"
      recipe {
        properties: "tool:r8"
        properties: "dex_vm:4.4.4"
      }
    }
    builders {
      name: "linux-android-5.1.1"
      mixins: "normal"
      mixins: "linux"
      recipe {
        properties: "tool:r8"
        properties: "dex_vm:5.1.1"
      }
    }
    builders {
      name: "linux-android-5.1.1_release"
      mixins: "linux"
      mixins: "normal"
      recipe {
        properties: "tool:r8"
        properties: "dex_vm:5.1.1"
      }
    }
    builders {
      name: "linux-android-6.0.1"
      mixins: "linux"
      mixins: "normal"
      recipe {
        properties: "tool:r8"
        properties: "dex_vm:6.0.1"
      }
    }
    builders {
      name: "linux-android-6.0.1_release"
      mixins: "linux"
      mixins: "normal"
      recipe {
        properties: "tool:r8"
        properties: "dex_vm:6.0.1"
      }
    }
    builders {
      name: "linux-android-7.0.0"
      mixins: "linux"
      mixins: "normal"
      recipe {
        properties: "tool:r8"
        properties: "dex_vm:7.0.0"
      }
    }
    builders {
      name: "linux-android-7.0.0_release"
      mixins: "linux"
      mixins: "normal"
      recipe {
        properties: "tool:r8"
        properties: "dex_vm:7.0.0"
      }
    }
    builders {
      name: "linux-internal"
      mixins: "linux"
      mixins: "internal"
      recipe {
        properties: "internal:True"
      }
    }
    builders {
      name: "linux-internal_release"
      mixins: "linux"
      mixins: "internal"
      recipe {
        properties: "internal:True"
      }
    }
    builders {
      name: "linux-jctf"
      mixins: "linux"
      mixins: "jctf"
      execution_timeout_secs: 43200  # 12h
      recipe {
        properties: "tool:d8"
        properties: "dex_vm:all"
        properties: "only_jctf:True"
      }
    }
    builders {
      name: "linux-jctf_release"
      mixins: "linux"
      mixins: "jctf"
      execution_timeout_secs: 43200  # 12h
      recipe {
        properties: "tool:d8"
        properties: "dex_vm:all"
        properties: "only_jctf:True"
      }
    }
    builders {
      name: "r8cf-linux-jctf"
      mixins: "linux"
      mixins: "jctf"
      execution_timeout_secs: 43200  # 12h
      recipe {
        properties: "tool:r8cf"
        properties: "dex_vm:all"
        properties: "only_jctf:True"
      }
    }
    builders {
      name: "windows"
      mixins: "win"
      recipe {
        properties: "tool:r8"
      }
    }
    builders {
      name: "windows_release"
      mixins: "win"
      recipe {
        properties: "tool:r8"
      }
    }
  }
}
