# Auto-generated by lucicfg.
# Do not modify manually.
#
# For the schema of this file, see ProjectConfig message:
#   https://luci-config.appspot.com/schemas/projects:luci-notify.cfg

notifiers {
  notifications {
    on_new_status: FAILURE
    on_new_status: INFRA_FAILURE
    email {
      recipients: "art-team+chromium-buildbot@google.com"
    }
  }
  builders {
    bucket: "ci"
    name: "angler-armv7-debug"
  }
}
notifiers {
  notifications {
    on_new_status: FAILURE
    on_new_status: INFRA_FAILURE
    email {
      recipients: "art-team+chromium-buildbot@google.com"
    }
  }
  builders {
    bucket: "ci"
    name: "angler-armv7-ndebug"
  }
}
notifiers {
  notifications {
    on_new_status: FAILURE
    on_new_status: INFRA_FAILURE
    email {
      recipients: "art-team+chromium-buildbot@google.com"
    }
  }
  builders {
    bucket: "ci"
    name: "angler-armv7-non-gen-cc"
  }
}
notifiers {
  notifications {
    on_new_status: FAILURE
    on_new_status: INFRA_FAILURE
    email {
      recipients: "art-team+chromium-buildbot@google.com"
    }
  }
  builders {
    bucket: "ci"
    name: "angler-armv8-debug"
  }
}
notifiers {
  notifications {
    on_new_status: FAILURE
    on_new_status: INFRA_FAILURE
    email {
      recipients: "art-team+chromium-buildbot@google.com"
    }
  }
  builders {
    bucket: "ci"
    name: "angler-armv8-ndebug"
  }
}
notifiers {
  notifications {
    on_new_status: FAILURE
    on_new_status: INFRA_FAILURE
    email {
      recipients: "art-team+chromium-buildbot@google.com"
    }
  }
  builders {
    bucket: "ci"
    name: "angler-armv8-non-gen-cc"
  }
}
notifiers {
  notifications {
    on_new_status: FAILURE
    on_new_status: INFRA_FAILURE
    email {
      recipients: "art-team+chromium-buildbot@google.com"
    }
  }
  builders {
    bucket: "ci"
    name: "bullhead-armv7-gcstress-ndebug"
  }
}
notifiers {
  notifications {
    on_new_status: FAILURE
    on_new_status: INFRA_FAILURE
    email {
      recipients: "art-team+chromium-buildbot@google.com"
    }
  }
  builders {
    bucket: "ci"
    name: "bullhead-armv8-gcstress-debug"
  }
}
notifiers {
  notifications {
    on_new_status: FAILURE
    on_new_status: INFRA_FAILURE
    email {
      recipients: "art-team+chromium-buildbot@google.com"
    }
  }
  builders {
    bucket: "ci"
    name: "bullhead-armv8-gcstress-ndebug"
  }
}
notifiers {
  notifications {
    on_new_status: FAILURE
    on_new_status: INFRA_FAILURE
    email {
      recipients: "art-team+chromium-buildbot@google.com"
    }
  }
  builders {
    bucket: "ci"
    name: "host-x86-cms"
  }
}
notifiers {
  notifications {
    on_new_status: FAILURE
    on_new_status: INFRA_FAILURE
    email {
      recipients: "art-team+chromium-buildbot@google.com"
    }
  }
  builders {
    bucket: "ci"
    name: "host-x86-debug"
  }
}
notifiers {
  notifications {
    on_new_status: FAILURE
    on_new_status: INFRA_FAILURE
    email {
      recipients: "art-team+chromium-buildbot@google.com"
    }
  }
  builders {
    bucket: "ci"
    name: "host-x86-gcstress-debug"
  }
}
notifiers {
  notifications {
    on_new_status: FAILURE
    on_new_status: INFRA_FAILURE
    email {
      recipients: "art-team+chromium-buildbot@google.com"
    }
  }
  builders {
    bucket: "ci"
    name: "host-x86-ndebug"
  }
}
notifiers {
  notifications {
    on_new_status: FAILURE
    on_new_status: INFRA_FAILURE
    email {
      recipients: "art-team+chromium-buildbot@google.com"
    }
  }
  builders {
    bucket: "ci"
    name: "host-x86-poison-debug"
  }
}
notifiers {
  notifications {
    on_new_status: FAILURE
    on_new_status: INFRA_FAILURE
    email {
      recipients: "art-team+chromium-buildbot@google.com"
    }
  }
  builders {
    bucket: "ci"
    name: "host-x86_64-cdex-fast"
  }
}
notifiers {
  notifications {
    on_new_status: FAILURE
    on_new_status: INFRA_FAILURE
    email {
      recipients: "art-team+chromium-buildbot@google.com"
    }
  }
  builders {
    bucket: "ci"
    name: "host-x86_64-cms"
  }
}
notifiers {
  notifications {
    on_new_status: FAILURE
    on_new_status: INFRA_FAILURE
    email {
      recipients: "art-team+chromium-buildbot@google.com"
    }
  }
  builders {
    bucket: "ci"
    name: "host-x86_64-debug"
  }
}
notifiers {
  notifications {
    on_new_status: FAILURE
    on_new_status: INFRA_FAILURE
    email {
      recipients: "art-team+chromium-buildbot@google.com"
    }
  }
  builders {
    bucket: "ci"
    name: "host-x86_64-ndebug"
  }
}
notifiers {
  notifications {
    on_new_status: FAILURE
    on_new_status: INFRA_FAILURE
    email {
      recipients: "art-team+chromium-buildbot@google.com"
    }
  }
  builders {
    bucket: "ci"
    name: "host-x86_64-non-gen-cc"
  }
}
notifiers {
  notifications {
    on_new_status: FAILURE
    on_new_status: INFRA_FAILURE
    email {
      recipients: "art-team+chromium-buildbot@google.com"
    }
  }
  builders {
    bucket: "ci"
    name: "host-x86_64-poison-debug"
  }
}
notifiers {
  notifications {
    on_new_status: FAILURE
    on_new_status: INFRA_FAILURE
    email {
      recipients: "art-team+chromium-buildbot@google.com"
    }
  }
  builders {
    bucket: "ci"
    name: "qemu-riscv64-ndebug"
  }
}
notifiers {
  notifications {
    on_new_status: FAILURE
    on_new_status: INFRA_FAILURE
    email {
      recipients: "art-team+chromium-buildbot@google.com"
    }
  }
  builders {
    bucket: "ci"
    name: "qemu-riscv64-ndebug-build_only"
  }
}
notifiers {
  notifications {
    on_new_status: FAILURE
    on_new_status: INFRA_FAILURE
    email {
      recipients: "art-team+chromium-buildbot@google.com"
    }
  }
  builders {
    bucket: "ci"
    name: "walleye-armv7-poison-debug"
  }
}
notifiers {
  notifications {
    on_new_status: FAILURE
    on_new_status: INFRA_FAILURE
    email {
      recipients: "art-team+chromium-buildbot@google.com"
    }
  }
  builders {
    bucket: "ci"
    name: "walleye-armv8-poison-debug"
  }
}
notifiers {
  notifications {
    on_new_status: FAILURE
    on_new_status: INFRA_FAILURE
    email {
      recipients: "art-team+chromium-buildbot@google.com"
    }
  }
  builders {
    bucket: "ci"
    name: "walleye-armv8-poison-ndebug"
  }
}
