# Copyright 2017 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# Defines cron jobs on luci-scheduler-dev.appspot.com.
#
# For schema of this file and documentation see the ProjectConfig message in
# https://github.com/luci/luci-go/blob/master/scheduler/appengine/messages/cron.proto
#
# File organization:
# - acl_sets
# - triggers sorted by id
# - jobs sorted by id

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

trigger {
  id: "garnet-gitiles-trigger"
  acl_sets: "default"
  gitiles: {
    repo: "https://fuchsia.googlesource.com/garnet"
    refs: "refs/heads/master"
  }
  triggers: "garnet-arm64-debug"
  triggers: "garnet-x64-debug"
  triggers: "garnet-x64-debug-netboot"
  triggers: "garnet-x64-debug-perf"
}

trigger {
  id: "garnet-roller-trigger"
  acl_sets: "default"
  schedule: "with 30m interval"
  gitiles: {
    repo: "https://fuchsia.googlesource.com/garnet"
    refs: "refs/heads/master"
  }
  triggers: "garnet-roller"
}

trigger {
  id: "peridot-gitiles-trigger"
  acl_sets: "default"
  gitiles: {
    repo: "https://fuchsia.googlesource.com/peridot"
    refs: "refs/heads/master"
  }
  triggers: "peridot-arm64-debug"
  triggers: "peridot-x64-debug"
}

trigger {
  id: "topaz-gitiles-trigger"
  acl_sets: "default"
  gitiles: {
    repo: "https://fuchsia.googlesource.com/topaz"
    refs: "refs/heads/master"
  }
  triggers: "topaz-arm64-debug"
  triggers: "topaz-x64-debug"
}

trigger {
  id: "zircon-gitiles-trigger"
  acl_sets: "default"
  gitiles: {
    repo: "https://fuchsia.googlesource.com/zircon"
    refs: "refs/heads/master"
  }
  triggers: "zircon-arm64-clang-qemu_kvm"
  triggers: "zircon-x64-clang-qemu_kvm"
  triggers: "zircon-x64-gcc-qemu_kvm"
}

job {
  id: "garnet-arm64-debug"
  acl_sets: "default"
  schedule: "triggered"
  buildbucket: {
    server: "cr-buildbucket-dev.appspot.com"
    bucket: "luci.fuchsia.ci"
    builder: "garnet-arm64-debug"
  }
}

job {
  id: "garnet-roller"
  acl_sets: "default"
  schedule: "triggered"
  buildbucket: {
    server: "cr-buildbucket-dev.appspot.com"
    bucket: "luci.fuchsia.ci"
    builder: "garnet-roller"
  }
}

job {
  id: "garnet-x64-debug-perf"
  acl_sets: "default"
  schedule: "triggered"
  buildbucket: {
    server: "cr-buildbucket-dev.appspot.com"
    bucket: "luci.fuchsia.ci"
    builder: "garnet-x64-debug-perf"
  }
}

job {
  id: "garnet-x64-debug"
  acl_sets: "default"
  schedule: "triggered"
  buildbucket: {
    server: "cr-buildbucket-dev.appspot.com"
    bucket: "luci.fuchsia.ci"
    builder: "garnet-x64-debug"
  }
}

# TODO(INTK-138): Remove and integrate the functionality into a more
# standard set of jobs with the corresponding builders once the issue
# has been resolved.
job {
  id: "garnet-x64-debug-netboot"
  acl_sets: "default"
  schedule: "triggered"
  buildbucket: {
    server: "cr-buildbucket-dev.appspot.com"
    bucket: "luci.fuchsia.ci"
    builder: "garnet-x64-debug-netboot"
  }
}

job {
  id: "peridot-arm64-debug"
  acl_sets: "default"
  schedule: "triggered"
  buildbucket: {
    server: "cr-buildbucket-dev.appspot.com"
    bucket: "luci.fuchsia.ci"
    builder: "peridot-arm64-debug"
  }
}

job {
  id: "peridot-x64-debug"
  acl_sets: "default"
  schedule: "triggered"
  buildbucket: {
    server: "cr-buildbucket-dev.appspot.com"
    bucket: "luci.fuchsia.ci"
    builder: "peridot-x64-debug"
  }
}

job {
  id: "topaz-arm64-debug"
  acl_sets: "default"
  schedule: "triggered"
  buildbucket: {
    server: "cr-buildbucket-dev.appspot.com"
    bucket: "luci.fuchsia.ci"
    builder: "topaz-arm64-debug"
  }
}

job {
  id: "topaz-x64-debug"
  acl_sets: "default"
  schedule: "triggered"
  buildbucket: {
    server: "cr-buildbucket-dev.appspot.com"
    bucket: "luci.fuchsia.ci"
    builder: "topaz-x64-debug"
  }
}

job {
  id: "zircon-arm64-clang-qemu_kvm"
  acl_sets: "default"
  schedule: "triggered"
  buildbucket: {
    server: "cr-buildbucket-dev.appspot.com"
    bucket: "luci.fuchsia.ci"
    builder: "zircon-arm64-clang-qemu_kvm"
  }
}

job {
  id: "zircon-x64-clang-qemu_kvm"
  acl_sets: "default"
  schedule: "triggered"
  buildbucket: {
    server: "cr-buildbucket-dev.appspot.com"
    bucket: "luci.fuchsia.ci"
    builder: "zircon-x64-clang-qemu_kvm"
  }
}

job {
  id: "zircon-x64-gcc-qemu_kvm"
  acl_sets: "default"
  schedule: "triggered"
  buildbucket: {
    server: "cr-buildbucket-dev.appspot.com"
    bucket: "luci.fuchsia.ci"
    builder: "zircon-x64-gcc-qemu_kvm"
  }
}
