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

notifiers {
  notifications {
    on_occurrence: FAILURE
    on_occurrence: INFRA_FAILURE
    email {
      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
    }
  }
  builders {
    bucket: "ci"
    name: "cmake-linux-clang-dbg-x64"
    repository: "https://dawn.googlesource.com/dawn"
  }
}
notifiers {
  notifications {
    on_occurrence: FAILURE
    on_occurrence: INFRA_FAILURE
    email {
      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
    }
  }
  builders {
    bucket: "ci"
    name: "cmake-linux-clang-dbg-x64-asan"
    repository: "https://dawn.googlesource.com/dawn"
  }
}
notifiers {
  notifications {
    on_occurrence: FAILURE
    on_occurrence: INFRA_FAILURE
    email {
      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
    }
  }
  builders {
    bucket: "ci"
    name: "cmake-linux-clang-dbg-x64-ubsan"
    repository: "https://dawn.googlesource.com/dawn"
  }
}
notifiers {
  notifications {
    on_occurrence: FAILURE
    on_occurrence: INFRA_FAILURE
    email {
      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
    }
  }
  builders {
    bucket: "ci"
    name: "cmake-linux-clang-rel-x64"
    repository: "https://dawn.googlesource.com/dawn"
  }
}
notifiers {
  notifications {
    on_occurrence: FAILURE
    on_occurrence: INFRA_FAILURE
    email {
      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
    }
  }
  builders {
    bucket: "ci"
    name: "cmake-linux-clang-rel-x64-asan"
    repository: "https://dawn.googlesource.com/dawn"
  }
}
notifiers {
  notifications {
    on_occurrence: FAILURE
    on_occurrence: INFRA_FAILURE
    email {
      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
    }
  }
  builders {
    bucket: "ci"
    name: "cmake-linux-clang-rel-x64-ubsan"
    repository: "https://dawn.googlesource.com/dawn"
  }
}
notifiers {
  notifications {
    on_occurrence: FAILURE
    on_occurrence: INFRA_FAILURE
    email {
      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
    }
  }
  builders {
    bucket: "ci"
    name: "cmake-mac-dbg"
    repository: "https://dawn.googlesource.com/dawn"
  }
}
notifiers {
  notifications {
    on_occurrence: FAILURE
    on_occurrence: INFRA_FAILURE
    email {
      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
    }
  }
  builders {
    bucket: "ci"
    name: "cmake-mac-rel"
    repository: "https://dawn.googlesource.com/dawn"
  }
}
notifiers {
  notifications {
    on_occurrence: FAILURE
    on_occurrence: INFRA_FAILURE
    email {
      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
    }
  }
  builders {
    bucket: "ci"
    name: "cmake-win-msvc-dbg-x64"
    repository: "https://dawn.googlesource.com/dawn"
  }
}
notifiers {
  notifications {
    on_occurrence: FAILURE
    on_occurrence: INFRA_FAILURE
    email {
      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
    }
  }
  builders {
    bucket: "ci"
    name: "cmake-win-msvc-rel-x64"
    repository: "https://dawn.googlesource.com/dawn"
  }
}
notifiers {
  notifications {
    on_occurrence: FAILURE
    on_occurrence: INFRA_FAILURE
    email {
      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
    }
  }
  builders {
    bucket: "ci"
    name: "cron-linux-clang-rel-x64"
  }
}
notifiers {
  notifications {
    on_occurrence: FAILURE
    on_occurrence: INFRA_FAILURE
    email {
      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
    }
  }
  builders {
    bucket: "ci"
    name: "cts-roller"
  }
}
notifiers {
  notifications {
    on_occurrence: FAILURE
    on_occurrence: INFRA_FAILURE
    email {
      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
    }
  }
  builders {
    bucket: "ci"
    name: "linux-clang-dbg-x64"
    repository: "https://dawn.googlesource.com/dawn"
  }
}
notifiers {
  notifications {
    on_occurrence: FAILURE
    on_occurrence: INFRA_FAILURE
    email {
      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
    }
  }
  builders {
    bucket: "ci"
    name: "linux-clang-dbg-x86"
    repository: "https://dawn.googlesource.com/dawn"
  }
}
notifiers {
  notifications {
    on_occurrence: FAILURE
    on_occurrence: INFRA_FAILURE
    email {
      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
    }
  }
  builders {
    bucket: "ci"
    name: "linux-clang-rel-x64"
    repository: "https://dawn.googlesource.com/dawn"
  }
}
notifiers {
  notifications {
    on_occurrence: FAILURE
    on_occurrence: INFRA_FAILURE
    email {
      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
    }
  }
  builders {
    bucket: "ci"
    name: "linux-clang-rel-x86"
    repository: "https://dawn.googlesource.com/dawn"
  }
}
notifiers {
  notifications {
    on_occurrence: FAILURE
    on_occurrence: INFRA_FAILURE
    email {
      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
    }
  }
  builders {
    bucket: "ci"
    name: "mac-dbg"
    repository: "https://dawn.googlesource.com/dawn"
  }
}
notifiers {
  notifications {
    on_occurrence: FAILURE
    on_occurrence: INFRA_FAILURE
    email {
      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
    }
  }
  builders {
    bucket: "ci"
    name: "mac-rel"
    repository: "https://dawn.googlesource.com/dawn"
  }
}
notifiers {
  notifications {
    on_occurrence: FAILURE
    on_occurrence: INFRA_FAILURE
    email {
      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
    }
  }
  builders {
    bucket: "ci"
    name: "win-clang-dbg-x64"
    repository: "https://dawn.googlesource.com/dawn"
  }
}
notifiers {
  notifications {
    on_occurrence: FAILURE
    on_occurrence: INFRA_FAILURE
    email {
      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
    }
  }
  builders {
    bucket: "ci"
    name: "win-clang-dbg-x86"
    repository: "https://dawn.googlesource.com/dawn"
  }
}
notifiers {
  notifications {
    on_occurrence: FAILURE
    on_occurrence: INFRA_FAILURE
    email {
      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
    }
  }
  builders {
    bucket: "ci"
    name: "win-clang-rel-x64"
    repository: "https://dawn.googlesource.com/dawn"
  }
}
notifiers {
  notifications {
    on_occurrence: FAILURE
    on_occurrence: INFRA_FAILURE
    email {
      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
    }
  }
  builders {
    bucket: "ci"
    name: "win-clang-rel-x86"
    repository: "https://dawn.googlesource.com/dawn"
  }
}
notifiers {
  notifications {
    on_occurrence: FAILURE
    on_occurrence: INFRA_FAILURE
    email {
      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
    }
  }
  builders {
    bucket: "ci"
    name: "win-msvc-dbg-x64"
    repository: "https://dawn.googlesource.com/dawn"
  }
}
notifiers {
  notifications {
    on_occurrence: FAILURE
    on_occurrence: INFRA_FAILURE
    email {
      rotation_urls: "https://chrome-ops-rotation-proxy.appspot.com/current/grotation:webgpu-gardener"
    }
  }
  builders {
    bucket: "ci"
    name: "win-msvc-rel-x64"
    repository: "https://dawn.googlesource.com/dawn"
  }
}
