[scheduler] Ignore bringup on release branches (#2156)
diff --git a/app_dart/lib/src/model/ci_yaml/ci_yaml.dart b/app_dart/lib/src/model/ci_yaml/ci_yaml.dart
index 7ddb23e..9c1e901 100644
--- a/app_dart/lib/src/model/ci_yaml/ci_yaml.dart
+++ b/app_dart/lib/src/model/ci_yaml/ci_yaml.dart
@@ -60,7 +60,13 @@
/// This shouldn't be confused for targets that have the property named dependency, which is used by the
/// flutter_deps recipe module on LUCI.
List<Target> getInitialTargets(List<Target> targets) {
- return targets.where((Target target) => target.value.dependencies.isEmpty).toList();
+ Iterable<Target> initialTargets = targets.where((Target target) => target.value.dependencies.isEmpty).toList();
+ if (branch != Config.defaultBranch(slug)) {
+ // Filter out bringup targets for release branches
+ initialTargets = initialTargets.where((Target target) => !target.value.bringup);
+ }
+
+ return initialTargets.toList();
}
Iterable<Target> get _targets => config.targets.map((pb.Target target) => Target(
diff --git a/app_dart/test/model/ci_yaml/ci_yaml_test.dart b/app_dart/test/model/ci_yaml/ci_yaml_test.dart
index b44ca21..a15a1ce 100644
--- a/app_dart/test/model/ci_yaml/ci_yaml_test.dart
+++ b/app_dart/test/model/ci_yaml/ci_yaml_test.dart
@@ -3,8 +3,13 @@
// found in the LICENSE file.
import 'package:cocoon_service/src/model/ci_yaml/ci_yaml.dart';
+import 'package:cocoon_service/src/model/ci_yaml/target.dart';
+import 'package:cocoon_service/protos.dart' as pb;
+import 'package:cocoon_service/src/service/config.dart';
import 'package:test/test.dart';
+import '../../src/service/fake_scheduler.dart';
+
void main() {
group('enabledBranchesMatchesCurrentBranch', () {
final List<EnabledBranchesRegexTest> tests = <EnabledBranchesRegexTest>[
@@ -48,6 +53,55 @@
validateUnPinnedVersion('[{"dependency": "another_sdk"}]');
validateUnPinnedVersion('[{"dependency": "yet_another_sdk", "version": "latest"}]');
});
+
+ group('initialTargets', () {
+ test('targets without deps', () {
+ final CiYaml ciYaml = exampleConfig;
+ final List<Target> initialTargets = ciYaml.getInitialTargets(ciYaml.postsubmitTargets);
+ final List<String> initialTargetNames = initialTargets.map((Target target) => target.value.name).toList();
+ expect(
+ initialTargetNames,
+ containsAll(
+ <String>[
+ 'Linux A',
+ 'Mac A',
+ 'Windows A',
+ ],
+ ),
+ );
+ });
+
+ test('filter bringup targets on release branches', () {
+ final CiYaml ciYaml = CiYaml(
+ slug: Config.flutterSlug,
+ branch: Config.defaultBranch(Config.flutterSlug),
+ config: pb.SchedulerConfig(
+ enabledBranches: <String>[
+ Config.defaultBranch(Config.flutterSlug),
+ ],
+ targets: <pb.Target>[
+ pb.Target(
+ name: 'Linux A',
+ ),
+ pb.Target(
+ name: 'Mac A', // Should be ignored on release branches
+ bringup: true,
+ ),
+ ],
+ ),
+ );
+ final List<Target> initialTargets = ciYaml.getInitialTargets(ciYaml.postsubmitTargets);
+ final List<String> initialTargetNames = initialTargets.map((Target target) => target.value.name).toList();
+ expect(
+ initialTargetNames,
+ containsAll(
+ <String>[
+ 'Linux A',
+ ],
+ ),
+ );
+ });
+ });
}
/// Wrapper class for table driven design of [CiYaml.enabledBranchesMatchesCurrentBranch].
diff --git a/app_dart/test/src/service/fake_scheduler.dart b/app_dart/test/src/service/fake_scheduler.dart
index 96a2d37..30c6c63 100644
--- a/app_dart/test/src/service/fake_scheduler.dart
+++ b/app_dart/test/src/service/fake_scheduler.dart
@@ -8,6 +8,7 @@
import 'package:cocoon_service/src/model/proto/protos.dart' as pb;
import 'package:cocoon_service/src/service/buildbucket.dart';
import 'package:cocoon_service/src/service/cache_service.dart';
+import 'package:cocoon_service/src/service/config.dart';
import 'package:cocoon_service/src/service/github_checks_service.dart';
import 'package:cocoon_service/src/service/luci_build_service.dart';
import 'package:cocoon_service/src/service/scheduler.dart';
@@ -55,10 +56,12 @@
}
final CiYaml emptyConfig = CiYaml(
- branch: 'master',
- slug: RepositorySlug('flutter', 'flutter'),
+ slug: Config.flutterSlug,
+ branch: Config.defaultBranch(Config.flutterSlug),
config: pb.SchedulerConfig(
- enabledBranches: <String>['master'],
+ enabledBranches: <String>[
+ Config.defaultBranch(Config.flutterSlug),
+ ],
targets: <pb.Target>[
pb.Target(
name: 'Linux A',
@@ -69,10 +72,10 @@
);
CiYaml exampleConfig = CiYaml(
- slug: RepositorySlug('flutter', 'flutter'),
- branch: 'master',
+ slug: Config.flutterSlug,
+ branch: Config.defaultBranch(Config.flutterSlug),
config: pb.SchedulerConfig(enabledBranches: <String>[
- 'master'
+ Config.defaultBranch(Config.flutterSlug),
], targets: <pb.Target>[
pb.Target(
name: 'Linux A',
@@ -97,10 +100,10 @@
);
CiYaml batchPolicyConfig = CiYaml(
- slug: RepositorySlug('flutter', 'flutter'),
- branch: 'master',
+ slug: Config.flutterSlug,
+ branch: Config.defaultBranch(Config.flutterSlug),
config: pb.SchedulerConfig(enabledBranches: <String>[
- 'master'
+ Config.defaultBranch(Config.flutterSlug),
], targets: <pb.Target>[
pb.Target(
name: 'Linux_android A',