# 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_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "prod"
    name: "Linux Android AOT Engine"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "prod"
    name: "Linux Android Debug Engine"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "prod"
    name: "Linux Arm Host Engine"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "prod"
    name: "Linux Benchmarks"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "prod"
    name: "Linux Benchmarks (no-upload)"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "prod"
    name: "Linux Framework Smoke Tests"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "prod"
    name: "Linux Fuchsia"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "prod"
    name: "Linux Fuchsia FEMU"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "prod"
    name: "Linux Host Engine"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "prod"
    name: "Linux Unopt"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "prod"
    name: "Linux Web Engine"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "prod"
    name: "Linux Web Framework tests"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "prod"
    name: "Linux clang-tidy"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "prod"
    name: "Mac Android AOT Engine"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "prod"
    name: "Mac Host Engine"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "prod"
    name: "Mac Unopt"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "prod"
    name: "Mac Web Engine"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "prod"
    name: "Mac clang-tidy"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "prod"
    name: "Mac iOS Engine"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "prod"
    name: "Mac iOS Engine Profile"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "prod"
    name: "Mac iOS Engine Release"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "prod"
    name: "Windows Android AOT Engine"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "prod"
    name: "Windows Host Engine"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "prod"
    name: "Windows UWP Engine"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "prod"
    name: "Windows Unopt"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "prod"
    name: "Windows Web Engine"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "staging"
    name: "Linux Android Emulator Tests"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "staging"
    name: "Linux ci_yaml engine roller"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "staging"
    name: "Linux linux_host_engine"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "staging"
    name: "Linux_android flutter_gallery__transition_perf"
    repository: "https://chromium.googlesource.com/external/github.com/flutter/flutter"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "staging"
    name: "Linux_android flutter_gallery__transition_perf_e2e"
    repository: "https://chromium.googlesource.com/external/github.com/flutter/flutter"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "staging"
    name: "Linux_android flutter_gallery__transition_perf_hybrid"
    repository: "https://chromium.googlesource.com/external/github.com/flutter/flutter"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "staging"
    name: "Linux_android flutter_gallery__transition_perf_with_semantics"
    repository: "https://chromium.googlesource.com/external/github.com/flutter/flutter"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "staging"
    name: "Linux_android flutter_gallery_sksl_warmup__transition_perf"
    repository: "https://chromium.googlesource.com/external/github.com/flutter/flutter"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "staging"
    name: "Linux_android flutter_gallery_sksl_warmup__transition_perf_e2e"
    repository: "https://chromium.googlesource.com/external/github.com/flutter/flutter"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "staging"
    name: "Mac mac_ios_engine"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "staging"
    name: "Mac mac_ios_engine_profile"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "staging"
    name: "Mac mac_ios_engine_release"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "staging"
    name: "Mac_ios flutter_gallery__transition_perf_e2e_ios"
    repository: "https://chromium.googlesource.com/external/github.com/flutter/flutter"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "staging"
    name: "Mac_ios flutter_gallery_ios__transition_perf"
    repository: "https://chromium.googlesource.com/external/github.com/flutter/flutter"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "staging"
    name: "Mac_ios flutter_gallery_ios_sksl_warmup__transition_perf"
    repository: "https://chromium.googlesource.com/external/github.com/flutter/flutter"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "staging"
    name: "Windows windows_android_aot_engine"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
notifiers {
  notifications {
    on_occurrence: INFRA_FAILURE
    on_occurrence: FAILURE
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "staging"
    name: "Windows windows_host_engine"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
