pw_presubmit, util: Save build metadata to GCS
Save build metadata to GCS so it's easier for other tooling to extract
that metadata without requiring `bb`.
Testing: reran http://go/bbid/8838531764020419504 with this recipe at
https://ci.chromium.org/swarming/task/5577a409e4381010?server=chrome-swarming.appspot.com
Change-Id: Ib2af975887fadb1707072b8aa7322b8e14896b51
Reviewed-on: https://pigweed-review.googlesource.com/c/infra/recipes/+/57681
Commit-Queue: Rob Mohr <mohrr@google.com>
Pigweed-Auto-Submit: Rob Mohr <mohrr@google.com>
Reviewed-by: Oliver Newman <olivernewman@google.com>
diff --git a/recipe_modules/util/api.py b/recipe_modules/util/api.py
index 5bdd2e9..5ea10e2 100644
--- a/recipe_modules/util/api.py
+++ b/recipe_modules/util/api.py
@@ -13,9 +13,11 @@
# the License.
"""Utility functions common to multiple recipes that don't fit elsewhere."""
+import json
import re
import attr
+from google.protobuf import json_format
from recipe_engine import recipe_api
@@ -91,3 +93,15 @@
pass
return result
+
+ def build_metadata(self):
+ return {
+ 'bb_id': self.m.buildbucket.build.id,
+ 'swarming_id': self.m.swarming.task_id,
+ 'builder': self.m.buildbucket_util.full_builder_name(),
+ 'url': self.m.buildbucket_util.build_url,
+ 'triggers': [
+ json.loads(json_format.MessageToJson(x))
+ for x in self.m.scheduler.triggers
+ ],
+ }