# 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 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: "prod"
    name: "Linux Android 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: "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 Fuchsia arm64 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 Host 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: "Linux License"
    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 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: "prod"
    name: "Linux 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 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 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 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: "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 Host 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 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 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: "Mac iOS 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 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 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 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 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 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 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: "prod"
    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: "prod"
    name: "Windows windows_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: "Windows 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: "staging"
    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: "staging"
    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: "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 Android 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: "staging"
    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: "staging"
    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: "staging"
    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: "staging"
    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: "staging"
    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: "staging"
    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: "staging"
    name: "Linux Fuchsia arm64 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: "staging"
    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: "staging"
    name: "Linux Host 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: "staging"
    name: "Linux License"
    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 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: "staging"
    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: "staging"
    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: "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_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: "Linux 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: "staging"
    name: "Linux 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: "staging"
    name: "Linux 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: "staging"
    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: "staging"
    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: "staging"
    name: "Mac Host 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: "staging"
    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: "staging"
    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: "staging"
    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: "staging"
    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: "staging"
    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: "staging"
    name: "Mac iOS 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: "staging"
    name: "Mac 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: "staging"
    name: "Mac 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: "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
    failed_step_regexp: "(^build|.*test:|.*step is flaky).*"
    email {
      recipients: "flutter-engine@grotations.appspotmail.com"
    }
  }
  builders {
    bucket: "staging"
    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: "staging"
    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: "staging"
    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: "staging"
    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: "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_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: "staging"
    name: "Windows windows_host_engine"
    repository: "https://flutter.googlesource.com/mirrors/engine"
  }
}
