Run the protoc command (#2302)

* Run the protoc command

* Dart format

* Fix dart format

* Add proto generation to dart_test_runner

* Add proto package, update command to correct path

* Add protocol-compiler through apt-get

* Remove sudo

* Comment out proto generated code check, add a todo

* Fix TODO format

* Update TODO
diff --git a/app_dart/lib/src/model/proto/internal/build_status_response.pb.dart b/app_dart/lib/src/model/proto/internal/build_status_response.pb.dart
index 3a6f757..712de97 100644
--- a/app_dart/lib/src/model/proto/internal/build_status_response.pb.dart
+++ b/app_dart/lib/src/model/proto/internal/build_status_response.pb.dart
@@ -3,7 +3,7 @@
 //  source: lib/src/model/proto/internal/build_status_response.proto
 //
 // @dart = 2.12
-// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields
+// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name
 
 import 'dart:core' as $core;
 
diff --git a/app_dart/lib/src/model/proto/internal/build_status_response.pbenum.dart b/app_dart/lib/src/model/proto/internal/build_status_response.pbenum.dart
index 4c23353..7663ad3 100644
--- a/app_dart/lib/src/model/proto/internal/build_status_response.pbenum.dart
+++ b/app_dart/lib/src/model/proto/internal/build_status_response.pbenum.dart
@@ -3,7 +3,7 @@
 //  source: lib/src/model/proto/internal/build_status_response.proto
 //
 // @dart = 2.12
-// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields
+// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name
 
 // ignore_for_file: UNDEFINED_SHOWN_NAME
 import 'dart:core' as $core;
@@ -11,9 +11,9 @@
 
 class EnumBuildStatus extends $pb.ProtobufEnum {
   static const EnumBuildStatus success =
-      EnumBuildStatus._(1, $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'success');
+      EnumBuildStatus._(1, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'success');
   static const EnumBuildStatus failure =
-      EnumBuildStatus._(2, $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'failure');
+      EnumBuildStatus._(2, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'failure');
 
   static const $core.List<EnumBuildStatus> values = <EnumBuildStatus>[
     success,
diff --git a/app_dart/lib/src/model/proto/internal/build_status_response.pbjson.dart b/app_dart/lib/src/model/proto/internal/build_status_response.pbjson.dart
new file mode 100644
index 0000000..21a68a9
--- /dev/null
+++ b/app_dart/lib/src/model/proto/internal/build_status_response.pbjson.dart
@@ -0,0 +1,35 @@
+///
+//  Generated code. Do not modify.
+//  source: lib/src/model/proto/internal/build_status_response.proto
+//
+// @dart = 2.12
+// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,deprecated_member_use_from_same_package,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name
+
+import 'dart:core' as $core;
+import 'dart:convert' as $convert;
+import 'dart:typed_data' as $typed_data;
+
+@$core.Deprecated('Use enumBuildStatusDescriptor instead')
+const EnumBuildStatus$json = const {
+  '1': 'EnumBuildStatus',
+  '2': const [
+    const {'1': 'success', '2': 1},
+    const {'1': 'failure', '2': 2},
+  ],
+};
+
+/// Descriptor for `EnumBuildStatus`. Decode as a `google.protobuf.EnumDescriptorProto`.
+final $typed_data.Uint8List enumBuildStatusDescriptor =
+    $convert.base64Decode('Cg9FbnVtQnVpbGRTdGF0dXMSCwoHc3VjY2VzcxABEgsKB2ZhaWx1cmUQAg==');
+@$core.Deprecated('Use buildStatusResponseDescriptor instead')
+const BuildStatusResponse$json = const {
+  '1': 'BuildStatusResponse',
+  '2': const [
+    const {'1': 'build_status', '3': 1, '4': 1, '5': 14, '6': '.EnumBuildStatus', '10': 'buildStatus'},
+    const {'1': 'failing_tasks', '3': 2, '4': 3, '5': 9, '10': 'failingTasks'},
+  ],
+};
+
+/// Descriptor for `BuildStatusResponse`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List buildStatusResponseDescriptor = $convert.base64Decode(
+    'ChNCdWlsZFN0YXR1c1Jlc3BvbnNlEjMKDGJ1aWxkX3N0YXR1cxgBIAEoDjIQLkVudW1CdWlsZFN0YXR1c1ILYnVpbGRTdGF0dXMSIwoNZmFpbGluZ190YXNrcxgCIAMoCVIMZmFpbGluZ1Rhc2tz');
diff --git a/app_dart/lib/src/model/proto/internal/build_status_response.pbserver.dart b/app_dart/lib/src/model/proto/internal/build_status_response.pbserver.dart
new file mode 100644
index 0000000..9115ba5
--- /dev/null
+++ b/app_dart/lib/src/model/proto/internal/build_status_response.pbserver.dart
@@ -0,0 +1,8 @@
+///
+//  Generated code. Do not modify.
+//  source: lib/src/model/proto/internal/build_status_response.proto
+//
+// @dart = 2.12
+// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,deprecated_member_use_from_same_package,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name
+
+export 'build_status_response.pb.dart';
diff --git a/app_dart/lib/src/model/proto/internal/github_webhook.pbenum.dart b/app_dart/lib/src/model/proto/internal/github_webhook.pbenum.dart
new file mode 100644
index 0000000..ef33917
--- /dev/null
+++ b/app_dart/lib/src/model/proto/internal/github_webhook.pbenum.dart
@@ -0,0 +1,6 @@
+///
+//  Generated code. Do not modify.
+//  source: lib/src/model/proto/internal/github_webhook.proto
+//
+// @dart = 2.12
+// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name
diff --git a/app_dart/lib/src/model/proto/internal/github_webhook.pbjson.dart b/app_dart/lib/src/model/proto/internal/github_webhook.pbjson.dart
new file mode 100644
index 0000000..718d1b9
--- /dev/null
+++ b/app_dart/lib/src/model/proto/internal/github_webhook.pbjson.dart
@@ -0,0 +1,23 @@
+///
+//  Generated code. Do not modify.
+//  source: lib/src/model/proto/internal/github_webhook.proto
+//
+// @dart = 2.12
+// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,deprecated_member_use_from_same_package,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name
+
+import 'dart:core' as $core;
+import 'dart:convert' as $convert;
+import 'dart:typed_data' as $typed_data;
+
+@$core.Deprecated('Use githubWebhookMessageDescriptor instead')
+const GithubWebhookMessage$json = const {
+  '1': 'GithubWebhookMessage',
+  '2': const [
+    const {'1': 'event', '3': 1, '4': 1, '5': 9, '10': 'event'},
+    const {'1': 'payload', '3': 2, '4': 1, '5': 9, '10': 'payload'},
+  ],
+};
+
+/// Descriptor for `GithubWebhookMessage`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List githubWebhookMessageDescriptor = $convert
+    .base64Decode('ChRHaXRodWJXZWJob29rTWVzc2FnZRIUCgVldmVudBgBIAEoCVIFZXZlbnQSGAoHcGF5bG9hZBgCIAEoCVIHcGF5bG9hZA==');
diff --git a/app_dart/lib/src/model/proto/internal/github_webhook.pbserver.dart b/app_dart/lib/src/model/proto/internal/github_webhook.pbserver.dart
new file mode 100644
index 0000000..8e8dfb9
--- /dev/null
+++ b/app_dart/lib/src/model/proto/internal/github_webhook.pbserver.dart
@@ -0,0 +1,8 @@
+///
+//  Generated code. Do not modify.
+//  source: lib/src/model/proto/internal/github_webhook.proto
+//
+// @dart = 2.12
+// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,deprecated_member_use_from_same_package,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name
+
+export 'github_webhook.pb.dart';
diff --git a/app_dart/lib/src/model/proto/internal/key.pb.dart b/app_dart/lib/src/model/proto/internal/key.pb.dart
index 0ad0b7a..f20aa5e 100644
--- a/app_dart/lib/src/model/proto/internal/key.pb.dart
+++ b/app_dart/lib/src/model/proto/internal/key.pb.dart
@@ -3,7 +3,7 @@
 //  source: lib/src/model/proto/internal/key.proto
 //
 // @dart = 2.12
-// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields
+// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name
 
 import 'dart:core' as $core;
 
diff --git a/app_dart/lib/src/model/proto/internal/key.pbenum.dart b/app_dart/lib/src/model/proto/internal/key.pbenum.dart
new file mode 100644
index 0000000..1c5e28e
--- /dev/null
+++ b/app_dart/lib/src/model/proto/internal/key.pbenum.dart
@@ -0,0 +1,6 @@
+///
+//  Generated code. Do not modify.
+//  source: lib/src/model/proto/internal/key.proto
+//
+// @dart = 2.12
+// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name
diff --git a/app_dart/lib/src/model/proto/internal/key.pbjson.dart b/app_dart/lib/src/model/proto/internal/key.pbjson.dart
new file mode 100644
index 0000000..6afac20
--- /dev/null
+++ b/app_dart/lib/src/model/proto/internal/key.pbjson.dart
@@ -0,0 +1,40 @@
+///
+//  Generated code. Do not modify.
+//  source: lib/src/model/proto/internal/key.proto
+//
+// @dart = 2.12
+// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,deprecated_member_use_from_same_package,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name
+
+import 'dart:core' as $core;
+import 'dart:convert' as $convert;
+import 'dart:typed_data' as $typed_data;
+
+@$core.Deprecated('Use keyDescriptor instead')
+const Key$json = const {
+  '1': 'Key',
+  '2': const [
+    const {'1': 'type', '3': 1, '4': 1, '5': 9, '10': 'type'},
+    const {'1': 'uid', '3': 2, '4': 1, '5': 3, '9': 0, '10': 'uid'},
+    const {'1': 'name', '3': 3, '4': 1, '5': 9, '9': 0, '10': 'name'},
+    const {'1': 'child', '3': 4, '4': 1, '5': 11, '6': '.Key', '10': 'child'},
+  ],
+  '8': const [
+    const {'1': 'id'},
+  ],
+};
+
+/// Descriptor for `Key`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List keyDescriptor = $convert.base64Decode(
+    'CgNLZXkSEgoEdHlwZRgBIAEoCVIEdHlwZRISCgN1aWQYAiABKANIAFIDdWlkEhQKBG5hbWUYAyABKAlIAFIEbmFtZRIaCgVjaGlsZBgEIAEoCzIELktleVIFY2hpbGRCBAoCaWQ=');
+@$core.Deprecated('Use rootKeyDescriptor instead')
+const RootKey$json = const {
+  '1': 'RootKey',
+  '2': const [
+    const {'1': 'namespace', '3': 1, '4': 1, '5': 9, '10': 'namespace'},
+    const {'1': 'child', '3': 2, '4': 1, '5': 11, '6': '.Key', '10': 'child'},
+  ],
+};
+
+/// Descriptor for `RootKey`. Decode as a `google.protobuf.DescriptorProto`.
+final $typed_data.Uint8List rootKeyDescriptor = $convert
+    .base64Decode('CgdSb290S2V5EhwKCW5hbWVzcGFjZRgBIAEoCVIJbmFtZXNwYWNlEhoKBWNoaWxkGAIgASgLMgQuS2V5UgVjaGlsZA==');
diff --git a/app_dart/lib/src/model/proto/internal/key.pbserver.dart b/app_dart/lib/src/model/proto/internal/key.pbserver.dart
new file mode 100644
index 0000000..92721a9
--- /dev/null
+++ b/app_dart/lib/src/model/proto/internal/key.pbserver.dart
@@ -0,0 +1,8 @@
+///
+//  Generated code. Do not modify.
+//  source: lib/src/model/proto/internal/key.proto
+//
+// @dart = 2.12
+// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,deprecated_member_use_from_same_package,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name
+
+export 'key.pb.dart';
diff --git a/app_dart/lib/src/model/proto/internal/scheduler.pb.dart b/app_dart/lib/src/model/proto/internal/scheduler.pb.dart
index a17500b..cbba69a 100644
--- a/app_dart/lib/src/model/proto/internal/scheduler.pb.dart
+++ b/app_dart/lib/src/model/proto/internal/scheduler.pb.dart
@@ -16,7 +16,8 @@
 class SchedulerConfig_PlatformProperties extends $pb.GeneratedMessage {
   static final $pb.BuilderInfo _i = $pb.BuilderInfo(
       const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'SchedulerConfig.PlatformProperties',
-      package: const $pb.PackageName($core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'scheduler'),
+      package:
+          const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'scheduler'),
       createEmptyInstance: create)
     ..m<$core.String, $core.String>(
         1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'properties',
@@ -83,7 +84,8 @@
 class SchedulerConfig extends $pb.GeneratedMessage {
   static final $pb.BuilderInfo _i = $pb.BuilderInfo(
       const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'SchedulerConfig',
-      package: const $pb.PackageName($core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'scheduler'),
+      package:
+          const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'scheduler'),
       createEmptyInstance: create)
     ..pc<Target>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'targets', $pb.PbFieldType.PM,
         subBuilder: Target.create)
@@ -153,7 +155,8 @@
 class Target extends $pb.GeneratedMessage {
   static final $pb.BuilderInfo _i = $pb.BuilderInfo(
       const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'Target',
-      package: const $pb.PackageName($core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'scheduler'),
+      package:
+          const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'scheduler'),
       createEmptyInstance: create)
     ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'name')
     ..pPS(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'dependencies')
