skip bringup true targets (#2303)
diff --git a/app_dart/lib/src/service/luci_build_service.dart b/app_dart/lib/src/service/luci_build_service.dart
index d018c32..4b59af7 100644
--- a/app_dart/lib/src/service/luci_build_service.dart
+++ b/app_dart/lib/src/service/luci_build_service.dart
@@ -579,13 +579,13 @@
);
}
- /// Creates postsubmit check runs for supported repositories.
+ /// Creates postsubmit check runs for prod targets in supported repositories.
Future<void> createPostsubmitCheckRun(
Commit commit,
Target target,
Map<String, dynamic> rawUserData,
) async {
- if (!config.githubPostsubmitSupportedRepo(commit.slug)) {
+ if (!config.githubPostsubmitSupportedRepo(commit.slug) || target.value.bringup) {
return;
}
final github.CheckRun checkRun = await githubChecksUtil.createCheckRun(
diff --git a/app_dart/test/service/luci_build_service_test.dart b/app_dart/test/service/luci_build_service_test.dart
index 666f844..f3a723a 100644
--- a/app_dart/test/service/luci_build_service_test.dart
+++ b/app_dart/test/service/luci_build_service_test.dart
@@ -533,6 +533,49 @@
});
});
+ test('do not create postsubmit checkrun for bringup: true target', () async {
+ when(mockGithubChecksUtil.createCheckRun(any, any, any, any))
+ .thenAnswer((_) async => generateCheckRun(1, name: 'Linux 1'));
+ final Commit commit = generateCommit(0, repo: 'packages');
+ when(mockBuildBucketClient.listBuilders(any)).thenAnswer((_) async {
+ return const ListBuildersResponse(
+ builders: [
+ BuilderItem(id: BuilderId(bucket: 'prod', project: 'flutter', builder: 'Linux 1')),
+ ],
+ );
+ });
+ final Tuple<Target, Task, int> toBeScheduled = Tuple<Target, Task, int>(
+ generateTarget(
+ 1,
+ properties: <String, String>{
+ 'os': 'debian-10.12',
+ },
+ bringup: true,
+ slug: RepositorySlug('flutter', 'packages'),
+ ),
+ generateTask(1),
+ LuciBuildService.kDefaultPriority,
+ );
+ await service.schedulePostsubmitBuilds(
+ commit: commit,
+ toBeScheduled: <Tuple<Target, Task, int>>[
+ toBeScheduled,
+ ],
+ );
+ // Only one batch request should be published
+ expect(pubsub.messages.length, 1);
+ final BatchRequest request = pubsub.messages.first as BatchRequest;
+ expect(request.requests?.single.scheduleBuild, isNotNull);
+ final ScheduleBuildRequest scheduleBuild = request.requests!.single.scheduleBuild!;
+ expect(scheduleBuild.builderId.bucket, 'staging');
+ expect(scheduleBuild.builderId.builder, 'Linux 1');
+ expect(scheduleBuild.notify?.pubsubTopic, 'projects/flutter-dashboard/topics/luci-builds-prod');
+ final Map<String, dynamic> userData =
+ jsonDecode(String.fromCharCodes(base64Decode(scheduleBuild.notify!.userData!))) as Map<String, dynamic>;
+ // No check run related data.
+ expect(userData, <String, dynamic>{'commit_key': 'flutter/flutter/master/1', 'task_key': '1'});
+ });
+
test('Skip non-existing builder', () async {
final Commit commit = generateCommit(0);
when(mockBuildBucketClient.listBuilders(any)).thenAnswer((_) async {
diff --git a/app_dart/test/src/utilities/entity_generators.dart b/app_dart/test/src/utilities/entity_generators.dart
index 07b74fd..705fd85 100644
--- a/app_dart/test/src/utilities/entity_generators.dart
+++ b/app_dart/test/src/utilities/entity_generators.dart
@@ -100,6 +100,7 @@
Map<String, String>? properties,
Map<String, String>? dimensions,
List<String>? runIf,
+ bool? bringup,
github.RepositorySlug? slug,
pb.SchedulerSystem? schedulerSystem,
}) {
@@ -122,6 +123,7 @@
properties: properties,
dimensions: dimensions,
runIf: runIf ?? <String>[],
+ bringup: bringup ?? false,
scheduler: schedulerSystem ?? pb.SchedulerSystem.cocoon,
),
);