[devicelab] Only upload results on master (#87125)

diff --git a/dev/devicelab/lib/framework/cocoon.dart b/dev/devicelab/lib/framework/cocoon.dart
index 7f5089b..3f6357a 100644
--- a/dev/devicelab/lib/framework/cocoon.dart
+++ b/dev/devicelab/lib/framework/cocoon.dart
@@ -98,7 +98,10 @@
       resultsJson['NewStatus'] = testStatus;
     }
     resultsJson['TestFlaky'] = isTestFlaky ?? false;
-    await _sendUpdateTaskRequest(resultsJson);
+    const List<String> supportedBranches = <String>['master'];
+    if(supportedBranches.contains(resultsJson['CommitBranch'])) {
+      await _sendUpdateTaskRequest(resultsJson);
+    }
   }
 
   /// Write the given parameters into an update task request and store the JSON in [resultsPath].
diff --git a/dev/devicelab/test/cocoon_test.dart b/dev/devicelab/test/cocoon_test.dart
index c0f6db6..5ee64b8 100644
--- a/dev/devicelab/test/cocoon_test.dart
+++ b/dev/devicelab/test/cocoon_test.dart
@@ -178,6 +178,31 @@
       expect(() => cocoon.sendResultsPath(resultsPath: resultsPath),
           throwsA(isA<ClientException>()));
     });
+
+    test('does not upload results on non-supported branches', () async {
+      // Any network failure would cause the upoad to fail
+      mockClient = MockClient((Request request) async => Response('', 500));
+
+      cocoon = Cocoon(
+        serviceAccountTokenPath: serviceAccountTokenPath,
+        fs: fs,
+        httpClient: mockClient,
+        requestRetryLimit: 0,
+      );
+
+      const String resultsPath = 'results.json';
+      const String updateTaskJson = '{'
+          '"CommitBranch":"stable",'
+          '"CommitSha":"$commitSha",'
+          '"BuilderName":"builderAbc",'
+          '"NewStatus":"Succeeded",'
+          '"ResultData":{"i":0.0,"j":0.0,"not_a_metric":"something"},'
+          '"BenchmarkScoreKeys":["i","j"]}';
+      fs.file(resultsPath).writeAsStringSync(updateTaskJson);
+
+      // This will fail if it decided to upload results
+      await cocoon.sendResultsPath(resultsPath: resultsPath);
+    });
   });
 
   group('AuthenticatedCocoonClient', () {