# 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: "all"
  }
  acls {
    role: SCHEDULER
    identity: "luci-scheduler@appspot.gserviceaccount.com"
  }
  acls {
    role: SCHEDULER
    group: "project-r8-committers"
  }
}

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: "linux"
      mixins: "linux"
      mixins: "normal"
      recipe {
        properties: "tool:r8"
      }
    }
    builders {
      name: "linux-altfe"
      mixins: "linux"
      mixins: "normal"
      recipe {
        properties: "tool:r8"
        properties: "alternative_frontend:True"
      }
    }
    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-android-8.1.0"
      mixins: "linux"
      mixins: "normal"
      recipe {
        properties: "tool:r8"
        properties: "dex_vm:8.1.0"
      }
    }
    builders {
      name: "linux-android-8.1.0_release"
      mixins: "linux"
      mixins: "normal"
      recipe {
        properties: "tool:r8"
        properties: "dex_vm:8.1.0"
      }
    }
    builders {
      name: "linux-android-9.0.0"
      mixins: "linux"
      mixins: "normal"
      recipe {
        properties: "tool:r8"
        properties: "dex_vm:9.0.0"
      }
    }
    builders {
      name: "linux-android-9.0.0_release"
      mixins: "linux"
      mixins: "normal"
      recipe {
        properties: "tool:r8"
        properties: "dex_vm:9.0.0"
      }
    }
    builders {
      name: "linux-internal"
      mixins: "linux"
      mixins: "internal"
      execution_timeout_secs: 43200  # 12h
      recipe {
        properties: "internal:True"
      }
    }
    builders {
      name: "linux-internal_release"
      mixins: "linux"
      mixins: "internal"
      execution_timeout_secs: 43200  # 12h
      recipe {
        properties: "internal:True"
      }
    }
    builders {
      name: "linux-run-on-as-app"
      mixins: "linux"
      mixins: "normal"
      recipe {
        properties: "run_on_apps:True"
      }
    }
    builders {
      name: "linux-run-on-as-app_release"
      mixins: "linux"
      mixins: "normal"
      recipe {
        properties: "run_on_apps: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: "r8cf-linux-jctf_release"
      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"
      }
    }
  }
}
