# 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: "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-android-8.1.0"
      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-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-run-on-as-app"
      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: "windows"
      mixins: "win"
      recipe {
        properties: "tool:r8"
      }
    }
    builders {
      name: "windows_release"
      mixins: "win"
      recipe {
        properties: "tool:r8"
      }
    }
  }
}
