[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',