pw_presubmit: Add more ResultDB Metadata

Consider tests executed by different builders, or in different steps, as
different "test variants" (go/resultdb-concepts#test-variant).

Create a subinvocation for each step, to group together tests executed
in the same step.

Bug: 247857184
Change-Id: I4adae5341d3c27cdb8a0ae1f31430ea5cf4b35e0
Reviewed-on: https://pigweed-review.googlesource.com/c/infra/recipes/+/111632
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
Reviewed-by: Rob Mohr <mohrr@google.com>
Pigweed-Auto-Submit: Ted Pudlik <tpudlik@google.com>
diff --git a/recipe_modules/pw_presubmit/api.py b/recipe_modules/pw_presubmit/api.py
index 4e9c8ec..de7534c 100644
--- a/recipe_modules/pw_presubmit/api.py
+++ b/recipe_modules/pw_presubmit/api.py
@@ -158,7 +158,17 @@
             pass
         if self.m.resultdb.enabled:
             return self.m.step(
-                name, self.m.resultdb.wrap(cmd), timeout=timeout, **kwargs
+                name,
+                self.m.resultdb.wrap(
+                    cmd,
+                    base_variant={
+                        'builder': self.m.buildbucket.builder_name,
+                        'step': name,
+                    },
+                    include=True,
+                ),
+                timeout=timeout,
+                **kwargs,
             )
         else:
             return self.m.step(name, cmd, timeout=timeout, **kwargs)
diff --git a/recipe_modules/pw_presubmit/tests/full.expected/long.json b/recipe_modules/pw_presubmit/tests/full.expected/long.json
index b9555c5..6ad1d88 100644
--- a/recipe_modules/pw_presubmit/tests/full.expected/long.json
+++ b/recipe_modules/pw_presubmit/tests/full.expected/long.json
@@ -14,6 +14,14 @@
     "cmd": [
       "rdb",
       "stream",
+      "-var",
+      "builder:builder",
+      "-var",
+      "step:step1",
+      "-new",
+      "-realm",
+      "project:try",
+      "-include",
       "--",
       "python",
       "-m",
@@ -502,6 +510,14 @@
     "cmd": [
       "rdb",
       "stream",
+      "-var",
+      "builder:builder",
+      "-var",
+      "step:step2",
+      "-new",
+      "-realm",
+      "project:try",
+      "-include",
       "--",
       "python",
       "-m",
diff --git a/recipe_modules/pw_presubmit/tests/full.expected/medium.json b/recipe_modules/pw_presubmit/tests/full.expected/medium.json
index b6afc9d..f2d5f96 100644
--- a/recipe_modules/pw_presubmit/tests/full.expected/medium.json
+++ b/recipe_modules/pw_presubmit/tests/full.expected/medium.json
@@ -14,6 +14,14 @@
     "cmd": [
       "rdb",
       "stream",
+      "-var",
+      "builder:builder",
+      "-var",
+      "step:step1",
+      "-new",
+      "-realm",
+      "project:try",
+      "-include",
       "--",
       "python",
       "-m",
@@ -502,6 +510,14 @@
     "cmd": [
       "rdb",
       "stream",
+      "-var",
+      "builder:builder",
+      "-var",
+      "step:step2",
+      "-new",
+      "-realm",
+      "project:try",
+      "-include",
       "--",
       "python",
       "-m",
diff --git a/recipe_modules/pw_presubmit/tests/full.expected/pigweed.json b/recipe_modules/pw_presubmit/tests/full.expected/pigweed.json
index 52851c2..fae049d 100644
--- a/recipe_modules/pw_presubmit/tests/full.expected/pigweed.json
+++ b/recipe_modules/pw_presubmit/tests/full.expected/pigweed.json
@@ -14,6 +14,14 @@
     "cmd": [
       "rdb",
       "stream",
+      "-var",
+      "builder:builder",
+      "-var",
+      "step:full",
+      "-new",
+      "-realm",
+      "project:ci",
+      "-include",
       "--",
       "foo",
       "--directory",
@@ -61,6 +69,14 @@
     "cmd": [
       "rdb",
       "stream",
+      "-var",
+      "builder:builder",
+      "-var",
+      "step:full_0",
+      "-new",
+      "-realm",
+      "project:ci",
+      "-include",
       "--",
       "foo",
       "--directory",
@@ -549,6 +565,14 @@
     "cmd": [
       "rdb",
       "stream",
+      "-var",
+      "builder:builder",
+      "-var",
+      "step:full_1",
+      "-new",
+      "-realm",
+      "project:ci",
+      "-include",
       "--",
       "foo",
       "--directory",
diff --git a/recipe_modules/pw_presubmit/tests/full.expected/step.json b/recipe_modules/pw_presubmit/tests/full.expected/step.json
index 0ad2994..8d76184 100644
--- a/recipe_modules/pw_presubmit/tests/full.expected/step.json
+++ b/recipe_modules/pw_presubmit/tests/full.expected/step.json
@@ -14,6 +14,14 @@
     "cmd": [
       "rdb",
       "stream",
+      "-var",
+      "builder:builder",
+      "-var",
+      "step:step1",
+      "-new",
+      "-realm",
+      "project:try",
+      "-include",
       "--",
       "python",
       "-m",
@@ -502,6 +510,14 @@
     "cmd": [
       "rdb",
       "stream",
+      "-var",
+      "builder:builder",
+      "-var",
+      "step:step2",
+      "-new",
+      "-realm",
+      "project:try",
+      "-include",
       "--",
       "python",
       "-m",
diff --git a/recipes/pw_presubmit.expected/sign.json b/recipes/pw_presubmit.expected/sign.json
index a3fc185..4b60f3e 100644
--- a/recipes/pw_presubmit.expected/sign.json
+++ b/recipes/pw_presubmit.expected/sign.json
@@ -1300,6 +1300,14 @@
     "cmd": [
       "rdb",
       "stream",
+      "-var",
+      "builder:builder",
+      "-var",
+      "step:release",
+      "-new",
+      "-realm",
+      "project:ci",
+      "-include",
       "--",
       "python",
       "-m",
diff --git a/recipes/pw_presubmit.expected/step.json b/recipes/pw_presubmit.expected/step.json
index a0e7461..9ca9538 100644
--- a/recipes/pw_presubmit.expected/step.json
+++ b/recipes/pw_presubmit.expected/step.json
@@ -1565,6 +1565,14 @@
     "cmd": [
       "rdb",
       "stream",
+      "-var",
+      "builder:builder",
+      "-var",
+      "step:step1",
+      "-new",
+      "-realm",
+      "project:try",
+      "-include",
       "--",
       "python",
       "-m",
@@ -2052,6 +2060,14 @@
     "cmd": [
       "rdb",
       "stream",
+      "-var",
+      "builder:builder",
+      "-var",
+      "step:step2",
+      "-new",
+      "-realm",
+      "project:try",
+      "-include",
       "--",
       "python",
       "-m",