diff --git a/app_dart/lib/src/model/proto/internal/scheduler.pbenum.dart b/app_dart/lib/src/model/proto/internal/scheduler.pbenum.dart
index 6fce85b..8e09bd7 100644
--- a/app_dart/lib/src/model/proto/internal/scheduler.pbenum.dart
+++ b/app_dart/lib/src/model/proto/internal/scheduler.pbenum.dart
@@ -11,16 +11,19 @@
 
 class SchedulerSystem extends $pb.ProtobufEnum {
   static const SchedulerSystem cocoon =
-      SchedulerSystem._(1, $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'cocoon');
+      SchedulerSystem._(1, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'cocoon');
   static const SchedulerSystem luci =
-      SchedulerSystem._(2, $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'luci');
+      SchedulerSystem._(2, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'luci');
   static const SchedulerSystem google_internal =
-      SchedulerSystem._(3, $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'google_internal');
+      SchedulerSystem._(3, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'google_internal');
+  static const SchedulerSystem release =
+      SchedulerSystem._(4, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'release');
 
   static const $core.List<SchedulerSystem> values = <SchedulerSystem>[
     cocoon,
     luci,
     google_internal,
+    release,
   ];
 
   static final $core.Map<$core.int, SchedulerSystem> _byValue = $pb.ProtobufEnum.initByValue(values);
diff --git a/app_dart/lib/src/model/proto/internal/scheduler.pbjson.dart b/app_dart/lib/src/model/proto/internal/scheduler.pbjson.dart
index b2db732..87fd572 100644
--- a/app_dart/lib/src/model/proto/internal/scheduler.pbjson.dart
+++ b/app_dart/lib/src/model/proto/internal/scheduler.pbjson.dart
@@ -10,25 +10,26 @@
 import 'dart:typed_data' as $typed_data;
 
 @$core.Deprecated('Use schedulerSystemDescriptor instead')
-const SchedulerSystem$json = {
+const SchedulerSystem$json = const {
   '1': 'SchedulerSystem',
-  '2': [
-    {'1': 'cocoon', '2': 1},
-    {'1': 'luci', '2': 2},
-    {'1': 'google_internal', '2': 3},
+  '2': const [
+    const {'1': 'cocoon', '2': 1},
+    const {'1': 'luci', '2': 2},
+    const {'1': 'google_internal', '2': 3},
+    const {'1': 'release', '2': 4},
   ],
 };
 
 /// Descriptor for `SchedulerSystem`. Decode as a `google.protobuf.EnumDescriptorProto`.
-final $typed_data.Uint8List schedulerSystemDescriptor =
-    $convert.base64Decode('Cg9TY2hlZHVsZXJTeXN0ZW0SCgoGY29jb29uEAESCAoEbHVjaRACEhMKD2dvb2dsZV9pbnRlcm5hbBAD');
+final $typed_data.Uint8List schedulerSystemDescriptor = $convert.base64Decode(
+    'Cg9TY2hlZHVsZXJTeXN0ZW0SCgoGY29jb29uEAESCAoEbHVjaRACEhMKD2dvb2dsZV9pbnRlcm5hbBADEgsKB3JlbGVhc2UQBA==');
 @$core.Deprecated('Use schedulerConfigDescriptor instead')
-const SchedulerConfig$json = {
+const SchedulerConfig$json = const {
   '1': 'SchedulerConfig',
-  '2': [
-    {'1': 'targets', '3': 1, '4': 3, '5': 11, '6': '.scheduler.Target', '10': 'targets'},
-    {'1': 'enabled_branches', '3': 2, '4': 3, '5': 9, '10': 'enabledBranches'},
-    {
+  '2': const [
+    const {'1': 'targets', '3': 1, '4': 3, '5': 11, '6': '.scheduler.Target', '10': 'targets'},
+    const {'1': 'enabled_branches', '3': 2, '4': 3, '5': 9, '10': 'enabledBranches'},
+    const {
       '1': 'platform_properties',
       '3': 3,
       '4': 3,
@@ -37,24 +38,24 @@
       '10': 'platformProperties'
     },
   ],
-  '3': [SchedulerConfig_PlatformPropertiesEntry$json, SchedulerConfig_PlatformProperties$json],
+  '3': const [SchedulerConfig_PlatformPropertiesEntry$json, SchedulerConfig_PlatformProperties$json],
 };
 
 @$core.Deprecated('Use schedulerConfigDescriptor instead')
-const SchedulerConfig_PlatformPropertiesEntry$json = {
+const SchedulerConfig_PlatformPropertiesEntry$json = const {
   '1': 'PlatformPropertiesEntry',
-  '2': [
-    {'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'},
-    {'1': 'value', '3': 2, '4': 1, '5': 11, '6': '.scheduler.SchedulerConfig.PlatformProperties', '10': 'value'},
+  '2': const [
+    const {'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'},
+    const {'1': 'value', '3': 2, '4': 1, '5': 11, '6': '.scheduler.SchedulerConfig.PlatformProperties', '10': 'value'},
   ],
-  '7': {'7': true},
+  '7': const {'7': true},
 };
 
 @$core.Deprecated('Use schedulerConfigDescriptor instead')
-const SchedulerConfig_PlatformProperties$json = {
+const SchedulerConfig_PlatformProperties$json = const {
   '1': 'PlatformProperties',
-  '2': [
-    {
+  '2': const [
+    const {
       '1': 'properties',
       '3': 1,
       '4': 3,
@@ -62,7 +63,7 @@
       '6': '.scheduler.SchedulerConfig.PlatformProperties.PropertiesEntry',
       '10': 'properties'
     },
-    {
+    const {
       '1': 'dimensions',
       '3': 2,
       '4': 3,
@@ -71,60 +72,68 @@
       '10': 'dimensions'
     },
   ],
-  '3': [
+  '3': const [
     SchedulerConfig_PlatformProperties_PropertiesEntry$json,
     SchedulerConfig_PlatformProperties_DimensionsEntry$json
   ],
 };
 
 @$core.Deprecated('Use schedulerConfigDescriptor instead')
-const SchedulerConfig_PlatformProperties_PropertiesEntry$json = {
+const SchedulerConfig_PlatformProperties_PropertiesEntry$json = const {
   '1': 'PropertiesEntry',
-  '2': [
-    {'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'},
-    {'1': 'value', '3': 2, '4': 1, '5': 9, '10': 'value'},
+  '2': const [
+    const {'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'},
+    const {'1': 'value', '3': 2, '4': 1, '5': 9, '10': 'value'},
   ],
-  '7': {'7': true},
+  '7': const {'7': true},
 };
 
 @$core.Deprecated('Use schedulerConfigDescriptor instead')
-const SchedulerConfig_PlatformProperties_DimensionsEntry$json = {
+const SchedulerConfig_PlatformProperties_DimensionsEntry$json = const {
   '1': 'DimensionsEntry',
-  '2': [
-    {'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'},
-    {'1': 'value', '3': 2, '4': 1, '5': 9, '10': 'value'},
+  '2': const [
+    const {'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'},
+    const {'1': 'value', '3': 2, '4': 1, '5': 9, '10': 'value'},
   ],
-  '7': {'7': true},
+  '7': const {'7': true},
 };
 
 /// Descriptor for `SchedulerConfig`. Decode as a `google.protobuf.DescriptorProto`.
 final $typed_data.Uint8List schedulerConfigDescriptor = $convert.base64Decode(
     'Cg9TY2hlZHVsZXJDb25maWcSKwoHdGFyZ2V0cxgBIAMoCzIRLnNjaGVkdWxlci5UYXJnZXRSB3RhcmdldHMSKQoQZW5hYmxlZF9icmFuY2hlcxgCIAMoCVIPZW5hYmxlZEJyYW5jaGVzEmMKE3BsYXRmb3JtX3Byb3BlcnRpZXMYAyADKAsyMi5zY2hlZHVsZXIuU2NoZWR1bGVyQ29uZmlnLlBsYXRmb3JtUHJvcGVydGllc0VudHJ5UhJwbGF0Zm9ybVByb3BlcnRpZXMadAoXUGxhdGZvcm1Qcm9wZXJ0aWVzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSQwoFdmFsdWUYAiABKAsyLS5zY2hlZHVsZXIuU2NoZWR1bGVyQ29uZmlnLlBsYXRmb3JtUHJvcGVydGllc1IFdmFsdWU6AjgBGtACChJQbGF0Zm9ybVByb3BlcnRpZXMSXQoKcHJvcGVydGllcxgBIAMoCzI9LnNjaGVkdWxlci5TY2hlZHVsZXJDb25maWcuUGxhdGZvcm1Qcm9wZXJ0aWVzLlByb3BlcnRpZXNFbnRyeVIKcHJvcGVydGllcxJdCgpkaW1lbnNpb25zGAIgAygLMj0uc2NoZWR1bGVyLlNjaGVkdWxlckNvbmZpZy5QbGF0Zm9ybVByb3BlcnRpZXMuRGltZW5zaW9uc0VudHJ5UgpkaW1lbnNpb25zGj0KD1Byb3BlcnRpZXNFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgBGj0KD0RpbWVuc2lvbnNFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgB');
 @$core.Deprecated('Use targetDescriptor instead')
-const Target$json = {
+const Target$json = const {
   '1': 'Target',
-  '2': [
-    {'1': 'name', '3': 1, '4': 1, '5': 9, '10': 'name'},
-    {'1': 'dependencies', '3': 2, '4': 3, '5': 9, '10': 'dependencies'},
-    {'1': 'bringup', '3': 3, '4': 1, '5': 8, '7': 'false', '10': 'bringup'},
-    {'1': 'timeout', '3': 4, '4': 1, '5': 5, '7': '30', '10': 'timeout'},
-    {'1': 'testbed', '3': 5, '4': 1, '5': 9, '7': 'linux-vm', '10': 'testbed'},
-    {'1': 'properties', '3': 6, '4': 3, '5': 11, '6': '.scheduler.Target.PropertiesEntry', '10': 'properties'},
-    {
+  '2': const [
+    const {'1': 'name', '3': 1, '4': 1, '5': 9, '10': 'name'},
+    const {'1': 'dependencies', '3': 2, '4': 3, '5': 9, '10': 'dependencies'},
+    const {'1': 'bringup', '3': 3, '4': 1, '5': 8, '7': 'false', '10': 'bringup'},
+    const {'1': 'timeout', '3': 4, '4': 1, '5': 5, '7': '30', '10': 'timeout'},
+    const {'1': 'testbed', '3': 5, '4': 1, '5': 9, '7': 'linux-vm', '10': 'testbed'},
+    const {'1': 'properties', '3': 6, '4': 3, '5': 11, '6': '.scheduler.Target.PropertiesEntry', '10': 'properties'},
+    const {
       '1': 'builder',
       '3': 7,
       '4': 1,
       '5': 9,
-      '8': {'3': true},
+      '8': const {'3': true},
       '10': 'builder',
     },
-    {'1': 'scheduler', '3': 8, '4': 1, '5': 14, '6': '.scheduler.SchedulerSystem', '7': 'cocoon', '10': 'scheduler'},
-    {'1': 'presubmit', '3': 9, '4': 1, '5': 8, '7': 'true', '10': 'presubmit'},
-    {'1': 'postsubmit', '3': 10, '4': 1, '5': 8, '7': 'true', '10': 'postsubmit'},
-    {'1': 'run_if', '3': 11, '4': 3, '5': 9, '10': 'runIf'},
-    {'1': 'enabled_branches', '3': 12, '4': 3, '5': 9, '10': 'enabledBranches'},
-    {'1': 'recipe', '3': 13, '4': 1, '5': 9, '10': 'recipe'},
-    {
+    const {
+      '1': 'scheduler',
+      '3': 8,
+      '4': 1,
+      '5': 14,
+      '6': '.scheduler.SchedulerSystem',
+      '7': 'cocoon',
+      '10': 'scheduler'
+    },
+    const {'1': 'presubmit', '3': 9, '4': 1, '5': 8, '7': 'true', '10': 'presubmit'},
+    const {'1': 'postsubmit', '3': 10, '4': 1, '5': 8, '7': 'true', '10': 'postsubmit'},
+    const {'1': 'run_if', '3': 11, '4': 3, '5': 9, '10': 'runIf'},
+    const {'1': 'enabled_branches', '3': 12, '4': 3, '5': 9, '10': 'enabledBranches'},
+    const {'1': 'recipe', '3': 13, '4': 1, '5': 9, '10': 'recipe'},
+    const {
       '1': 'postsubmit_properties',
       '3': 15,
       '4': 3,
@@ -132,42 +141,42 @@
       '6': '.scheduler.Target.PostsubmitPropertiesEntry',
       '10': 'postsubmitProperties'
     },
-    {'1': 'dimensions', '3': 16, '4': 3, '5': 11, '6': '.scheduler.Target.DimensionsEntry', '10': 'dimensions'},
+    const {'1': 'dimensions', '3': 16, '4': 3, '5': 11, '6': '.scheduler.Target.DimensionsEntry', '10': 'dimensions'},
   ],
-  '3': [Target_PropertiesEntry$json, Target_PostsubmitPropertiesEntry$json, Target_DimensionsEntry$json],
-  '9': [
-    {'1': 14, '2': 15},
+  '3': const [Target_PropertiesEntry$json, Target_PostsubmitPropertiesEntry$json, Target_DimensionsEntry$json],
+  '9': const [
+    const {'1': 14, '2': 15},
   ],
 };
 
 @$core.Deprecated('Use targetDescriptor instead')
-const Target_PropertiesEntry$json = {
+const Target_PropertiesEntry$json = const {
   '1': 'PropertiesEntry',
-  '2': [
-    {'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'},
-    {'1': 'value', '3': 2, '4': 1, '5': 9, '10': 'value'},
+  '2': const [
+    const {'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'},
+    const {'1': 'value', '3': 2, '4': 1, '5': 9, '10': 'value'},
   ],
-  '7': {'7': true},
+  '7': const {'7': true},
 };
 
 @$core.Deprecated('Use targetDescriptor instead')
-const Target_PostsubmitPropertiesEntry$json = {
+const Target_PostsubmitPropertiesEntry$json = const {
   '1': 'PostsubmitPropertiesEntry',
-  '2': [
-    {'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'},
-    {'1': 'value', '3': 2, '4': 1, '5': 9, '10': 'value'},
+  '2': const [
+    const {'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'},
+    const {'1': 'value', '3': 2, '4': 1, '5': 9, '10': 'value'},
   ],
-  '7': {'7': true},
+  '7': const {'7': true},
 };
 
 @$core.Deprecated('Use targetDescriptor instead')
-const Target_DimensionsEntry$json = {
+const Target_DimensionsEntry$json = const {
   '1': 'DimensionsEntry',
-  '2': [
-    {'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'},
-    {'1': 'value', '3': 2, '4': 1, '5': 9, '10': 'value'},
+  '2': const [
+    const {'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'},
+    const {'1': 'value', '3': 2, '4': 1, '5': 9, '10': 'value'},
   ],
-  '7': {'7': true},
+  '7': const {'7': true},
 };
 
 /// Descriptor for `Target`. Decode as a `google.protobuf.DescriptorProto`.
diff --git a/test_utilities/bin/dart_test_runner.sh b/test_utilities/bin/dart_test_runner.sh
index dd65732..21478f2 100755
--- a/test_utilities/bin/dart_test_runner.sh
+++ b/test_utilities/bin/dart_test_runner.sh
@@ -14,6 +14,8 @@
 flutter clean
 dart pub get
 
+# TODO(drewroengoogle): Validate proto code has been generated. https://github.com/flutter/flutter/issues/115473
+
 echo "############# files that require formatting ###########"
 dart format --set-exit-if-changed --line-length=120 .
 echo "#######################################################"