# Defines jobs on luci-scheduler.appspot.com.
#
# For schema of this file and documentation see ProjectConfig message in
#
# https://chromium.googlesource.com/infra/luci/luci-go/+/master/scheduler/appengine/messages/config.proto

acl_sets {
  name: "default"
  acls {
    role: READER
    granted_to: "group:project-r8-readers"
  }
  acls {
    role: OWNER
    granted_to: "group:project-r8-admins"
  }
}

# The format of this file is important, we have a hackish parsing to trigger
# builds in tools/trigger.py
trigger {
  id: "master-gitiles-trigger"
  acl_sets: "default"
  gitiles: {
    repo: "https://r8.googlesource.com/r8"
    refs: "refs/heads/master"
  }
  triggers: "archive"
  triggers: "linux"
  triggers: "linux-altfe"
  triggers: "linux-android-4.0.4"
  triggers: "linux-android-4.4.4"
  triggers: "linux-android-5.1.1"
  triggers: "linux-android-6.0.1"
  triggers: "linux-android-7.0.0"
  triggers: "linux-android-8.1.0"
  triggers: "linux-android-9.0.0"
  triggers: "linux-run-on-as-app"
  triggers: "linux-internal"
  triggers: "linux-jctf"
  triggers: "r8cf-linux-jctf"
  triggers: "windows"
}

trigger {
  id: "branch-gitiles-trigger"
  acl_sets: "default"
  gitiles: {
    repo: "https://r8.googlesource.com/r8"
    refs: "regexp:refs/heads/d8.*"
  }
  triggers: "archive_release"
  triggers: "linux-android-4.0.4_release"
  triggers: "linux-android-4.4.4_release"
  triggers: "linux-android-5.1.1_release"
  triggers: "linux-android-6.0.1_release"
  triggers: "linux-android-7.0.0_release"
  triggers: "linux-android-8.1.0_release"
  triggers: "linux-android-9.0.0_release"
  triggers: "linux-internal_release"
  triggers: "linux-jctf_release"
  triggers: "linux-run-on-as-app_release"
  triggers: "linux_release"
  triggers: "r8cf-linux-jctf_release"
  triggers: "windows_release"
}


job {
  id: "archive"
  acl_sets: "default"
  triggering_policy: {
    max_concurrent_invocations: 3
    max_batch_size: 1
  }
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "archive"
  }
}

job {
  id: "archive_release"
  acl_sets: "default"
  triggering_policy: {
    max_batch_size: 1
  }
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "archive_release"
  }
}

job {
  id: "linux"
  acl_sets: "default"
  triggering_policy: {
    max_concurrent_invocations: 3
  }
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "linux"
  }
}

job {
  id: "linux-altfe"
  acl_sets: "default"
  triggering_policy: {
    max_concurrent_invocations: 3
  }
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "linux-altfe"
  }
}

job {
  id: "linux-android-4.0.4"
  acl_sets: "default"
  triggering_policy: {
    max_concurrent_invocations: 3
  }
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "linux-android-4.0.4"
  }
}

job {
  id: "linux-android-4.0.4_release"
  acl_sets: "default"
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "linux-android-4.0.4_release"
  }
}

job {
  id: "linux-android-4.4.4"
  acl_sets: "default"
  triggering_policy: {
    max_concurrent_invocations: 2
  }
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "linux-android-4.4.4"
  }
}

job {
  id: "linux-android-4.4.4_release"
  acl_sets: "default"
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "linux-android-4.4.4_release"
  }
}

job {
  id: "linux-android-5.1.1"
  acl_sets: "default"
  triggering_policy: {
    max_concurrent_invocations: 2
  }
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "linux-android-5.1.1"
  }
}

job {
  id: "linux-android-5.1.1_release"
  acl_sets: "default"
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "linux-android-5.1.1_release"
  }
}

job {
  id: "linux-android-6.0.1"
  acl_sets: "default"
  triggering_policy: {
    max_concurrent_invocations: 3
  }
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "linux-android-6.0.1"
  }
}

job {
  id: "linux-android-6.0.1_release"
  acl_sets: "default"
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "linux-android-6.0.1_release"
  }
}

job {
  id: "linux-android-7.0.0"
  acl_sets: "default"
  triggering_policy: {
    max_concurrent_invocations: 2
  }
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "linux-android-7.0.0"
  }
}

job {
  id: "linux-android-7.0.0_release"
  acl_sets: "default"
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "linux-android-7.0.0_release"
  }
}

job {
  id: "linux-android-8.1.0"
  acl_sets: "default"
  triggering_policy: {
    max_concurrent_invocations: 2
  }
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "linux-android-8.1.0"
  }
}

job {
  id: "linux-android-8.1.0_release"
  acl_sets: "default"
  triggering_policy: {
    max_concurrent_invocations: 2
  }
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "linux-android-8.1.0_release"
  }
}


job {
  id: "linux-android-9.0.0"
  acl_sets: "default"
  triggering_policy: {
    max_concurrent_invocations: 2
  }
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "linux-android-9.0.0"
  }
}

job {
  id: "linux-android-9.0.0_release"
  acl_sets: "default"
  triggering_policy: {
    max_concurrent_invocations: 2
  }
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "linux-android-9.0.0_release"
  }
}

job {
  id: "linux-internal"
  acl_sets: "default"
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "linux-internal"
  }
}

job {
  id: "linux-internal_release"
  acl_sets: "default"
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "linux-internal_release"
  }
}

job {
  id: "linux-run-on-as-app"
  acl_sets: "default"
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "linux-run-on-as-app"
  }
}

job {
  id: "linux-run-on-as-app_release"
  acl_sets: "default"
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "linux-run-on-as-app_release"
  }
}


job {
  id: "linux-jctf"
  acl_sets: "default"
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "linux-jctf"
  }
}

job {
  id: "linux-jctf_release"
  acl_sets: "default"
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "linux-jctf_release"
  }
}

job {
  id: "linux_release"
  acl_sets: "default"
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "linux_release"
  }
}

job {
  id: "r8cf-linux-jctf"
  acl_sets: "default"
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "r8cf-linux-jctf"
  }
}

job {
  id: "r8cf-linux-jctf_release"
  acl_sets: "default"
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "r8cf-linux-jctf_release"
  }
}

job {
  id: "windows"
  triggering_policy: {
    max_concurrent_invocations: 3
  }
  acl_sets: "default"
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "windows"
  }
}

job {
  id: "windows_release"
  acl_sets: "default"
  triggering_policy: {
    max_concurrent_invocations: 3
  }
  buildbucket {
    server: "cr-buildbucket.appspot.com"
    bucket: "luci.r8.ci"
    builder: "windows_release"
  }
}

