Do not immediately unlock `Flutter Presubmits` on non-fusion repos for unified check run flow (#5058)
Modified `triggerPresubmitTargets` event handler logic to do not immediately unlock `MergeQueueGuard` for non-fusion repositories if the unified check run flow is enabled
fix: https://github.com/flutter/flutter/issues/187458
diff --git a/app_dart/lib/src/service/scheduler.dart b/app_dart/lib/src/service/scheduler.dart
index f958fd0..4b26b0c 100644
--- a/app_dart/lib/src/service/scheduler.dart
+++ b/app_dart/lib/src/service/scheduler.dart
@@ -366,7 +366,7 @@
do {
try {
final sha = pullRequest.head!.sha!;
- if (!isFusion) {
+ if (!isFusion && !isUnifiedCheckRun) {
unlockMergeGroup = true;
}
diff --git a/app_dart/test/service/scheduler_test.dart b/app_dart/test/service/scheduler_test.dart
index 6a5324f..c1a5b50 100644
--- a/app_dart/test/service/scheduler_test.dart
+++ b/app_dart/test/service/scheduler_test.dart
@@ -2813,6 +2813,26 @@
expect(guard.stage, CiStage.genericTests);
expect(guard.commitSha, pr.head!.sha);
expect(guard.jobs['Linux A'], TaskStatus.waitingForBackfill);
+
+ // Verify that the "Flutter Presubmits" check run is not immediately succeeded.
+ verifyNever(
+ mockGithubChecksUtil.updateCheckRun(
+ any,
+ any,
+ argThat(
+ isA<CheckRun>().having(
+ (c) => c.name,
+ 'name',
+ Config.kFlutterPresubmitsName,
+ ),
+ ),
+ status: CheckRunStatus.completed,
+ conclusion: CheckRunConclusion.success,
+ output: anyNamed('output'),
+ actions: anyNamed('actions'),
+ detailsUrl: anyNamed('detailsUrl'),
+ ),
+ );
},
);