Roll recipe dependencies (nontrivial).

This is an automated CL created by the recipe roller. This CL rolls
recipe changes from upstream projects (depot_tools) into this repository.

The build that created this CL was
https://ci.chromium.org/b/8705923683858704673

Please review the expectation changes, and LGTM+CQ.

depot_tools:
https://chromium.googlesource.com/chromium/tools/depot_tools.git/+/ac0e10e880e252ea2504333847d57601547dd47d
  ac0e10e (jwata@google.com)
      recipes: Set GCS URLs to output properties

Please check the following references for more information:
- autoroller, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#autoroller
- rollback, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#rollback
- cross-repo dependencies, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/cross_repo.md

Use https://goo.gl/noib3a to file a bug.

R=codefu@google.com, flutter-infra-notify+luci-recipes@google.com, matanl@google.com, zra@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Ignore-Freeze: Autoroller
Bugdroid-Send-Email: False
Change-Id: Iaca4b5f9758c6c8523aa8ca737402b4346958d04
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/69100
Commit-Queue: Matan Lurey <matanl@google.com>
Reviewed-by: Matan Lurey <matanl@google.com>
diff --git a/infra/config/recipes.cfg b/infra/config/recipes.cfg
index 10d7c7b..04d08c4 100644
--- a/infra/config/recipes.cfg
+++ b/infra/config/recipes.cfg
@@ -22,12 +22,12 @@
   "deps": {
     "dart": {
       "branch": "refs/heads/main",
-      "revision": "bb7cde25b22a11480d2993d007e9308655fd9b0b",
+      "revision": "214116660c1dc008a5afa92de44408bc28c6214c",
       "url": "https://dart.googlesource.com/recipes.git"
     },
     "depot_tools": {
       "branch": "refs/heads/main",
-      "revision": "4b5b51c8e59e1397cb580d2fc907ac45e9c432f9",
+      "revision": "ac0e10e880e252ea2504333847d57601547dd47d",
       "url": "https://chromium.googlesource.com/chromium/tools/depot_tools.git"
     },
     "fuchsia": {
diff --git a/recipe_modules/archives/examples/full.expected/flutter_pool_experimental_realm.json b/recipe_modules/archives/examples/full.expected/flutter_pool_experimental_realm.json
index 7570445..a7c4a6d 100644
--- a/recipe_modules/archives/examples/full.expected/flutter_pool_experimental_realm.json
+++ b/recipe_modules/archives/examples/full.expected/flutter_pool_experimental_realm.json
@@ -133,7 +133,8 @@
     },
     "name": "gsutil Upload [START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
diff --git a/recipe_modules/archives/examples/full.expected/flutter_pool_production_realm.json b/recipe_modules/archives/examples/full.expected/flutter_pool_production_realm.json
index 7570445..a7c4a6d 100644
--- a/recipe_modules/archives/examples/full.expected/flutter_pool_production_realm.json
+++ b/recipe_modules/archives/examples/full.expected/flutter_pool_production_realm.json
@@ -133,7 +133,8 @@
     },
     "name": "gsutil Upload [START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
diff --git a/recipe_modules/archives/examples/full.expected/monorepo_ci.json b/recipe_modules/archives/examples/full.expected/monorepo_ci.json
index d038ed5..ee51ebf 100644
--- a/recipe_modules/archives/examples/full.expected/monorepo_ci.json
+++ b/recipe_modules/archives/examples/full.expected/monorepo_ci.json
@@ -109,7 +109,8 @@
     },
     "name": "gsutil Upload [START_DIR]/flutter/engine/src/flutter/engine/src/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/monorepo/123/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/flutter/engine/src/flutter/engine/src/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/monorepo/123/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip\": \"gs://flutter_archives_v2/\"}@@@"
     ]
   },
   {
diff --git a/recipe_modules/archives/examples/full.expected/monorepo_ci_experimental_realm.json b/recipe_modules/archives/examples/full.expected/monorepo_ci_experimental_realm.json
index d038ed5..ee51ebf 100644
--- a/recipe_modules/archives/examples/full.expected/monorepo_ci_experimental_realm.json
+++ b/recipe_modules/archives/examples/full.expected/monorepo_ci_experimental_realm.json
@@ -109,7 +109,8 @@
     },
     "name": "gsutil Upload [START_DIR]/flutter/engine/src/flutter/engine/src/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/monorepo/123/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/flutter/engine/src/flutter/engine/src/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/monorepo/123/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip\": \"gs://flutter_archives_v2/\"}@@@"
     ]
   },
   {
diff --git a/recipe_modules/archives/examples/full.expected/monorepo_try_experimental_realm.json b/recipe_modules/archives/examples/full.expected/monorepo_try_experimental_realm.json
index be7c831..6bbd8b3 100644
--- a/recipe_modules/archives/examples/full.expected/monorepo_try_experimental_realm.json
+++ b/recipe_modules/archives/examples/full.expected/monorepo_try_experimental_realm.json
@@ -94,7 +94,8 @@
     },
     "name": "gsutil Upload [START_DIR]/flutter/engine/src/flutter/engine/src/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/monorepo_try/123/flutter_infra_release/flutter/123/android-arm-profile/artifacts.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/flutter/engine/src/flutter/engine/src/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/monorepo_try/123/flutter_infra_release/flutter/123/android-arm-profile/artifacts.zip\": \"gs://flutter_archives_v2/\"}@@@"
     ]
   },
   {
diff --git a/recipe_modules/archives/examples/full.expected/monorepo_try_production_realm.json b/recipe_modules/archives/examples/full.expected/monorepo_try_production_realm.json
index be7c831..6bbd8b3 100644
--- a/recipe_modules/archives/examples/full.expected/monorepo_try_production_realm.json
+++ b/recipe_modules/archives/examples/full.expected/monorepo_try_production_realm.json
@@ -94,7 +94,8 @@
     },
     "name": "gsutil Upload [START_DIR]/flutter/engine/src/flutter/engine/src/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/monorepo_try/123/flutter_infra_release/flutter/123/android-arm-profile/artifacts.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/flutter/engine/src/flutter/engine/src/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/monorepo_try/123/flutter_infra_release/flutter/123/android-arm-profile/artifacts.zip\": \"gs://flutter_archives_v2/\"}@@@"
     ]
   },
   {
diff --git a/recipe_modules/archives/examples/full.expected/prod_pool_experimental_realm.json b/recipe_modules/archives/examples/full.expected/prod_pool_experimental_realm.json
index 4e10356..eacef6c 100644
--- a/recipe_modules/archives/examples/full.expected/prod_pool_experimental_realm.json
+++ b/recipe_modules/archives/examples/full.expected/prod_pool_experimental_realm.json
@@ -133,7 +133,8 @@
     },
     "name": "gsutil Upload [START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip\": \"gs://flutter_archives_v2/\"}@@@"
     ]
   },
   {
diff --git a/recipe_modules/archives/examples/full.expected/prod_pool_production_realm.json b/recipe_modules/archives/examples/full.expected/prod_pool_production_realm.json
index 3e18220..d354cc9 100644
--- a/recipe_modules/archives/examples/full.expected/prod_pool_production_realm.json
+++ b/recipe_modules/archives/examples/full.expected/prod_pool_production_realm.json
@@ -133,7 +133,8 @@
     },
     "name": "gsutil Upload [START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
diff --git a/recipe_modules/archives/examples/full.expected/prod_pool_shadow_bucket_experimental_realm.json b/recipe_modules/archives/examples/full.expected/prod_pool_shadow_bucket_experimental_realm.json
index 7bcc835..3fe6665 100644
--- a/recipe_modules/archives/examples/full.expected/prod_pool_shadow_bucket_experimental_realm.json
+++ b/recipe_modules/archives/examples/full.expected/prod_pool_shadow_bucket_experimental_realm.json
@@ -133,7 +133,8 @@
     },
     "name": "gsutil Upload [START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip\": \"gs://flutter_archives_v2/\"}@@@"
     ]
   },
   {
diff --git a/recipe_modules/archives/examples/full.expected/prod_pool_shadow_bucket_production_realm.json b/recipe_modules/archives/examples/full.expected/prod_pool_shadow_bucket_production_realm.json
index 7bcc835..3fe6665 100644
--- a/recipe_modules/archives/examples/full.expected/prod_pool_shadow_bucket_production_realm.json
+++ b/recipe_modules/archives/examples/full.expected/prod_pool_shadow_bucket_production_realm.json
@@ -133,7 +133,8 @@
     },
     "name": "gsutil Upload [START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip\": \"gs://flutter_archives_v2/\"}@@@"
     ]
   },
   {
diff --git a/recipe_modules/archives/examples/full.expected/staging_pool_experimental_realm.json b/recipe_modules/archives/examples/full.expected/staging_pool_experimental_realm.json
index b3c3631..aee88f5 100644
--- a/recipe_modules/archives/examples/full.expected/staging_pool_experimental_realm.json
+++ b/recipe_modules/archives/examples/full.expected/staging_pool_experimental_realm.json
@@ -133,7 +133,8 @@
     },
     "name": "gsutil Upload [START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip\": \"gs://flutter_archives_v2/\"}@@@"
     ]
   },
   {
diff --git a/recipe_modules/archives/examples/full.expected/staging_pool_production_realm.json b/recipe_modules/archives/examples/full.expected/staging_pool_production_realm.json
index b3c3631..aee88f5 100644
--- a/recipe_modules/archives/examples/full.expected/staging_pool_production_realm.json
+++ b/recipe_modules/archives/examples/full.expected/staging_pool_production_realm.json
@@ -133,7 +133,8 @@
     },
     "name": "gsutil Upload [START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip\": \"gs://flutter_archives_v2/\"}@@@"
     ]
   },
   {
diff --git a/recipe_modules/archives/examples/full.expected/staging_pool_shadow_bucket_experimental_realm.json b/recipe_modules/archives/examples/full.expected/staging_pool_shadow_bucket_experimental_realm.json
index 8119783..8e753bc 100644
--- a/recipe_modules/archives/examples/full.expected/staging_pool_shadow_bucket_experimental_realm.json
+++ b/recipe_modules/archives/examples/full.expected/staging_pool_shadow_bucket_experimental_realm.json
@@ -133,7 +133,8 @@
     },
     "name": "gsutil Upload [START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip\": \"gs://flutter_archives_v2/\"}@@@"
     ]
   },
   {
diff --git a/recipe_modules/archives/examples/full.expected/staging_pool_shadow_bucket_production_realm.json b/recipe_modules/archives/examples/full.expected/staging_pool_shadow_bucket_production_realm.json
index 8119783..8e753bc 100644
--- a/recipe_modules/archives/examples/full.expected/staging_pool_shadow_bucket_production_realm.json
+++ b/recipe_modules/archives/examples/full.expected/staging_pool_shadow_bucket_production_realm.json
@@ -133,7 +133,8 @@
     },
     "name": "gsutil Upload [START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip\": \"gs://flutter_archives_v2/\"}@@@"
     ]
   },
   {
diff --git a/recipe_modules/archives/examples/full.expected/try_pool_experimental_realm.json b/recipe_modules/archives/examples/full.expected/try_pool_experimental_realm.json
index 44e2e02..8c594bf 100644
--- a/recipe_modules/archives/examples/full.expected/try_pool_experimental_realm.json
+++ b/recipe_modules/archives/examples/full.expected/try_pool_experimental_realm.json
@@ -133,7 +133,8 @@
     },
     "name": "gsutil Upload [START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip\": \"gs://flutter_archives_v2/\"}@@@"
     ]
   },
   {
diff --git a/recipe_modules/archives/examples/full.expected/try_pool_production_realm.json b/recipe_modules/archives/examples/full.expected/try_pool_production_realm.json
index 44e2e02..8c594bf 100644
--- a/recipe_modules/archives/examples/full.expected/try_pool_production_realm.json
+++ b/recipe_modules/archives/examples/full.expected/try_pool_production_realm.json
@@ -133,7 +133,8 @@
     },
     "name": "gsutil Upload [START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip\": \"gs://flutter_archives_v2/\"}@@@"
     ]
   },
   {
diff --git a/recipe_modules/archives/examples/full.expected/try_pool_shadow_bucket_experimental_realm.json b/recipe_modules/archives/examples/full.expected/try_pool_shadow_bucket_experimental_realm.json
index 7bcc835..3fe6665 100644
--- a/recipe_modules/archives/examples/full.expected/try_pool_shadow_bucket_experimental_realm.json
+++ b/recipe_modules/archives/examples/full.expected/try_pool_shadow_bucket_experimental_realm.json
@@ -133,7 +133,8 @@
     },
     "name": "gsutil Upload [START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip\": \"gs://flutter_archives_v2/\"}@@@"
     ]
   },
   {
diff --git a/recipe_modules/archives/examples/full.expected/try_pool_shadow_bucket_production_realm.json b/recipe_modules/archives/examples/full.expected/try_pool_shadow_bucket_production_realm.json
index 7bcc835..3fe6665 100644
--- a/recipe_modules/archives/examples/full.expected/try_pool_shadow_bucket_production_realm.json
+++ b/recipe_modules/archives/examples/full.expected/try_pool_shadow_bucket_production_realm.json
@@ -133,7 +133,8 @@
     },
     "name": "gsutil Upload [START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/out/android_profile/zip_archives/android-arm-profile/artifacts.zip to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-arm-profile/artifacts.zip\": \"gs://flutter_archives_v2/\"}@@@"
     ]
   },
   {
diff --git a/recipe_modules/bucket_util/examples/full.expected/upload_packages.json b/recipe_modules/bucket_util/examples/full.expected/upload_packages.json
index 90a3ff5..1983153 100644
--- a/recipe_modules/bucket_util/examples/full.expected/upload_packages.json
+++ b/recipe_modules/bucket_util/examples/full.expected/upload_packages.json
@@ -31,7 +31,8 @@
     "infra_step": true,
     "name": "gsutil upload \"flutter/00000000-0000-0000-0000-000000001337/test1.zip\"",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/flutter/00000000-0000-0000-0000-000000001337/test1.zip@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/flutter/00000000-0000-0000-0000-000000001337/test1.zip@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload \\\"flutter/00000000-0000-0000-0000-000000001337/test1.zip\\\"\": \"gs://flutter_infra_release/flutter/00000000-0000-0000-0000-000000001337/test1.zip\"}@@@"
     ]
   },
   {
@@ -79,7 +80,8 @@
     "infra_step": true,
     "name": "gsutil upload \"flutter/00000000-0000-0000-0000-00000000133a/test2.zip\"",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/flutter/00000000-0000-0000-0000-00000000133a/test2.zip@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/flutter/00000000-0000-0000-0000-00000000133a/test2.zip@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload \\\"flutter/00000000-0000-0000-0000-00000000133a/test2.zip\\\"\": \"gs://flutter_infra_release/flutter/00000000-0000-0000-0000-00000000133a/test2.zip\"}@@@"
     ]
   },
   {
@@ -127,7 +129,8 @@
     "infra_step": true,
     "name": "gsutil upload \"flutter/00000000-0000-0000-0000-00000000133d/parent_directory/test3.zip\"",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/flutter/00000000-0000-0000-0000-00000000133d/parent_directory/test3.zip@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/flutter/00000000-0000-0000-0000-00000000133d/parent_directory/test3.zip@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload \\\"flutter/00000000-0000-0000-0000-00000000133d/parent_directory/test3.zip\\\"\": \"gs://flutter_infra_release/flutter/00000000-0000-0000-0000-00000000133d/parent_directory/test3.zip\"}@@@"
     ]
   },
   {
diff --git a/recipe_modules/bucket_util/examples/full.expected/upload_packages_experimental_runtime.json b/recipe_modules/bucket_util/examples/full.expected/upload_packages_experimental_runtime.json
index 2156e76..0cb3365 100644
--- a/recipe_modules/bucket_util/examples/full.expected/upload_packages_experimental_runtime.json
+++ b/recipe_modules/bucket_util/examples/full.expected/upload_packages_experimental_runtime.json
@@ -22,7 +22,8 @@
     "infra_step": true,
     "name": "gsutil upload \"flutter/experimental/00000000-0000-0000-0000-000000001337/test1.zip\"",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/flutter/experimental/00000000-0000-0000-0000-000000001337/test1.zip@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/flutter/experimental/00000000-0000-0000-0000-000000001337/test1.zip@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload \\\"flutter/experimental/00000000-0000-0000-0000-000000001337/test1.zip\\\"\": \"gs://flutter_infra_release/flutter/experimental/00000000-0000-0000-0000-000000001337/test1.zip\"}@@@"
     ]
   },
   {
@@ -61,7 +62,8 @@
     "infra_step": true,
     "name": "gsutil upload \"flutter/experimental/00000000-0000-0000-0000-00000000133a/test2.zip\"",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/flutter/experimental/00000000-0000-0000-0000-00000000133a/test2.zip@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/flutter/experimental/00000000-0000-0000-0000-00000000133a/test2.zip@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload \\\"flutter/experimental/00000000-0000-0000-0000-00000000133a/test2.zip\\\"\": \"gs://flutter_infra_release/flutter/experimental/00000000-0000-0000-0000-00000000133a/test2.zip\"}@@@"
     ]
   },
   {
@@ -100,7 +102,8 @@
     "infra_step": true,
     "name": "gsutil upload \"flutter/experimental/00000000-0000-0000-0000-00000000133d/parent_directory/test3.zip\"",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/flutter/experimental/00000000-0000-0000-0000-00000000133d/parent_directory/test3.zip@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/flutter/experimental/00000000-0000-0000-0000-00000000133d/parent_directory/test3.zip@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload \\\"flutter/experimental/00000000-0000-0000-0000-00000000133d/parent_directory/test3.zip\\\"\": \"gs://flutter_infra_release/flutter/experimental/00000000-0000-0000-0000-00000000133d/parent_directory/test3.zip\"}@@@"
     ]
   },
   {
@@ -139,7 +142,8 @@
     "infra_step": true,
     "name": "gsutil upload \"foo\"",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/foo@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/foo@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload \\\"foo\\\"\": \"gs://flutter_infra_release/foo\"}@@@"
     ]
   },
   {
diff --git a/recipe_modules/bucket_util/examples/full.expected/upload_packages_if_commit_is_present.json b/recipe_modules/bucket_util/examples/full.expected/upload_packages_if_commit_is_present.json
index fddd1a3..bd250b8 100644
--- a/recipe_modules/bucket_util/examples/full.expected/upload_packages_if_commit_is_present.json
+++ b/recipe_modules/bucket_util/examples/full.expected/upload_packages_if_commit_is_present.json
@@ -67,7 +67,8 @@
     },
     "name": "gsutil upload \"flutter/8b3cd40a25a512033cc8c0797e41de9ecfc2432c/test1.zip\"",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/flutter/8b3cd40a25a512033cc8c0797e41de9ecfc2432c/test1.zip@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/flutter/8b3cd40a25a512033cc8c0797e41de9ecfc2432c/test1.zip@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload \\\"flutter/8b3cd40a25a512033cc8c0797e41de9ecfc2432c/test1.zip\\\"\": \"gs://flutter_infra_release/flutter/8b3cd40a25a512033cc8c0797e41de9ecfc2432c/test1.zip\"}@@@"
     ]
   },
   {
@@ -163,7 +164,8 @@
     },
     "name": "gsutil upload \"flutter/8b3cd40a25a512033cc8c0797e41de9ecfc2432c/test2.zip\"",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/flutter/8b3cd40a25a512033cc8c0797e41de9ecfc2432c/test2.zip@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/flutter/8b3cd40a25a512033cc8c0797e41de9ecfc2432c/test2.zip@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload \\\"flutter/8b3cd40a25a512033cc8c0797e41de9ecfc2432c/test2.zip\\\"\": \"gs://flutter_infra_release/flutter/8b3cd40a25a512033cc8c0797e41de9ecfc2432c/test2.zip\"}@@@"
     ]
   },
   {
@@ -259,7 +261,8 @@
     },
     "name": "gsutil upload \"flutter/8b3cd40a25a512033cc8c0797e41de9ecfc2432c/parent_directory/test3.zip\"",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/flutter/8b3cd40a25a512033cc8c0797e41de9ecfc2432c/parent_directory/test3.zip@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/flutter/8b3cd40a25a512033cc8c0797e41de9ecfc2432c/parent_directory/test3.zip@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload \\\"flutter/8b3cd40a25a512033cc8c0797e41de9ecfc2432c/parent_directory/test3.zip\\\"\": \"gs://flutter_infra_release/flutter/8b3cd40a25a512033cc8c0797e41de9ecfc2432c/parent_directory/test3.zip\"}@@@"
     ]
   },
   {
diff --git a/recipe_modules/cache/tests/refresh.expected/basic.json b/recipe_modules/cache/tests/refresh.expected/basic.json
index ef3d6c0..a09194c 100644
--- a/recipe_modules/cache/tests/refresh.expected/basic.json
+++ b/recipe_modules/cache/tests/refresh.expected/basic.json
@@ -169,7 +169,8 @@
     "infra_step": true,
     "name": "gsutil Upload [CLEANUP]/builder-linux.json to gs://flutter_archives_v2/caches/builder-linux.json",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/caches/builder-linux.json@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/caches/builder-linux.json@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CLEANUP]/builder-linux.json to gs://flutter_archives_v2/caches/builder-linux.json\": \"gs://flutter_archives_v2/caches/builder-linux.json\"}@@@"
     ]
   },
   {
diff --git a/recipe_modules/cache/tests/refresh.expected/no_cache_file.json b/recipe_modules/cache/tests/refresh.expected/no_cache_file.json
index b35edc4..179d7eb 100644
--- a/recipe_modules/cache/tests/refresh.expected/no_cache_file.json
+++ b/recipe_modules/cache/tests/refresh.expected/no_cache_file.json
@@ -151,7 +151,8 @@
     "infra_step": true,
     "name": "gsutil Upload [CLEANUP]/builder-linux.json to gs://flutter_archives_v2/caches/builder-linux.json",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/caches/builder-linux.json@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/caches/builder-linux.json@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CLEANUP]/builder-linux.json to gs://flutter_archives_v2/caches/builder-linux.json\": \"gs://flutter_archives_v2/caches/builder-linux.json\"}@@@"
     ]
   },
   {
diff --git a/recipe_modules/flutter_bcid/examples/full.expected/release_build.json b/recipe_modules/flutter_bcid/examples/full.expected/release_build.json
index f51afee..9276e3e 100644
--- a/recipe_modules/flutter_bcid/examples/full.expected/release_build.json
+++ b/recipe_modules/flutter_bcid/examples/full.expected/release_build.json
@@ -467,7 +467,8 @@
     "name": "Verify artifact.zip provenance.gsutil upload \"release_artifacts/artifacts.zip.vsa.intoto.jsonl\"",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra/release_artifacts/artifacts.zip.vsa.intoto.jsonl@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra/release_artifacts/artifacts.zip.vsa.intoto.jsonl@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Verify artifact.zip provenance|gsutil upload \\\"release_artifacts/artifacts.zip.vsa.intoto.jsonl\\\"\": \"gs://flutter_infra/release_artifacts/artifacts.zip.vsa.intoto.jsonl\"}@@@"
     ]
   },
   {
diff --git a/recipe_modules/logs_util/examples/full.expected/basic.json b/recipe_modules/logs_util/examples/full.expected/basic.json
index e0ca9d5..49b5f65 100644
--- a/recipe_modules/logs_util/examples/full.expected/basic.json
+++ b/recipe_modules/logs_util/examples/full.expected/basic.json
@@ -60,7 +60,8 @@
     "name": "process logs.gsutil upload logs 00000000-0000-0000-0000-000000001337",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/00000000-0000-0000-0000-000000001337/mytaskname/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/00000000-0000-0000-0000-000000001337/mytaskname/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs 00000000-0000-0000-0000-000000001337\": \"gs://flutter_logs/flutter/00000000-0000-0000-0000-000000001337/mytaskname/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
@@ -130,7 +131,8 @@
     "name": "process logs (2).gsutil upload logs uuid-abc",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/uuid-abc/uniquetask/uuid-abc@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/uuid-abc/uniquetask/uuid-abc@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs (2)|gsutil upload logs uuid-abc\": \"gs://flutter_logs/flutter/uuid-abc/uniquetask/uuid-abc\"}@@@"
     ]
   },
   {
@@ -200,7 +202,8 @@
     "name": "store metrics.gsutil upload logs hash",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/hash/taskname/00000000-0000-0000-0000-00000000133a@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/hash/taskname/00000000-0000-0000-0000-00000000133a@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"store metrics|gsutil upload logs hash\": \"gs://flutter_logs/flutter/hash/taskname/00000000-0000-0000-0000-00000000133a\"}@@@"
     ]
   },
   {
diff --git a/recipe_modules/signing/examples/code_sign.expected/failing_keychain.json b/recipe_modules/signing/examples/code_sign.expected/failing_keychain.json
index 1ad4b1f..34abf55 100644
--- a/recipe_modules/signing/examples/code_sign.expected/failing_keychain.json
+++ b/recipe_modules/signing/examples/code_sign.expected/failing_keychain.json
@@ -427,7 +427,8 @@
     "infra_step": true,
     "name": "gsutil upload debug logs to 0/setup_keychain_logs_00000000-0000-0000-0000-000000001337.txt",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_tmp_logs/0/setup_keychain_logs_00000000-0000-0000-0000-000000001337.txt@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_tmp_logs/0/setup_keychain_logs_00000000-0000-0000-0000-000000001337.txt@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload debug logs to 0/setup_keychain_logs_00000000-0000-0000-0000-000000001337.txt\": \"gs://flutter_tmp_logs/0/setup_keychain_logs_00000000-0000-0000-0000-000000001337.txt\"}@@@"
     ]
   },
   {
@@ -810,7 +811,8 @@
     "infra_step": true,
     "name": "gsutil upload debug logs to 0/setup_keychain_logs_00000000-0000-0000-0000-00000000133a.txt",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_tmp_logs/0/setup_keychain_logs_00000000-0000-0000-0000-00000000133a.txt@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_tmp_logs/0/setup_keychain_logs_00000000-0000-0000-0000-00000000133a.txt@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload debug logs to 0/setup_keychain_logs_00000000-0000-0000-0000-00000000133a.txt\": \"gs://flutter_tmp_logs/0/setup_keychain_logs_00000000-0000-0000-0000-00000000133a.txt\"}@@@"
     ]
   },
   {
@@ -1193,7 +1195,8 @@
     "infra_step": true,
     "name": "gsutil upload debug logs to 0/setup_keychain_logs_00000000-0000-0000-0000-00000000133d.txt",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_tmp_logs/0/setup_keychain_logs_00000000-0000-0000-0000-00000000133d.txt@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_tmp_logs/0/setup_keychain_logs_00000000-0000-0000-0000-00000000133d.txt@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload debug logs to 0/setup_keychain_logs_00000000-0000-0000-0000-00000000133d.txt\": \"gs://flutter_tmp_logs/0/setup_keychain_logs_00000000-0000-0000-0000-00000000133d.txt\"}@@@"
     ]
   },
   {
@@ -1576,7 +1579,8 @@
     "infra_step": true,
     "name": "gsutil upload debug logs to 0/setup_keychain_logs_00000000-0000-0000-0000-000000001340.txt",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_tmp_logs/0/setup_keychain_logs_00000000-0000-0000-0000-000000001340.txt@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_tmp_logs/0/setup_keychain_logs_00000000-0000-0000-0000-000000001340.txt@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload debug logs to 0/setup_keychain_logs_00000000-0000-0000-0000-000000001340.txt\": \"gs://flutter_tmp_logs/0/setup_keychain_logs_00000000-0000-0000-0000-000000001340.txt\"}@@@"
     ]
   },
   {
@@ -1959,7 +1963,8 @@
     "infra_step": true,
     "name": "gsutil upload debug logs to 0/setup_keychain_logs_00000000-0000-0000-0000-000000001343.txt",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_tmp_logs/0/setup_keychain_logs_00000000-0000-0000-0000-000000001343.txt@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_tmp_logs/0/setup_keychain_logs_00000000-0000-0000-0000-000000001343.txt@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload debug logs to 0/setup_keychain_logs_00000000-0000-0000-0000-000000001343.txt\": \"gs://flutter_tmp_logs/0/setup_keychain_logs_00000000-0000-0000-0000-000000001343.txt\"}@@@"
     ]
   },
   {
diff --git a/recipe_modules/signing/examples/code_sign.expected/mac_require_signing.json b/recipe_modules/signing/examples/code_sign.expected/mac_require_signing.json
index d2f98a6..79d62fe 100644
--- a/recipe_modules/signing/examples/code_sign.expected/mac_require_signing.json
+++ b/recipe_modules/signing/examples/code_sign.expected/mac_require_signing.json
@@ -424,7 +424,8 @@
     "infra_step": true,
     "name": "gsutil upload debug logs to 0/setup_keychain_logs_00000000-0000-0000-0000-000000001337.txt",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_tmp_logs/0/setup_keychain_logs_00000000-0000-0000-0000-000000001337.txt@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_tmp_logs/0/setup_keychain_logs_00000000-0000-0000-0000-000000001337.txt@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload debug logs to 0/setup_keychain_logs_00000000-0000-0000-0000-000000001337.txt\": \"gs://flutter_tmp_logs/0/setup_keychain_logs_00000000-0000-0000-0000-000000001337.txt\"}@@@"
     ]
   },
   {
diff --git a/recipe_modules/signing/examples/code_sign.expected/no_signing_identity.json b/recipe_modules/signing/examples/code_sign.expected/no_signing_identity.json
index d2f98a6..79d62fe 100644
--- a/recipe_modules/signing/examples/code_sign.expected/no_signing_identity.json
+++ b/recipe_modules/signing/examples/code_sign.expected/no_signing_identity.json
@@ -424,7 +424,8 @@
     "infra_step": true,
     "name": "gsutil upload debug logs to 0/setup_keychain_logs_00000000-0000-0000-0000-000000001337.txt",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_tmp_logs/0/setup_keychain_logs_00000000-0000-0000-0000-000000001337.txt@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_tmp_logs/0/setup_keychain_logs_00000000-0000-0000-0000-000000001337.txt@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload debug logs to 0/setup_keychain_logs_00000000-0000-0000-0000-000000001337.txt\": \"gs://flutter_tmp_logs/0/setup_keychain_logs_00000000-0000-0000-0000-000000001337.txt\"}@@@"
     ]
   },
   {
diff --git a/recipes/devicelab/devicelab_drone.expected/basic.json b/recipes/devicelab/devicelab_drone.expected/basic.json
index 5f49622..282919d 100644
--- a/recipes/devicelab/devicelab_drone.expected/basic.json
+++ b/recipes/devicelab/devicelab_drone.expected/basic.json
@@ -669,7 +669,8 @@
     "name": "process logs.gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789\": \"gs://flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
diff --git a/recipes/devicelab/devicelab_drone.expected/emulator-test.json b/recipes/devicelab/devicelab_drone.expected/emulator-test.json
index 05e49d3..f565bcf 100644
--- a/recipes/devicelab/devicelab_drone.expected/emulator-test.json
+++ b/recipes/devicelab/devicelab_drone.expected/emulator-test.json
@@ -1032,7 +1032,8 @@
     "name": "process logs.gsutil upload logs 00000000-0000-0000-0000-000000001337",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/00000000-0000-0000-0000-000000001337/abc/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/00000000-0000-0000-0000-000000001337/abc/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs 00000000-0000-0000-0000-000000001337\": \"gs://flutter_logs/flutter/00000000-0000-0000-0000-000000001337/abc/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
diff --git a/recipes/devicelab/devicelab_drone.expected/linux-xvfb.json b/recipes/devicelab/devicelab_drone.expected/linux-xvfb.json
index 5f1891d..93bd838 100644
--- a/recipes/devicelab/devicelab_drone.expected/linux-xvfb.json
+++ b/recipes/devicelab/devicelab_drone.expected/linux-xvfb.json
@@ -670,7 +670,8 @@
     "name": "process logs.gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789\": \"gs://flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
diff --git a/recipes/devicelab/devicelab_drone.expected/local-engine.json b/recipes/devicelab/devicelab_drone.expected/local-engine.json
index fc57509..3e6e4d3 100644
--- a/recipes/devicelab/devicelab_drone.expected/local-engine.json
+++ b/recipes/devicelab/devicelab_drone.expected/local-engine.json
@@ -830,7 +830,8 @@
     "name": "process logs.gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789\": \"gs://flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
diff --git a/recipes/devicelab/devicelab_drone.expected/no-upload-metrics-linux-staging.json b/recipes/devicelab/devicelab_drone.expected/no-upload-metrics-linux-staging.json
index df8e040..29ef1c4 100644
--- a/recipes/devicelab/devicelab_drone.expected/no-upload-metrics-linux-staging.json
+++ b/recipes/devicelab/devicelab_drone.expected/no-upload-metrics-linux-staging.json
@@ -669,7 +669,8 @@
     "name": "process logs.gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789\": \"gs://flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
diff --git a/recipes/devicelab/devicelab_drone.expected/post-submit.json b/recipes/devicelab/devicelab_drone.expected/post-submit.json
index 04a6246..f52470b 100644
--- a/recipes/devicelab/devicelab_drone.expected/post-submit.json
+++ b/recipes/devicelab/devicelab_drone.expected/post-submit.json
@@ -669,7 +669,8 @@
     "name": "process logs.gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789\": \"gs://flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
diff --git a/recipes/devicelab/devicelab_drone.expected/upload-metrics-mac-with-failures.json b/recipes/devicelab/devicelab_drone.expected/upload-metrics-mac-with-failures.json
index 9fecae0..e7a05c9 100644
--- a/recipes/devicelab/devicelab_drone.expected/upload-metrics-mac-with-failures.json
+++ b/recipes/devicelab/devicelab_drone.expected/upload-metrics-mac-with-failures.json
@@ -873,7 +873,8 @@
     "name": "process logs.gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789\": \"gs://flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
diff --git a/recipes/devicelab/devicelab_drone.expected/upload-metrics-mac.json b/recipes/devicelab/devicelab_drone.expected/upload-metrics-mac.json
index d4529d5..b48003b 100644
--- a/recipes/devicelab/devicelab_drone.expected/upload-metrics-mac.json
+++ b/recipes/devicelab/devicelab_drone.expected/upload-metrics-mac.json
@@ -873,7 +873,8 @@
     "name": "process logs.gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789\": \"gs://flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
diff --git a/recipes/devicelab/devicelab_drone.expected/xcode-chromium-mac.json b/recipes/devicelab/devicelab_drone.expected/xcode-chromium-mac.json
index 09e17a9..f1f7f53 100644
--- a/recipes/devicelab/devicelab_drone.expected/xcode-chromium-mac.json
+++ b/recipes/devicelab/devicelab_drone.expected/xcode-chromium-mac.json
@@ -873,7 +873,8 @@
     "name": "process logs.gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789\": \"gs://flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
diff --git a/recipes/devicelab/devicelab_drone.expected/xcode-devicelab-timeout.json b/recipes/devicelab/devicelab_drone.expected/xcode-devicelab-timeout.json
index c8e690b..5f799ef 100644
--- a/recipes/devicelab/devicelab_drone.expected/xcode-devicelab-timeout.json
+++ b/recipes/devicelab/devicelab_drone.expected/xcode-devicelab-timeout.json
@@ -2648,7 +2648,8 @@
     "name": "process logs.gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789\": \"gs://flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
diff --git a/recipes/devicelab/devicelab_drone.expected/xcode-devicelab.json b/recipes/devicelab/devicelab_drone.expected/xcode-devicelab.json
index c60c2fa..4d374d5 100644
--- a/recipes/devicelab/devicelab_drone.expected/xcode-devicelab.json
+++ b/recipes/devicelab/devicelab_drone.expected/xcode-devicelab.json
@@ -2654,7 +2654,8 @@
     "name": "process logs.gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789\": \"gs://flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
diff --git a/recipes/devicelab/devicelab_drone_build_test.expected/artifact does not exist.json b/recipes/devicelab/devicelab_drone_build_test.expected/artifact does not exist.json
index 65fa9f0..9e7dc94 100644
--- a/recipes/devicelab/devicelab_drone_build_test.expected/artifact does not exist.json
+++ b/recipes/devicelab/devicelab_drone_build_test.expected/artifact does not exist.json
@@ -887,7 +887,8 @@
     },
     "name": "gsutil upload artifacts",
     "~followup_annotations": [
-      "@@@STEP_LINK@artifacts@https://console.cloud.google.com/storage/browser/flutter_devicelab/flutter/ci/2d72510e447ab60a9728aeea2362d8be2cbd7789/def@@@"
+      "@@@STEP_LINK@artifacts@https://console.cloud.google.com/storage/browser/flutter_devicelab/flutter/ci/2d72510e447ab60a9728aeea2362d8be2cbd7789/def@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload artifacts\": \"gs://flutter_devicelab/flutter/ci/2d72510e447ab60a9728aeea2362d8be2cbd7789/def\"}@@@"
     ]
   },
   {
diff --git a/recipes/devicelab/devicelab_drone_build_test.expected/local-engine.json b/recipes/devicelab/devicelab_drone_build_test.expected/local-engine.json
index 6fda80e..f74b5a6 100644
--- a/recipes/devicelab/devicelab_drone_build_test.expected/local-engine.json
+++ b/recipes/devicelab/devicelab_drone_build_test.expected/local-engine.json
@@ -1075,7 +1075,8 @@
     },
     "name": "gsutil upload artifacts",
     "~followup_annotations": [
-      "@@@STEP_LINK@artifacts@https://console.cloud.google.com/storage/browser/flutter_devicelab/flutter/ci/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc@@@"
+      "@@@STEP_LINK@artifacts@https://console.cloud.google.com/storage/browser/flutter_devicelab/flutter/ci/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload artifacts\": \"gs://flutter_devicelab/flutter/ci/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc\"}@@@"
     ]
   },
   {
diff --git a/recipes/devicelab/devicelab_drone_build_test.expected/xcode-mac.json b/recipes/devicelab/devicelab_drone_build_test.expected/xcode-mac.json
index 83f529d..32ec560 100644
--- a/recipes/devicelab/devicelab_drone_build_test.expected/xcode-mac.json
+++ b/recipes/devicelab/devicelab_drone_build_test.expected/xcode-mac.json
@@ -2721,7 +2721,8 @@
     },
     "name": "gsutil upload artifacts",
     "~followup_annotations": [
-      "@@@STEP_LINK@artifacts@https://console.cloud.google.com/storage/browser/flutter_devicelab/flutter/ci/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc@@@"
+      "@@@STEP_LINK@artifacts@https://console.cloud.google.com/storage/browser/flutter_devicelab/flutter/ci/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload artifacts\": \"gs://flutter_devicelab/flutter/ci/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc\"}@@@"
     ]
   },
   {
diff --git a/recipes/devicelab/devicelab_test_drone.expected/artifact-exists.json b/recipes/devicelab/devicelab_test_drone.expected/artifact-exists.json
index 3893197..c4c0e12 100644
--- a/recipes/devicelab/devicelab_test_drone.expected/artifact-exists.json
+++ b/recipes/devicelab/devicelab_test_drone.expected/artifact-exists.json
@@ -464,7 +464,8 @@
     "name": "process logs.gsutil upload logs 00000000-0000-0000-0000-000000001337",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/00000000-0000-0000-0000-000000001337/abc/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/00000000-0000-0000-0000-000000001337/abc/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs 00000000-0000-0000-0000-000000001337\": \"gs://flutter_logs/flutter/00000000-0000-0000-0000-000000001337/abc/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
diff --git a/recipes/devicelab/devicelab_test_drone.expected/basic.json b/recipes/devicelab/devicelab_test_drone.expected/basic.json
index 95a09b8..a6957c6 100644
--- a/recipes/devicelab/devicelab_test_drone.expected/basic.json
+++ b/recipes/devicelab/devicelab_test_drone.expected/basic.json
@@ -712,7 +712,8 @@
     "name": "process logs.gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789\": \"gs://flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
diff --git a/recipes/devicelab/devicelab_test_drone.expected/experimental.json b/recipes/devicelab/devicelab_test_drone.expected/experimental.json
index c841074..bfe4d81 100644
--- a/recipes/devicelab/devicelab_test_drone.expected/experimental.json
+++ b/recipes/devicelab/devicelab_test_drone.expected/experimental.json
@@ -712,7 +712,8 @@
     "name": "process logs.gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789\": \"gs://flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
diff --git a/recipes/devicelab/devicelab_test_drone.expected/local-engine.json b/recipes/devicelab/devicelab_test_drone.expected/local-engine.json
index 3a24e89..df48cec 100644
--- a/recipes/devicelab/devicelab_test_drone.expected/local-engine.json
+++ b/recipes/devicelab/devicelab_test_drone.expected/local-engine.json
@@ -868,7 +868,8 @@
     "name": "process logs.gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789\": \"gs://flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
diff --git a/recipes/devicelab/devicelab_test_drone.expected/mac.json b/recipes/devicelab/devicelab_test_drone.expected/mac.json
index acaad94..d4069cc 100644
--- a/recipes/devicelab/devicelab_test_drone.expected/mac.json
+++ b/recipes/devicelab/devicelab_test_drone.expected/mac.json
@@ -1918,7 +1918,8 @@
     "name": "process logs.gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789\": \"gs://flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
diff --git a/recipes/devicelab/devicelab_test_drone.expected/no-upload-metrics-linux-staging.json b/recipes/devicelab/devicelab_test_drone.expected/no-upload-metrics-linux-staging.json
index 14bcf9f..b06f40f 100644
--- a/recipes/devicelab/devicelab_test_drone.expected/no-upload-metrics-linux-staging.json
+++ b/recipes/devicelab/devicelab_test_drone.expected/no-upload-metrics-linux-staging.json
@@ -703,7 +703,8 @@
     "name": "process logs.gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789\": \"gs://flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/abc/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/builder.expected/basic.json b/recipes/engine_v2/builder.expected/basic.json
index 269ba29..4324908 100644
--- a/recipes/engine_v2/builder.expected/basic.json
+++ b/recipes/engine_v2/builder.expected/basic.json
@@ -2359,7 +2359,8 @@
     "name": "process logs.gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/mytest/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/mytest/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\": \"gs://flutter_logs/flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/mytest/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
@@ -2861,7 +2862,8 @@
     },
     "name": "gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip to gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip to gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
@@ -3047,7 +3049,8 @@
     },
     "name": "gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar\": \"gs://download.flutter.io/\"}@@@"
     ]
   },
   {
@@ -3233,7 +3236,8 @@
     },
     "name": "gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom\": \"gs://download.flutter.io/\"}@@@"
     ]
   },
   {
@@ -3434,7 +3438,8 @@
     "name": "process logs (2).gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-00000000133a@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-00000000133a@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs (2)|gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\": \"gs://flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-00000000133a\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/builder.expected/config_file.json b/recipes/engine_v2/builder.expected/config_file.json
index 55c9a05..dd89107 100644
--- a/recipes/engine_v2/builder.expected/config_file.json
+++ b/recipes/engine_v2/builder.expected/config_file.json
@@ -832,7 +832,8 @@
     "name": "process logs.gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\": \"gs://flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/builder.expected/content_hash.json b/recipes/engine_v2/builder.expected/content_hash.json
index 5c7c42c..08eeab6 100644
--- a/recipes/engine_v2/builder.expected/content_hash.json
+++ b/recipes/engine_v2/builder.expected/content_hash.json
@@ -2393,7 +2393,8 @@
     "name": "process logs.gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/mytest/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/mytest/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\": \"gs://flutter_logs/flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/mytest/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
@@ -2895,7 +2896,8 @@
     },
     "name": "gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip to gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip to gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
@@ -3081,7 +3083,8 @@
     },
     "name": "gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip to gs://flutter_infra_release/flutter/CONTENT_HASH/android-x86-jit-release/artifacts.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip to gs://flutter_infra_release/flutter/CONTENT_HASH/android-x86-jit-release/artifacts.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
@@ -3267,7 +3270,8 @@
     },
     "name": "gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar\": \"gs://download.flutter.io/\"}@@@"
     ]
   },
   {
@@ -3453,7 +3457,8 @@
     },
     "name": "gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-CONTENT_HASH/x86_debug-1.0.0-CONTENT_HASH.jar",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-CONTENT_HASH/x86_debug-1.0.0-CONTENT_HASH.jar\": \"gs://download.flutter.io/\"}@@@"
     ]
   },
   {
@@ -3639,7 +3644,8 @@
     },
     "name": "gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom\": \"gs://download.flutter.io/\"}@@@"
     ]
   },
   {
@@ -3825,7 +3831,8 @@
     },
     "name": "gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-CONTENT_HASH/x86_debug-1.0.0-CONTENT_HASH.pom",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-CONTENT_HASH/x86_debug-1.0.0-CONTENT_HASH.pom\": \"gs://download.flutter.io/\"}@@@"
     ]
   },
   {
@@ -4026,7 +4033,8 @@
     "name": "process logs (2).gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-00000000133a@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-00000000133a@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs (2)|gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\": \"gs://flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-00000000133a\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/builder.expected/content_hash_missing.json b/recipes/engine_v2/builder.expected/content_hash_missing.json
index 774094d..83df095 100644
--- a/recipes/engine_v2/builder.expected/content_hash_missing.json
+++ b/recipes/engine_v2/builder.expected/content_hash_missing.json
@@ -2393,7 +2393,8 @@
     "name": "process logs.gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/mytest/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/mytest/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\": \"gs://flutter_logs/flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/mytest/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
@@ -2895,7 +2896,8 @@
     },
     "name": "gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip to gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip to gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
@@ -3081,7 +3083,8 @@
     },
     "name": "gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar\": \"gs://download.flutter.io/\"}@@@"
     ]
   },
   {
@@ -3267,7 +3270,8 @@
     },
     "name": "gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom\": \"gs://download.flutter.io/\"}@@@"
     ]
   },
   {
@@ -3468,7 +3472,8 @@
     "name": "process logs (2).gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-00000000133a@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-00000000133a@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs (2)|gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\": \"gs://flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-00000000133a\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/builder.expected/content_hash_monorepo_ignored.json b/recipes/engine_v2/builder.expected/content_hash_monorepo_ignored.json
index 440d60f..1f00387 100644
--- a/recipes/engine_v2/builder.expected/content_hash_monorepo_ignored.json
+++ b/recipes/engine_v2/builder.expected/content_hash_monorepo_ignored.json
@@ -819,7 +819,8 @@
     "name": "process logs.gsutil upload logs aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/builder/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/builder/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\": \"gs://flutter_logs/engine/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/builder/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/builder.expected/dart-internal-flutter-success.json b/recipes/engine_v2/builder.expected/dart-internal-flutter-success.json
index 968f48e..3b5b853 100644
--- a/recipes/engine_v2/builder.expected/dart-internal-flutter-success.json
+++ b/recipes/engine_v2/builder.expected/dart-internal-flutter-success.json
@@ -1118,7 +1118,8 @@
     "name": "process logs.gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/mytest/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/mytest/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789\": \"gs://flutter_logs/flutter/2d72510e447ab60a9728aeea2362d8be2cbd7789/mytest/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
@@ -1675,7 +1676,8 @@
     },
     "name": "gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip to gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip to gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
@@ -1980,7 +1982,8 @@
     },
     "name": "gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar\": \"gs://download.flutter.io/\"}@@@"
     ]
   },
   {
@@ -2285,7 +2288,8 @@
     },
     "name": "gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom\": \"gs://download.flutter.io/\"}@@@"
     ]
   },
   {
@@ -3350,7 +3354,8 @@
     "name": "Verify artifacts.zip provenance.gsutil upload \"flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip.vsa.intoto.jsonl\"",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip.vsa.intoto.jsonl@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip.vsa.intoto.jsonl@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Verify artifacts.zip provenance|gsutil upload \\\"flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip.vsa.intoto.jsonl\\\"\": \"gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip.vsa.intoto.jsonl\"}@@@"
     ]
   },
   {
@@ -4121,7 +4126,8 @@
     "name": "Verify x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar provenance.gsutil upload \"io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar.vsa.intoto.jsonl\"",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar.vsa.intoto.jsonl@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar.vsa.intoto.jsonl@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Verify x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar provenance|gsutil upload \\\"io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar.vsa.intoto.jsonl\\\"\": \"gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar.vsa.intoto.jsonl\"}@@@"
     ]
   },
   {
@@ -4892,7 +4898,8 @@
     "name": "Verify x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom provenance.gsutil upload \"io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom.vsa.intoto.jsonl\"",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom.vsa.intoto.jsonl@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom.vsa.intoto.jsonl@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Verify x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom provenance|gsutil upload \\\"io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom.vsa.intoto.jsonl\\\"\": \"gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom.vsa.intoto.jsonl\"}@@@"
     ]
   },
   {
@@ -5093,7 +5100,8 @@
     "name": "process logs (2).gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/2d72510e447ab60a9728aeea2362d8be2cbd7789/builder/00000000-0000-0000-0000-00000000133a@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/2d72510e447ab60a9728aeea2362d8be2cbd7789/builder/00000000-0000-0000-0000-00000000133a@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs (2)|gsutil upload logs 2d72510e447ab60a9728aeea2362d8be2cbd7789\": \"gs://flutter_logs/engine/2d72510e447ab60a9728aeea2362d8be2cbd7789/builder/00000000-0000-0000-0000-00000000133a\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/builder.expected/mac_main.json b/recipes/engine_v2/builder.expected/mac_main.json
index 5f20ae9..04628b4 100644
--- a/recipes/engine_v2/builder.expected/mac_main.json
+++ b/recipes/engine_v2/builder.expected/mac_main.json
@@ -2442,7 +2442,8 @@
     "name": "process logs.gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/mytest/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/mytest/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\": \"gs://flutter_logs/flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/mytest/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
@@ -2944,7 +2945,8 @@
     },
     "name": "gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip to gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip to gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
@@ -3130,7 +3132,8 @@
     },
     "name": "gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar\": \"gs://download.flutter.io/\"}@@@"
     ]
   },
   {
@@ -3316,7 +3319,8 @@
     },
     "name": "gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom\": \"gs://download.flutter.io/\"}@@@"
     ]
   },
   {
@@ -3517,7 +3521,8 @@
     "name": "process logs (2).gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-00000000133a@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-00000000133a@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs (2)|gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\": \"gs://flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-00000000133a\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/builder.expected/mac_release_candidate.json b/recipes/engine_v2/builder.expected/mac_release_candidate.json
index 02e82bc..bd1d717 100644
--- a/recipes/engine_v2/builder.expected/mac_release_candidate.json
+++ b/recipes/engine_v2/builder.expected/mac_release_candidate.json
@@ -2442,7 +2442,8 @@
     "name": "process logs.gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/mytest/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/mytest/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\": \"gs://flutter_logs/flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/mytest/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
@@ -4226,7 +4227,8 @@
     },
     "name": "gsutil upload debug logs to 8945511751514863184/setup_keychain_logs_00000000-0000-0000-0000-00000000133a.txt",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_tmp_logs/8945511751514863184/setup_keychain_logs_00000000-0000-0000-0000-00000000133a.txt@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_tmp_logs/8945511751514863184/setup_keychain_logs_00000000-0000-0000-0000-00000000133a.txt@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload debug logs to 8945511751514863184/setup_keychain_logs_00000000-0000-0000-0000-00000000133a.txt\": \"gs://flutter_tmp_logs/8945511751514863184/setup_keychain_logs_00000000-0000-0000-0000-00000000133a.txt\"}@@@"
     ]
   },
   {
@@ -4531,7 +4533,8 @@
     },
     "name": "gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip to gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip to gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
@@ -4717,7 +4720,8 @@
     },
     "name": "gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar\": \"gs://download.flutter.io/\"}@@@"
     ]
   },
   {
@@ -4903,7 +4907,8 @@
     },
     "name": "gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom\": \"gs://download.flutter.io/\"}@@@"
     ]
   },
   {
@@ -5104,7 +5109,8 @@
     "name": "process logs (2).gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-00000000133d@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-00000000133d@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs (2)|gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\": \"gs://flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-00000000133d\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/builder.expected/monorepo.json b/recipes/engine_v2/builder.expected/monorepo.json
index aca2fd0..e70cea6 100644
--- a/recipes/engine_v2/builder.expected/monorepo.json
+++ b/recipes/engine_v2/builder.expected/monorepo.json
@@ -2285,7 +2285,8 @@
     "name": "process logs.gsutil upload logs aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/mytest/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/mytest/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\": \"gs://flutter_logs/flutter/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/mytest/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
@@ -2715,7 +2716,8 @@
     },
     "name": "gsutil Upload [CACHE]/builder/flutter/engine/src/out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip to gs://flutter_archives_v2/monorepo/123/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CACHE]/builder/flutter/engine/src/out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip to gs://flutter_archives_v2/monorepo/123/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip\": \"gs://flutter_archives_v2/\"}@@@"
     ]
   },
   {
@@ -2895,7 +2897,8 @@
     },
     "name": "gsutil Upload [CACHE]/builder/flutter/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io to gs://flutter_archives_v2/monorepo/123//download.flutter.io",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CACHE]/builder/flutter/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io to gs://flutter_archives_v2/monorepo/123//download.flutter.io\": \"gs://flutter_archives_v2/\"}@@@"
     ]
   },
   {
@@ -3096,7 +3099,8 @@
     "name": "process logs (2).gsutil upload logs aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/builder/00000000-0000-0000-0000-00000000133a@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/builder/00000000-0000-0000-0000-00000000133a@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs (2)|gsutil upload logs aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\": \"gs://flutter_logs/engine/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/builder/00000000-0000-0000-0000-00000000133a\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/builder.expected/monorepo_tryjob.json b/recipes/engine_v2/builder.expected/monorepo_tryjob.json
index d609631..14ccae3 100644
--- a/recipes/engine_v2/builder.expected/monorepo_tryjob.json
+++ b/recipes/engine_v2/builder.expected/monorepo_tryjob.json
@@ -2380,7 +2380,8 @@
     "name": "process logs.gsutil upload logs 00000000-0000-0000-0000-000000001337",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/00000000-0000-0000-0000-000000001337/mytest/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/00000000-0000-0000-0000-000000001337/mytest/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs 00000000-0000-0000-0000-000000001337\": \"gs://flutter_logs/flutter/00000000-0000-0000-0000-000000001337/mytest/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
@@ -2764,7 +2765,8 @@
     },
     "name": "gsutil Upload [CACHE]/builder/flutter/engine/src/out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip to gs://flutter_archives_v2/monorepo_try/8945511751514863184/flutter_infra_release/flutter/8945511751514863184/android-x86-jit-release/artifacts.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CACHE]/builder/flutter/engine/src/out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip to gs://flutter_archives_v2/monorepo_try/8945511751514863184/flutter_infra_release/flutter/8945511751514863184/android-x86-jit-release/artifacts.zip\": \"gs://flutter_archives_v2/\"}@@@"
     ]
   },
   {
@@ -2944,7 +2946,8 @@
     },
     "name": "gsutil Upload [CACHE]/builder/flutter/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io to gs://flutter_archives_v2/monorepo_try/8945511751514863184//download.flutter.io",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CACHE]/builder/flutter/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io to gs://flutter_archives_v2/monorepo_try/8945511751514863184//download.flutter.io\": \"gs://flutter_archives_v2/\"}@@@"
     ]
   },
   {
@@ -3145,7 +3148,8 @@
     "name": "process logs (2).gsutil upload logs 00000000-0000-0000-0000-00000000133a",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/00000000-0000-0000-0000-00000000133a/builder/00000000-0000-0000-0000-00000000133a@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/00000000-0000-0000-0000-00000000133a/builder/00000000-0000-0000-0000-00000000133a@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs (2)|gsutil upload logs 00000000-0000-0000-0000-00000000133a\": \"gs://flutter_logs/engine/00000000-0000-0000-0000-00000000133a/builder/00000000-0000-0000-0000-00000000133a\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/builder.expected/test_if_not_skip_postsubmit.json b/recipes/engine_v2/builder.expected/test_if_not_skip_postsubmit.json
index 737b548..76ba158 100644
--- a/recipes/engine_v2/builder.expected/test_if_not_skip_postsubmit.json
+++ b/recipes/engine_v2/builder.expected/test_if_not_skip_postsubmit.json
@@ -784,7 +784,8 @@
     "name": "process logs.gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/mytest/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/mytest/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\": \"gs://flutter_logs/flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/mytest/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
@@ -1181,7 +1182,8 @@
     "name": "process logs (2).gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-00000000133a@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-00000000133a@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs (2)|gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\": \"gs://flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-00000000133a\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/builder.expected/test_if_not_skip_presubmit.json b/recipes/engine_v2/builder.expected/test_if_not_skip_presubmit.json
index 9ea74d3..8cdefb2 100644
--- a/recipes/engine_v2/builder.expected/test_if_not_skip_presubmit.json
+++ b/recipes/engine_v2/builder.expected/test_if_not_skip_presubmit.json
@@ -784,7 +784,8 @@
     "name": "process logs.gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/mytest/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/mytest/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\": \"gs://flutter_logs/flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/mytest/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
@@ -1181,7 +1182,8 @@
     "name": "process logs (2).gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-00000000133a@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-00000000133a@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs (2)|gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\": \"gs://flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-00000000133a\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/builder.expected/test_if_skip_postsubmit.json b/recipes/engine_v2/builder.expected/test_if_skip_postsubmit.json
index a3e96cc..0183837 100644
--- a/recipes/engine_v2/builder.expected/test_if_skip_postsubmit.json
+++ b/recipes/engine_v2/builder.expected/test_if_skip_postsubmit.json
@@ -606,7 +606,8 @@
     "name": "process logs.gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\": \"gs://flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/builder.expected/test_if_skip_presubmit.json b/recipes/engine_v2/builder.expected/test_if_skip_presubmit.json
index a5f9187..da09c26 100644
--- a/recipes/engine_v2/builder.expected/test_if_skip_presubmit.json
+++ b/recipes/engine_v2/builder.expected/test_if_skip_presubmit.json
@@ -647,7 +647,8 @@
     "name": "process logs.gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\": \"gs://flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/builder.expected/upload_logs.json b/recipes/engine_v2/builder.expected/upload_logs.json
index 625f5a9..3b6cee2 100644
--- a/recipes/engine_v2/builder.expected/upload_logs.json
+++ b/recipes/engine_v2/builder.expected/upload_logs.json
@@ -2442,7 +2442,8 @@
     "name": "process logs.gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/test_arm64/uuid-1234@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/test_arm64/uuid-1234@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\": \"gs://flutter_logs/flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/test_arm64/uuid-1234\"}@@@"
     ]
   },
   {
@@ -2944,7 +2945,8 @@
     },
     "name": "gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip to gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/android-x86-jit-release/artifacts.zip to gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/android-x86-jit-release/artifacts.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
@@ -3130,7 +3132,8 @@
     },
     "name": "gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.jar\": \"gs://download.flutter.io/\"}@@@"
     ]
   },
   {
@@ -3316,7 +3319,8 @@
     },
     "name": "gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/download.flutter.io/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CACHE]/builder/engine/src/out/android_jit_release_x86/zip_archives/download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom to gs://download.flutter.io/io/flutter/x86_debug/1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584/x86_debug-1.0.0-0005149dca9b248663adcde4bdd7c6c915a76584.pom\": \"gs://download.flutter.io/\"}@@@"
     ]
   },
   {
@@ -3517,7 +3521,8 @@
     "name": "process logs (2).gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs (2)|gsutil upload logs abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd\": \"gs://flutter_logs/engine/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/builder/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/cache.expected/basic.json b/recipes/engine_v2/cache.expected/basic.json
index 9d31be4..93af0db 100644
--- a/recipes/engine_v2/cache.expected/basic.json
+++ b/recipes/engine_v2/cache.expected/basic.json
@@ -404,7 +404,8 @@
     "infra_step": true,
     "name": "gsutil Upload [CLEANUP]/None-linux.json to gs://flutter_archives_v2/caches/None-linux.json",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/caches/None-linux.json@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/caches/None-linux.json@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [CLEANUP]/None-linux.json to gs://flutter_archives_v2/caches/None-linux.json\": \"gs://flutter_archives_v2/caches/None-linux.json\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/engine_v2.expected/basic_mac.json b/recipes/engine_v2/engine_v2.expected/basic_mac.json
index ceddaa1..4f7179a 100644
--- a/recipes/engine_v2/engine_v2.expected/basic_mac.json
+++ b/recipes/engine_v2/engine_v2.expected/basic_mac.json
@@ -944,7 +944,8 @@
     "name": "Global generators.gsutil Upload [CACHE]/builder/engine/src/a/b/c.txt to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/bucket/c.txt",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Global generators|gsutil Upload [CACHE]/builder/engine/src/a/b/c.txt to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/bucket/c.txt\": \"gs://flutter_archives_v2/\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/engine_v2.expected/basic_mac_dart_internal.json b/recipes/engine_v2/engine_v2.expected/basic_mac_dart_internal.json
index 9cd3da8..c433633 100644
--- a/recipes/engine_v2/engine_v2.expected/basic_mac_dart_internal.json
+++ b/recipes/engine_v2/engine_v2.expected/basic_mac_dart_internal.json
@@ -1063,7 +1063,8 @@
     "name": "Global generators.gsutil Upload [CACHE]/builder/engine/src/a/b/c.txt to gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/bucket/c.txt",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Global generators|gsutil Upload [CACHE]/builder/engine/src/a/b/c.txt to gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/bucket/c.txt\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/engine_v2.expected/basic_mac_fusion.json b/recipes/engine_v2/engine_v2.expected/basic_mac_fusion.json
index e4e1ac5..ce40db7 100644
--- a/recipes/engine_v2/engine_v2.expected/basic_mac_fusion.json
+++ b/recipes/engine_v2/engine_v2.expected/basic_mac_fusion.json
@@ -1169,7 +1169,8 @@
     "name": "Global generators.gsutil Upload [CACHE]/builder/engine/src/a/b/c.txt to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/bucket/c.txt",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Global generators|gsutil Upload [CACHE]/builder/engine/src/a/b/c.txt to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/bucket/c.txt\": \"gs://flutter_archives_v2/\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/engine_v2.expected/basic_mac_try.json b/recipes/engine_v2/engine_v2.expected/basic_mac_try.json
index 4676491..481f888 100644
--- a/recipes/engine_v2/engine_v2.expected/basic_mac_try.json
+++ b/recipes/engine_v2/engine_v2.expected/basic_mac_try.json
@@ -944,7 +944,8 @@
     "name": "Global generators.gsutil Upload [CACHE]/builder/engine/src/a/b/c.txt to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/bucket/c.txt",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Global generators|gsutil Upload [CACHE]/builder/engine/src/a/b/c.txt to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/bucket/c.txt\": \"gs://flutter_archives_v2/\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/engine_v2.expected/codesign_release_branch.json b/recipes/engine_v2/engine_v2.expected/codesign_release_branch.json
index 1e516d6..e55fcbc 100644
--- a/recipes/engine_v2/engine_v2.expected/codesign_release_branch.json
+++ b/recipes/engine_v2/engine_v2.expected/codesign_release_branch.json
@@ -2369,7 +2369,8 @@
     "name": "Global generators.gsutil upload debug logs to 8945511751514863184/setup_keychain_logs_00000000-0000-0000-0000-00000000133a.txt",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_tmp_logs/8945511751514863184/setup_keychain_logs_00000000-0000-0000-0000-00000000133a.txt@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_tmp_logs/8945511751514863184/setup_keychain_logs_00000000-0000-0000-0000-00000000133a.txt@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Global generators|gsutil upload debug logs to 8945511751514863184/setup_keychain_logs_00000000-0000-0000-0000-00000000133a.txt\": \"gs://flutter_tmp_logs/8945511751514863184/setup_keychain_logs_00000000-0000-0000-0000-00000000133a.txt\"}@@@"
     ]
   },
   {
@@ -2560,7 +2561,8 @@
     "name": "Global generators.gsutil Upload [CACHE]/builder/engine/src/a/b/c.txt to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/bucket/c.txt",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Global generators|gsutil Upload [CACHE]/builder/engine/src/a/b/c.txt to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/bucket/c.txt\": \"gs://flutter_archives_v2/\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/engine_v2.expected/content_hash.json b/recipes/engine_v2/engine_v2.expected/content_hash.json
index 04897a0..15c2efa 100644
--- a/recipes/engine_v2/engine_v2.expected/content_hash.json
+++ b/recipes/engine_v2/engine_v2.expected/content_hash.json
@@ -874,7 +874,8 @@
     "name": "Global generators.gsutil Upload [CACHE]/builder/engine/src/a/b/c.txt to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/bucket/c.txt",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Global generators|gsutil Upload [CACHE]/builder/engine/src/a/b/c.txt to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/bucket/c.txt\": \"gs://flutter_archives_v2/\"}@@@"
     ]
   },
   {
@@ -965,7 +966,8 @@
     "name": "Global generators.gsutil Upload [CACHE]/builder/engine/src/a/b/c.txt to gs://flutter_archives_v2/flutter_infra_release/flutter/CONTENT_HASH/bucket/c.txt",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Global generators|gsutil Upload [CACHE]/builder/engine/src/a/b/c.txt to gs://flutter_archives_v2/flutter_infra_release/flutter/CONTENT_HASH/bucket/c.txt\": \"gs://flutter_archives_v2/\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/engine_v2.expected/content_hash_missing.json b/recipes/engine_v2/engine_v2.expected/content_hash_missing.json
index 231ebff..3374f29 100644
--- a/recipes/engine_v2/engine_v2.expected/content_hash_missing.json
+++ b/recipes/engine_v2/engine_v2.expected/content_hash_missing.json
@@ -873,7 +873,8 @@
     "name": "Global generators.gsutil Upload [CACHE]/builder/engine/src/a/b/c.txt to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/bucket/c.txt",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Global generators|gsutil Upload [CACHE]/builder/engine/src/a/b/c.txt to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/bucket/c.txt\": \"gs://flutter_archives_v2/\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/engine_v2.expected/do_not_codesign_release_branch_on_try_bot.json b/recipes/engine_v2/engine_v2.expected/do_not_codesign_release_branch_on_try_bot.json
index eab5a9f..32145fa 100644
--- a/recipes/engine_v2/engine_v2.expected/do_not_codesign_release_branch_on_try_bot.json
+++ b/recipes/engine_v2/engine_v2.expected/do_not_codesign_release_branch_on_try_bot.json
@@ -1339,7 +1339,8 @@
     "name": "Global generators.gsutil Upload [CACHE]/builder/engine/src/a/b/c.txt to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/bucket/c.txt",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Global generators|gsutil Upload [CACHE]/builder/engine/src/a/b/c.txt to gs://flutter_archives_v2/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/bucket/c.txt\": \"gs://flutter_archives_v2/\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/engine_v2.expected/monorepo_config_file_tests.json b/recipes/engine_v2/engine_v2.expected/monorepo_config_file_tests.json
index 2e5325d..d52c378 100644
--- a/recipes/engine_v2/engine_v2.expected/monorepo_config_file_tests.json
+++ b/recipes/engine_v2/engine_v2.expected/monorepo_config_file_tests.json
@@ -1109,7 +1109,8 @@
     "name": "Global generators.gsutil Upload [CACHE]/builder/flutter/engine/src/a/b/c.txt to gs://flutter_archives_v2/monorepo/123/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/bucket/c.txt",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_archives_v2/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Global generators|gsutil Upload [CACHE]/builder/flutter/engine/src/a/b/c.txt to gs://flutter_archives_v2/monorepo/123/flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/bucket/c.txt\": \"gs://flutter_archives_v2/\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/tester.expected/engine.json b/recipes/engine_v2/tester.expected/engine.json
index 9009d3f..c4c58ef 100644
--- a/recipes/engine_v2/tester.expected/engine.json
+++ b/recipes/engine_v2/tester.expected/engine.json
@@ -305,7 +305,8 @@
     },
     "name": "gsutil copy Material fonts",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/81123491/flutter_infra_release/flutter/fonts/12345/fonts.zip@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/81123491/flutter_infra_release/flutter/fonts/12345/fonts.zip@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil copy Material fonts\": \"gs://flutter_archives_v2/81123491/flutter_infra_release/flutter/fonts/12345/fonts.zip\"}@@@"
     ]
   },
   {
@@ -365,7 +366,8 @@
     },
     "name": "gsutil copy Gradle wrapper",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/81123491/flutter_infra_release/gradle-wrapper/12345/gradle-wrapper.tgz@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/81123491/flutter_infra_release/gradle-wrapper/12345/gradle-wrapper.tgz@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil copy Gradle wrapper\": \"gs://flutter_archives_v2/81123491/flutter_infra_release/gradle-wrapper/12345/gradle-wrapper.tgz\"}@@@"
     ]
   },
   {
@@ -395,7 +397,8 @@
     },
     "name": "gsutil copy lcov.info",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/81123491/flutter_infra_release/flutter/coverage/lcov.info@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/81123491/flutter_infra_release/flutter/coverage/lcov.info@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil copy lcov.info\": \"gs://flutter_archives_v2/81123491/flutter_infra_release/flutter/coverage/lcov.info\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/tester.expected/monorepo.json b/recipes/engine_v2/tester.expected/monorepo.json
index a8e7cbd..74ea94a 100644
--- a/recipes/engine_v2/tester.expected/monorepo.json
+++ b/recipes/engine_v2/tester.expected/monorepo.json
@@ -539,7 +539,8 @@
     },
     "name": "gsutil copy Material fonts",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/monorepo/123/flutter_infra_release/flutter/fonts/12345/fonts.zip@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/monorepo/123/flutter_infra_release/flutter/fonts/12345/fonts.zip@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil copy Material fonts\": \"gs://flutter_archives_v2/monorepo/123/flutter_infra_release/flutter/fonts/12345/fonts.zip\"}@@@"
     ]
   },
   {
@@ -599,7 +600,8 @@
     },
     "name": "gsutil copy Gradle wrapper",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/monorepo/123/flutter_infra_release/gradle-wrapper/12345/gradle-wrapper.tgz@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/monorepo/123/flutter_infra_release/gradle-wrapper/12345/gradle-wrapper.tgz@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil copy Gradle wrapper\": \"gs://flutter_archives_v2/monorepo/123/flutter_infra_release/gradle-wrapper/12345/gradle-wrapper.tgz\"}@@@"
     ]
   },
   {
@@ -629,7 +631,8 @@
     },
     "name": "gsutil copy lcov.info",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/monorepo/123/flutter_infra_release/flutter/coverage/lcov.info@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/monorepo/123/flutter_infra_release/flutter/coverage/lcov.info@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil copy lcov.info\": \"gs://flutter_archives_v2/monorepo/123/flutter_infra_release/flutter/coverage/lcov.info\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/tester.expected/monorepo_framework_tests.json b/recipes/engine_v2/tester.expected/monorepo_framework_tests.json
index 758e318..e24dfcc 100644
--- a/recipes/engine_v2/tester.expected/monorepo_framework_tests.json
+++ b/recipes/engine_v2/tester.expected/monorepo_framework_tests.json
@@ -539,7 +539,8 @@
     },
     "name": "gsutil copy Material fonts",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/monorepo/123/flutter_infra_release/flutter/fonts/12345/fonts.zip@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/monorepo/123/flutter_infra_release/flutter/fonts/12345/fonts.zip@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil copy Material fonts\": \"gs://flutter_archives_v2/monorepo/123/flutter_infra_release/flutter/fonts/12345/fonts.zip\"}@@@"
     ]
   },
   {
@@ -599,7 +600,8 @@
     },
     "name": "gsutil copy Gradle wrapper",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/monorepo/123/flutter_infra_release/gradle-wrapper/12345/gradle-wrapper.tgz@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/monorepo/123/flutter_infra_release/gradle-wrapper/12345/gradle-wrapper.tgz@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil copy Gradle wrapper\": \"gs://flutter_archives_v2/monorepo/123/flutter_infra_release/gradle-wrapper/12345/gradle-wrapper.tgz\"}@@@"
     ]
   },
   {
@@ -629,7 +631,8 @@
     },
     "name": "gsutil copy lcov.info",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/monorepo/123/flutter_infra_release/flutter/coverage/lcov.info@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/monorepo/123/flutter_infra_release/flutter/coverage/lcov.info@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil copy lcov.info\": \"gs://flutter_archives_v2/monorepo/123/flutter_infra_release/flutter/coverage/lcov.info\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/tester.expected/monorepo_tryjob.json b/recipes/engine_v2/tester.expected/monorepo_tryjob.json
index d678c85..f92a950 100644
--- a/recipes/engine_v2/tester.expected/monorepo_tryjob.json
+++ b/recipes/engine_v2/tester.expected/monorepo_tryjob.json
@@ -305,7 +305,8 @@
     },
     "name": "gsutil copy Material fonts",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/monorepo_try/81123491/flutter_infra_release/flutter/fonts/12345/fonts.zip@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/monorepo_try/81123491/flutter_infra_release/flutter/fonts/12345/fonts.zip@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil copy Material fonts\": \"gs://flutter_archives_v2/monorepo_try/81123491/flutter_infra_release/flutter/fonts/12345/fonts.zip\"}@@@"
     ]
   },
   {
@@ -365,7 +366,8 @@
     },
     "name": "gsutil copy Gradle wrapper",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/monorepo_try/81123491/flutter_infra_release/gradle-wrapper/12345/gradle-wrapper.tgz@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/monorepo_try/81123491/flutter_infra_release/gradle-wrapper/12345/gradle-wrapper.tgz@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil copy Gradle wrapper\": \"gs://flutter_archives_v2/monorepo_try/81123491/flutter_infra_release/gradle-wrapper/12345/gradle-wrapper.tgz\"}@@@"
     ]
   },
   {
@@ -395,7 +397,8 @@
     },
     "name": "gsutil copy lcov.info",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/monorepo_try/81123491/flutter_infra_release/flutter/coverage/lcov.info@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/monorepo_try/81123491/flutter_infra_release/flutter/coverage/lcov.info@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil copy lcov.info\": \"gs://flutter_archives_v2/monorepo_try/81123491/flutter_infra_release/flutter/coverage/lcov.info\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/tester.expected/monorepo_web_tests.json b/recipes/engine_v2/tester.expected/monorepo_web_tests.json
index 6729f8d..8181a0b 100644
--- a/recipes/engine_v2/tester.expected/monorepo_web_tests.json
+++ b/recipes/engine_v2/tester.expected/monorepo_web_tests.json
@@ -539,7 +539,8 @@
     },
     "name": "gsutil copy Material fonts",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/monorepo/123/flutter_infra_release/flutter/fonts/12345/fonts.zip@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/monorepo/123/flutter_infra_release/flutter/fonts/12345/fonts.zip@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil copy Material fonts\": \"gs://flutter_archives_v2/monorepo/123/flutter_infra_release/flutter/fonts/12345/fonts.zip\"}@@@"
     ]
   },
   {
@@ -599,7 +600,8 @@
     },
     "name": "gsutil copy Gradle wrapper",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/monorepo/123/flutter_infra_release/gradle-wrapper/12345/gradle-wrapper.tgz@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/monorepo/123/flutter_infra_release/gradle-wrapper/12345/gradle-wrapper.tgz@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil copy Gradle wrapper\": \"gs://flutter_archives_v2/monorepo/123/flutter_infra_release/gradle-wrapper/12345/gradle-wrapper.tgz\"}@@@"
     ]
   },
   {
@@ -629,7 +631,8 @@
     },
     "name": "gsutil copy lcov.info",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/monorepo/123/flutter_infra_release/flutter/coverage/lcov.info@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/monorepo/123/flutter_infra_release/flutter/coverage/lcov.info@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil copy lcov.info\": \"gs://flutter_archives_v2/monorepo/123/flutter_infra_release/flutter/coverage/lcov.info\"}@@@"
     ]
   },
   {
diff --git a/recipes/engine_v2/tester_engine.expected/basic.json b/recipes/engine_v2/tester_engine.expected/basic.json
index 8c1dca2..ed73d4f 100644
--- a/recipes/engine_v2/tester_engine.expected/basic.json
+++ b/recipes/engine_v2/tester_engine.expected/basic.json
@@ -858,7 +858,8 @@
     "name": "process logs.gsutil upload logs 00000000-0000-0000-0000-000000001337",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/00000000-0000-0000-0000-000000001337/felt%20test:%20chrome-unit-linux/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/00000000-0000-0000-0000-000000001337/felt%20test:%20chrome-unit-linux/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"process logs|gsutil upload logs 00000000-0000-0000-0000-000000001337\": \"gs://flutter_logs/flutter/00000000-0000-0000-0000-000000001337/felt test: chrome-unit-linux/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
diff --git a/recipes/flutter/coverage.expected/coverage.json b/recipes/flutter/coverage.expected/coverage.json
index 39f16fb..0f07d2a 100644
--- a/recipes/flutter/coverage.expected/coverage.json
+++ b/recipes/flutter/coverage.expected/coverage.json
@@ -281,7 +281,8 @@
     "infra_step": true,
     "name": "gsutil upload lcov.info",
     "~followup_annotations": [
-      "@@@STEP_LINK@lcov.info@https://storage.googleapis.com/flutter_infra_release/flutter/coverage/lcov.info@@@"
+      "@@@STEP_LINK@lcov.info@https://storage.googleapis.com/flutter_infra_release/flutter/coverage/lcov.info@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload lcov.info\": \"gs://flutter_infra_release/flutter/coverage/lcov.info\"}@@@"
     ]
   },
   {
diff --git a/recipes/flutter/docs.expected/docs.json b/recipes/flutter/docs.expected/docs.json
index e7e2cd5..7b16e85 100644
--- a/recipes/flutter/docs.expected/docs.json
+++ b/recipes/flutter/docs.expected/docs.json
@@ -383,7 +383,8 @@
     "infra_step": true,
     "name": "gsutil Upload [START_DIR]/flutter/dev/docs/api_docs.zip to gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/api_docs.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/flutter/dev/docs/api_docs.zip to gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/api_docs.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
diff --git a/recipes/flutter/docs.expected/docs_generated_but_not_uploaded_on_release_candidate_branch.json b/recipes/flutter/docs.expected/docs_generated_but_not_uploaded_on_release_candidate_branch.json
index 0ad2895..275f3aa 100644
--- a/recipes/flutter/docs.expected/docs_generated_but_not_uploaded_on_release_candidate_branch.json
+++ b/recipes/flutter/docs.expected/docs_generated_but_not_uploaded_on_release_candidate_branch.json
@@ -755,7 +755,8 @@
     },
     "name": "gsutil Upload [START_DIR]/flutter/dev/docs/api_docs.zip to gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/api_docs.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/flutter/dev/docs/api_docs.zip to gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/api_docs.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
diff --git a/recipes/flutter/docs.expected/docs_upload_on_stable_branch.json b/recipes/flutter/docs.expected/docs_upload_on_stable_branch.json
index 002fa6b..2a33e5c 100644
--- a/recipes/flutter/docs.expected/docs_upload_on_stable_branch.json
+++ b/recipes/flutter/docs.expected/docs_upload_on_stable_branch.json
@@ -755,7 +755,8 @@
     },
     "name": "gsutil Upload [START_DIR]/flutter/dev/docs/api_docs.zip to gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/api_docs.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/flutter/dev/docs/api_docs.zip to gs://flutter_infra_release/flutter/12345abcde12345abcde12345abcde12345abcde/api_docs.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
@@ -1500,7 +1501,8 @@
     "name": "Verify api_docs.zip provenance.gsutil upload \"flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/api_docs.zip.vsa.intoto.jsonl\"",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/api_docs.zip.vsa.intoto.jsonl@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/api_docs.zip.vsa.intoto.jsonl@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Verify api_docs.zip provenance|gsutil upload \\\"flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/api_docs.zip.vsa.intoto.jsonl\\\"\": \"gs://flutter_infra_release/flutter/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd/api_docs.zip.vsa.intoto.jsonl\"}@@@"
     ]
   },
   {
diff --git a/recipes/ios_usb_dependencies/ios-usb-dependencies.expected/basic.json b/recipes/ios_usb_dependencies/ios-usb-dependencies.expected/basic.json
index 4fe0168..107c595 100644
--- a/recipes/ios_usb_dependencies/ios-usb-dependencies.expected/basic.json
+++ b/recipes/ios_usb_dependencies/ios-usb-dependencies.expected/basic.json
@@ -137,7 +137,8 @@
     "infra_step": true,
     "name": "gsutil upload of ios-deploy.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@ios-deploy.zip@https://storage.cloud.google.com/flutter_infra_release/ios-usb-dependencies/unsigned/ios-deploy//ios-deploy.zip@@@"
+      "@@@STEP_LINK@ios-deploy.zip@https://storage.cloud.google.com/flutter_infra_release/ios-usb-dependencies/unsigned/ios-deploy//ios-deploy.zip@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload of ios-deploy.zip\": \"gs://flutter_infra_release/ios-usb-dependencies/unsigned/ios-deploy//ios-deploy.zip\"}@@@"
     ]
   },
   {
@@ -172,7 +173,8 @@
     "infra_step": true,
     "name": "gsutil upload of ios-deploy/latest_unsigned.version",
     "~followup_annotations": [
-      "@@@STEP_LINK@ios-deploy/latest_unsigned.version@https://storage.cloud.google.com/flutter_infra_release/ios-usb-dependencies/unsigned/ios-deploy/latest_unsigned.version@@@"
+      "@@@STEP_LINK@ios-deploy/latest_unsigned.version@https://storage.cloud.google.com/flutter_infra_release/ios-usb-dependencies/unsigned/ios-deploy/latest_unsigned.version@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload of ios-deploy/latest_unsigned.version\": \"gs://flutter_infra_release/ios-usb-dependencies/unsigned/ios-deploy/latest_unsigned.version\"}@@@"
     ]
   },
   {
@@ -315,7 +317,8 @@
     "infra_step": true,
     "name": "gsutil upload of libplist.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@libplist.zip@https://storage.cloud.google.com/flutter_infra_release/ios-usb-dependencies/unsigned/libplist/None/libplist.zip@@@"
+      "@@@STEP_LINK@libplist.zip@https://storage.cloud.google.com/flutter_infra_release/ios-usb-dependencies/unsigned/libplist/None/libplist.zip@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload of libplist.zip\": \"gs://flutter_infra_release/ios-usb-dependencies/unsigned/libplist/None/libplist.zip\"}@@@"
     ]
   },
   {
@@ -671,7 +674,8 @@
     "infra_step": true,
     "name": "gsutil upload of libimobiledeviceglue.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@libimobiledeviceglue.zip@https://storage.cloud.google.com/flutter_infra_release/ios-usb-dependencies/unsigned/libimobiledeviceglue/None/libimobiledeviceglue.zip@@@"
+      "@@@STEP_LINK@libimobiledeviceglue.zip@https://storage.cloud.google.com/flutter_infra_release/ios-usb-dependencies/unsigned/libimobiledeviceglue/None/libimobiledeviceglue.zip@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload of libimobiledeviceglue.zip\": \"gs://flutter_infra_release/ios-usb-dependencies/unsigned/libimobiledeviceglue/None/libimobiledeviceglue.zip\"}@@@"
     ]
   },
   {
@@ -937,7 +941,8 @@
     "infra_step": true,
     "name": "gsutil upload of libusbmuxd.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@libusbmuxd.zip@https://storage.cloud.google.com/flutter_infra_release/ios-usb-dependencies/unsigned/libusbmuxd/None/libusbmuxd.zip@@@"
+      "@@@STEP_LINK@libusbmuxd.zip@https://storage.cloud.google.com/flutter_infra_release/ios-usb-dependencies/unsigned/libusbmuxd/None/libusbmuxd.zip@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload of libusbmuxd.zip\": \"gs://flutter_infra_release/ios-usb-dependencies/unsigned/libusbmuxd/None/libusbmuxd.zip\"}@@@"
     ]
   },
   {
@@ -1133,7 +1138,8 @@
     "infra_step": true,
     "name": "gsutil upload of openssl.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@openssl.zip@https://storage.cloud.google.com/flutter_infra_release/ios-usb-dependencies/unsigned/openssl/None/openssl.zip@@@"
+      "@@@STEP_LINK@openssl.zip@https://storage.cloud.google.com/flutter_infra_release/ios-usb-dependencies/unsigned/openssl/None/openssl.zip@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload of openssl.zip\": \"gs://flutter_infra_release/ios-usb-dependencies/unsigned/openssl/None/openssl.zip\"}@@@"
     ]
   },
   {
@@ -1332,7 +1338,8 @@
     "infra_step": true,
     "name": "gsutil upload of libimobiledevice.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@libimobiledevice.zip@https://storage.cloud.google.com/flutter_infra_release/ios-usb-dependencies/unsigned/libimobiledevice/None/libimobiledevice.zip@@@"
+      "@@@STEP_LINK@libimobiledevice.zip@https://storage.cloud.google.com/flutter_infra_release/ios-usb-dependencies/unsigned/libimobiledevice/None/libimobiledevice.zip@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload of libimobiledevice.zip\": \"gs://flutter_infra_release/ios-usb-dependencies/unsigned/libimobiledevice/None/libimobiledevice.zip\"}@@@"
     ]
   },
   {
diff --git a/recipes/ios_usb_dependencies/ios_usb_dependencies_release.expected/with_codesigning.json b/recipes/ios_usb_dependencies/ios_usb_dependencies_release.expected/with_codesigning.json
index 0891c06..e4b20ac 100644
--- a/recipes/ios_usb_dependencies/ios_usb_dependencies_release.expected/with_codesigning.json
+++ b/recipes/ios_usb_dependencies/ios_usb_dependencies_release.expected/with_codesigning.json
@@ -2335,7 +2335,8 @@
     },
     "name": "gsutil upload debug logs to 8945511751514863184/setup_keychain_logs_00000000-0000-0000-0000-000000001337.txt",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_tmp_logs/8945511751514863184/setup_keychain_logs_00000000-0000-0000-0000-000000001337.txt@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_tmp_logs/8945511751514863184/setup_keychain_logs_00000000-0000-0000-0000-000000001337.txt@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload debug logs to 8945511751514863184/setup_keychain_logs_00000000-0000-0000-0000-000000001337.txt\": \"gs://flutter_tmp_logs/8945511751514863184/setup_keychain_logs_00000000-0000-0000-0000-000000001337.txt\"}@@@"
     ]
   },
   {
@@ -3225,7 +3226,8 @@
     },
     "name": "gsutil upload of libimobiledeviceglue.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@libimobiledeviceglue.zip@https://storage.cloud.google.com/flutter_infra_release/ios-usb-dependencies/libimobiledeviceglue/123456/libimobiledeviceglue.zip@@@"
+      "@@@STEP_LINK@libimobiledeviceglue.zip@https://storage.cloud.google.com/flutter_infra_release/ios-usb-dependencies/libimobiledeviceglue/123456/libimobiledeviceglue.zip@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload of libimobiledeviceglue.zip\": \"gs://flutter_infra_release/ios-usb-dependencies/libimobiledeviceglue/123456/libimobiledeviceglue.zip\"}@@@"
     ]
   },
   {
@@ -3273,7 +3275,8 @@
     },
     "name": "gsutil upload of libplist.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@libplist.zip@https://storage.cloud.google.com/flutter_infra_release/ios-usb-dependencies/libplist/123456/libplist.zip@@@"
+      "@@@STEP_LINK@libplist.zip@https://storage.cloud.google.com/flutter_infra_release/ios-usb-dependencies/libplist/123456/libplist.zip@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload of libplist.zip\": \"gs://flutter_infra_release/ios-usb-dependencies/libplist/123456/libplist.zip\"}@@@"
     ]
   },
   {
@@ -3321,7 +3324,8 @@
     },
     "name": "gsutil upload of libusbmuxd.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@libusbmuxd.zip@https://storage.cloud.google.com/flutter_infra_release/ios-usb-dependencies/libusbmuxd/123456/libusbmuxd.zip@@@"
+      "@@@STEP_LINK@libusbmuxd.zip@https://storage.cloud.google.com/flutter_infra_release/ios-usb-dependencies/libusbmuxd/123456/libusbmuxd.zip@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload of libusbmuxd.zip\": \"gs://flutter_infra_release/ios-usb-dependencies/libusbmuxd/123456/libusbmuxd.zip\"}@@@"
     ]
   },
   {
@@ -3369,7 +3373,8 @@
     },
     "name": "gsutil upload of openssl.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@openssl.zip@https://storage.cloud.google.com/flutter_infra_release/ios-usb-dependencies/openssl/123456/openssl.zip@@@"
+      "@@@STEP_LINK@openssl.zip@https://storage.cloud.google.com/flutter_infra_release/ios-usb-dependencies/openssl/123456/openssl.zip@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload of openssl.zip\": \"gs://flutter_infra_release/ios-usb-dependencies/openssl/123456/openssl.zip\"}@@@"
     ]
   },
   {
@@ -3417,7 +3422,8 @@
     },
     "name": "gsutil upload of libimobiledevice.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@libimobiledevice.zip@https://storage.cloud.google.com/flutter_infra_release/ios-usb-dependencies/libimobiledevice/123456/libimobiledevice.zip@@@"
+      "@@@STEP_LINK@libimobiledevice.zip@https://storage.cloud.google.com/flutter_infra_release/ios-usb-dependencies/libimobiledevice/123456/libimobiledevice.zip@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil upload of libimobiledevice.zip\": \"gs://flutter_infra_release/ios-usb-dependencies/libimobiledevice/123456/libimobiledevice.zip\"}@@@"
     ]
   },
   {
diff --git a/recipes/packages/packages.expected/emulator-test.json b/recipes/packages/packages.expected/emulator-test.json
index c02516a..bac2e5c 100644
--- a/recipes/packages/packages.expected/emulator-test.json
+++ b/recipes/packages/packages.expected/emulator-test.json
@@ -1187,7 +1187,8 @@
     "name": "Run package tests.process logs.gsutil upload logs 00000000-0000-0000-0000-000000001337",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@2@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/00000000-0000-0000-0000-000000001337/one/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/00000000-0000-0000-0000-000000001337/one/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Run package tests|process logs|gsutil upload logs 00000000-0000-0000-0000-000000001337\": \"gs://flutter_logs/flutter/00000000-0000-0000-0000-000000001337/one/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
diff --git a/recipes/packages/packages.expected/mac.json b/recipes/packages/packages.expected/mac.json
index 5a69c77..b2eb18d 100644
--- a/recipes/packages/packages.expected/mac.json
+++ b/recipes/packages/packages.expected/mac.json
@@ -605,7 +605,8 @@
     "name": "Run package tests.process logs.gsutil upload logs 00000000-0000-0000-0000-000000001337",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@2@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/00000000-0000-0000-0000-000000001337/one/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/00000000-0000-0000-0000-000000001337/one/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Run package tests|process logs|gsutil upload logs 00000000-0000-0000-0000-000000001337\": \"gs://flutter_logs/flutter/00000000-0000-0000-0000-000000001337/one/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
diff --git a/recipes/packages/packages.expected/master_channel.json b/recipes/packages/packages.expected/master_channel.json
index f0c68a9..6174245 100644
--- a/recipes/packages/packages.expected/master_channel.json
+++ b/recipes/packages/packages.expected/master_channel.json
@@ -597,7 +597,8 @@
     "name": "Run package tests.process logs.gsutil upload logs 00000000-0000-0000-0000-000000001337",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@2@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/00000000-0000-0000-0000-000000001337/one/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/00000000-0000-0000-0000-000000001337/one/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Run package tests|process logs|gsutil upload logs 00000000-0000-0000-0000-000000001337\": \"gs://flutter_logs/flutter/00000000-0000-0000-0000-000000001337/one/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
diff --git a/recipes/packages/packages.expected/multiple_tests_with_always.json b/recipes/packages/packages.expected/multiple_tests_with_always.json
index 065d548..1cc82f1 100644
--- a/recipes/packages/packages.expected/multiple_tests_with_always.json
+++ b/recipes/packages/packages.expected/multiple_tests_with_always.json
@@ -610,7 +610,8 @@
     "name": "Run package tests.process logs.gsutil upload logs 00000000-0000-0000-0000-000000001337",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@2@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/00000000-0000-0000-0000-000000001337/one/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/00000000-0000-0000-0000-000000001337/one/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Run package tests|process logs|gsutil upload logs 00000000-0000-0000-0000-000000001337\": \"gs://flutter_logs/flutter/00000000-0000-0000-0000-000000001337/one/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
@@ -868,7 +869,8 @@
     "name": "Run package tests.process logs (2).gsutil upload logs 00000000-0000-0000-0000-00000000133a",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@2@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/00000000-0000-0000-0000-00000000133a/two/00000000-0000-0000-0000-00000000133a@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/00000000-0000-0000-0000-00000000133a/two/00000000-0000-0000-0000-00000000133a@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Run package tests|process logs (2)|gsutil upload logs 00000000-0000-0000-0000-00000000133a\": \"gs://flutter_logs/flutter/00000000-0000-0000-0000-00000000133a/two/00000000-0000-0000-0000-00000000133a\"}@@@"
     ]
   },
   {
diff --git a/recipes/packages/packages.expected/stable_channel.json b/recipes/packages/packages.expected/stable_channel.json
index c14d095..0cd8f06 100644
--- a/recipes/packages/packages.expected/stable_channel.json
+++ b/recipes/packages/packages.expected/stable_channel.json
@@ -578,7 +578,8 @@
     "name": "Run package tests.process logs.gsutil upload logs 00000000-0000-0000-0000-000000001337",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@2@@@",
-      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/00000000-0000-0000-0000-000000001337/one/00000000-0000-0000-0000-000000001337@@@"
+      "@@@STEP_LINK@archive logs@https://console.cloud.google.com/storage/browser/flutter_logs/flutter/00000000-0000-0000-0000-000000001337/one/00000000-0000-0000-0000-000000001337@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Run package tests|process logs|gsutil upload logs 00000000-0000-0000-0000-000000001337\": \"gs://flutter_logs/flutter/00000000-0000-0000-0000-000000001337/one/00000000-0000-0000-0000-000000001337\"}@@@"
     ]
   },
   {
diff --git a/recipes/packaging/packaging.expected/linux_refs_heads_beta_flutter.json b/recipes/packaging/packaging.expected/linux_refs_heads_beta_flutter.json
index af3cdf6..d1ac21e 100644
--- a/recipes/packaging/packaging.expected/linux_refs_heads_beta_flutter.json
+++ b/recipes/packaging/packaging.expected/linux_refs_heads_beta_flutter.json
@@ -1102,7 +1102,8 @@
     },
     "name": "gsutil Upload [START_DIR]/archive/flutter-archive-package.tar.xz to gs://flutter_infra_release/releases/beta/linux/flutter-archive-package.tar.xz",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/archive/flutter-archive-package.tar.xz to gs://flutter_infra_release/releases/beta/linux/flutter-archive-package.tar.xz\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
@@ -1880,7 +1881,8 @@
     "name": "Verify flutter-archive-package.tar.xz provenance.gsutil upload \"releases/beta/linux/flutter-archive-package.tar.xz.vsa.intoto.jsonl\"",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/releases/beta/linux/flutter-archive-package.tar.xz.vsa.intoto.jsonl@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/releases/beta/linux/flutter-archive-package.tar.xz.vsa.intoto.jsonl@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Verify flutter-archive-package.tar.xz provenance|gsutil upload \\\"releases/beta/linux/flutter-archive-package.tar.xz.vsa.intoto.jsonl\\\"\": \"gs://flutter_infra_release/releases/beta/linux/flutter-archive-package.tar.xz.vsa.intoto.jsonl\"}@@@"
     ]
   },
   {
@@ -2100,7 +2102,8 @@
     },
     "name": "gsutil Upload [START_DIR]/archive/releases_linux.json to gs://flutter_infra_release/releases/releases_linux.json",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/archive/releases_linux.json to gs://flutter_infra_release/releases/releases_linux.json\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
diff --git a/recipes/packaging/packaging.expected/linux_refs_heads_beta_prod.json b/recipes/packaging/packaging.expected/linux_refs_heads_beta_prod.json
index 6b5430e..397df6d 100644
--- a/recipes/packaging/packaging.expected/linux_refs_heads_beta_prod.json
+++ b/recipes/packaging/packaging.expected/linux_refs_heads_beta_prod.json
@@ -921,7 +921,8 @@
     },
     "name": "gsutil Upload [START_DIR]/archive/flutter-archive-package.tar.xz to gs://flutter_infra_release/releases/beta/linux/experimental/flutter-archive-package.tar.xz",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/archive/flutter-archive-package.tar.xz to gs://flutter_infra_release/releases/beta/linux/experimental/flutter-archive-package.tar.xz\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
diff --git a/recipes/packaging/packaging.expected/linux_refs_heads_flutter-release-test_flutter.json b/recipes/packaging/packaging.expected/linux_refs_heads_flutter-release-test_flutter.json
index 3ac4aa0..20d6098 100644
--- a/recipes/packaging/packaging.expected/linux_refs_heads_flutter-release-test_flutter.json
+++ b/recipes/packaging/packaging.expected/linux_refs_heads_flutter-release-test_flutter.json
@@ -1102,7 +1102,8 @@
     },
     "name": "gsutil Upload [START_DIR]/archive/flutter-archive-package.tar.xz to gs://flutter_infra_release/releases/flutter-release-test/linux/experimental/flutter-archive-package.tar.xz",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/archive/flutter-archive-package.tar.xz to gs://flutter_infra_release/releases/flutter-release-test/linux/experimental/flutter-archive-package.tar.xz\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
@@ -1880,7 +1881,8 @@
     "name": "Verify flutter-archive-package.tar.xz provenance.gsutil upload \"releases/flutter-release-test/linux/experimental/flutter-archive-package.tar.xz.vsa.intoto.jsonl\"",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/releases/flutter-release-test/linux/experimental/flutter-archive-package.tar.xz.vsa.intoto.jsonl@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/releases/flutter-release-test/linux/experimental/flutter-archive-package.tar.xz.vsa.intoto.jsonl@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Verify flutter-archive-package.tar.xz provenance|gsutil upload \\\"releases/flutter-release-test/linux/experimental/flutter-archive-package.tar.xz.vsa.intoto.jsonl\\\"\": \"gs://flutter_infra_release/releases/flutter-release-test/linux/experimental/flutter-archive-package.tar.xz.vsa.intoto.jsonl\"}@@@"
     ]
   },
   {
diff --git a/recipes/packaging/packaging.expected/linux_refs_heads_flutter-release-test_prod.json b/recipes/packaging/packaging.expected/linux_refs_heads_flutter-release-test_prod.json
index 0e6f4ad..609c415 100644
--- a/recipes/packaging/packaging.expected/linux_refs_heads_flutter-release-test_prod.json
+++ b/recipes/packaging/packaging.expected/linux_refs_heads_flutter-release-test_prod.json
@@ -921,7 +921,8 @@
     },
     "name": "gsutil Upload [START_DIR]/archive/flutter-archive-package.tar.xz to gs://flutter_infra_release/releases/flutter-release-test/linux/experimental/flutter-archive-package.tar.xz",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/archive/flutter-archive-package.tar.xz to gs://flutter_infra_release/releases/flutter-release-test/linux/experimental/flutter-archive-package.tar.xz\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
diff --git a/recipes/packaging/packaging.expected/linux_refs_heads_master_flutter.json b/recipes/packaging/packaging.expected/linux_refs_heads_master_flutter.json
index e354704..9648d44 100644
--- a/recipes/packaging/packaging.expected/linux_refs_heads_master_flutter.json
+++ b/recipes/packaging/packaging.expected/linux_refs_heads_master_flutter.json
@@ -1102,7 +1102,8 @@
     },
     "name": "gsutil Upload [START_DIR]/archive/flutter-archive-package.tar.xz to gs://flutter_infra_release/releases/master/linux/experimental/flutter-archive-package.tar.xz",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/archive/flutter-archive-package.tar.xz to gs://flutter_infra_release/releases/master/linux/experimental/flutter-archive-package.tar.xz\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
@@ -1880,7 +1881,8 @@
     "name": "Verify flutter-archive-package.tar.xz provenance.gsutil upload \"releases/master/linux/experimental/flutter-archive-package.tar.xz.vsa.intoto.jsonl\"",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/releases/master/linux/experimental/flutter-archive-package.tar.xz.vsa.intoto.jsonl@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/releases/master/linux/experimental/flutter-archive-package.tar.xz.vsa.intoto.jsonl@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Verify flutter-archive-package.tar.xz provenance|gsutil upload \\\"releases/master/linux/experimental/flutter-archive-package.tar.xz.vsa.intoto.jsonl\\\"\": \"gs://flutter_infra_release/releases/master/linux/experimental/flutter-archive-package.tar.xz.vsa.intoto.jsonl\"}@@@"
     ]
   },
   {
diff --git a/recipes/packaging/packaging.expected/linux_refs_heads_master_prod.json b/recipes/packaging/packaging.expected/linux_refs_heads_master_prod.json
index 8ebba4c..ddd2424 100644
--- a/recipes/packaging/packaging.expected/linux_refs_heads_master_prod.json
+++ b/recipes/packaging/packaging.expected/linux_refs_heads_master_prod.json
@@ -921,7 +921,8 @@
     },
     "name": "gsutil Upload [START_DIR]/archive/flutter-archive-package.tar.xz to gs://flutter_infra_release/releases/master/linux/experimental/flutter-archive-package.tar.xz",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/archive/flutter-archive-package.tar.xz to gs://flutter_infra_release/releases/master/linux/experimental/flutter-archive-package.tar.xz\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
diff --git a/recipes/packaging/packaging.expected/linux_refs_heads_stable_flutter.json b/recipes/packaging/packaging.expected/linux_refs_heads_stable_flutter.json
index 75c04a0..64ba2b1 100644
--- a/recipes/packaging/packaging.expected/linux_refs_heads_stable_flutter.json
+++ b/recipes/packaging/packaging.expected/linux_refs_heads_stable_flutter.json
@@ -1102,7 +1102,8 @@
     },
     "name": "gsutil Upload [START_DIR]/archive/flutter-archive-package.tar.xz to gs://flutter_infra_release/releases/stable/linux/flutter-archive-package.tar.xz",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/archive/flutter-archive-package.tar.xz to gs://flutter_infra_release/releases/stable/linux/flutter-archive-package.tar.xz\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
@@ -1880,7 +1881,8 @@
     "name": "Verify flutter-archive-package.tar.xz provenance.gsutil upload \"releases/stable/linux/flutter-archive-package.tar.xz.vsa.intoto.jsonl\"",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/releases/stable/linux/flutter-archive-package.tar.xz.vsa.intoto.jsonl@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/releases/stable/linux/flutter-archive-package.tar.xz.vsa.intoto.jsonl@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Verify flutter-archive-package.tar.xz provenance|gsutil upload \\\"releases/stable/linux/flutter-archive-package.tar.xz.vsa.intoto.jsonl\\\"\": \"gs://flutter_infra_release/releases/stable/linux/flutter-archive-package.tar.xz.vsa.intoto.jsonl\"}@@@"
     ]
   },
   {
@@ -2100,7 +2102,8 @@
     },
     "name": "gsutil Upload [START_DIR]/archive/releases_linux.json to gs://flutter_infra_release/releases/releases_linux.json",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/archive/releases_linux.json to gs://flutter_infra_release/releases/releases_linux.json\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
diff --git a/recipes/packaging/packaging.expected/linux_refs_heads_stable_prod.json b/recipes/packaging/packaging.expected/linux_refs_heads_stable_prod.json
index 4ef0207..caac055 100644
--- a/recipes/packaging/packaging.expected/linux_refs_heads_stable_prod.json
+++ b/recipes/packaging/packaging.expected/linux_refs_heads_stable_prod.json
@@ -921,7 +921,8 @@
     },
     "name": "gsutil Upload [START_DIR]/archive/flutter-archive-package.tar.xz to gs://flutter_infra_release/releases/stable/linux/experimental/flutter-archive-package.tar.xz",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/archive/flutter-archive-package.tar.xz to gs://flutter_infra_release/releases/stable/linux/experimental/flutter-archive-package.tar.xz\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
diff --git a/recipes/packaging/packaging.expected/mac_refs_heads_beta_flutter.json b/recipes/packaging/packaging.expected/mac_refs_heads_beta_flutter.json
index 9a5e14d7..e2697c6 100644
--- a/recipes/packaging/packaging.expected/mac_refs_heads_beta_flutter.json
+++ b/recipes/packaging/packaging.expected/mac_refs_heads_beta_flutter.json
@@ -1121,7 +1121,8 @@
     },
     "name": "gsutil Upload [START_DIR]/archive/flutter-archive-package.zip to gs://flutter_infra_release/releases/beta/macos/flutter-archive-package.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/archive/flutter-archive-package.zip to gs://flutter_infra_release/releases/beta/macos/flutter-archive-package.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
@@ -1899,7 +1900,8 @@
     "name": "Verify flutter-archive-package.zip provenance.gsutil upload \"releases/beta/macos/flutter-archive-package.zip.vsa.intoto.jsonl\"",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/releases/beta/macos/flutter-archive-package.zip.vsa.intoto.jsonl@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/releases/beta/macos/flutter-archive-package.zip.vsa.intoto.jsonl@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Verify flutter-archive-package.zip provenance|gsutil upload \\\"releases/beta/macos/flutter-archive-package.zip.vsa.intoto.jsonl\\\"\": \"gs://flutter_infra_release/releases/beta/macos/flutter-archive-package.zip.vsa.intoto.jsonl\"}@@@"
     ]
   },
   {
@@ -2119,7 +2121,8 @@
     },
     "name": "gsutil Upload [START_DIR]/archive/releases_linux.json to gs://flutter_infra_release/releases/releases_linux.json",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/archive/releases_linux.json to gs://flutter_infra_release/releases/releases_linux.json\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
diff --git a/recipes/packaging/packaging.expected/mac_refs_heads_beta_prod.json b/recipes/packaging/packaging.expected/mac_refs_heads_beta_prod.json
index 4fa91c9..330181f 100644
--- a/recipes/packaging/packaging.expected/mac_refs_heads_beta_prod.json
+++ b/recipes/packaging/packaging.expected/mac_refs_heads_beta_prod.json
@@ -940,7 +940,8 @@
     },
     "name": "gsutil Upload [START_DIR]/archive/flutter-archive-package.zip to gs://flutter_infra_release/releases/beta/macos/experimental/flutter-archive-package.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/archive/flutter-archive-package.zip to gs://flutter_infra_release/releases/beta/macos/experimental/flutter-archive-package.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
diff --git a/recipes/packaging/packaging.expected/mac_refs_heads_flutter-release-test_flutter.json b/recipes/packaging/packaging.expected/mac_refs_heads_flutter-release-test_flutter.json
index dc061cb..685f0a9 100644
--- a/recipes/packaging/packaging.expected/mac_refs_heads_flutter-release-test_flutter.json
+++ b/recipes/packaging/packaging.expected/mac_refs_heads_flutter-release-test_flutter.json
@@ -1121,7 +1121,8 @@
     },
     "name": "gsutil Upload [START_DIR]/archive/flutter-archive-package.zip to gs://flutter_infra_release/releases/flutter-release-test/macos/experimental/flutter-archive-package.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/archive/flutter-archive-package.zip to gs://flutter_infra_release/releases/flutter-release-test/macos/experimental/flutter-archive-package.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
@@ -1899,7 +1900,8 @@
     "name": "Verify flutter-archive-package.zip provenance.gsutil upload \"releases/flutter-release-test/macos/experimental/flutter-archive-package.zip.vsa.intoto.jsonl\"",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/releases/flutter-release-test/macos/experimental/flutter-archive-package.zip.vsa.intoto.jsonl@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/releases/flutter-release-test/macos/experimental/flutter-archive-package.zip.vsa.intoto.jsonl@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Verify flutter-archive-package.zip provenance|gsutil upload \\\"releases/flutter-release-test/macos/experimental/flutter-archive-package.zip.vsa.intoto.jsonl\\\"\": \"gs://flutter_infra_release/releases/flutter-release-test/macos/experimental/flutter-archive-package.zip.vsa.intoto.jsonl\"}@@@"
     ]
   },
   {
diff --git a/recipes/packaging/packaging.expected/mac_refs_heads_flutter-release-test_prod.json b/recipes/packaging/packaging.expected/mac_refs_heads_flutter-release-test_prod.json
index 7f99a0e..9933949 100644
--- a/recipes/packaging/packaging.expected/mac_refs_heads_flutter-release-test_prod.json
+++ b/recipes/packaging/packaging.expected/mac_refs_heads_flutter-release-test_prod.json
@@ -940,7 +940,8 @@
     },
     "name": "gsutil Upload [START_DIR]/archive/flutter-archive-package.zip to gs://flutter_infra_release/releases/flutter-release-test/macos/experimental/flutter-archive-package.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/archive/flutter-archive-package.zip to gs://flutter_infra_release/releases/flutter-release-test/macos/experimental/flutter-archive-package.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
diff --git a/recipes/packaging/packaging.expected/mac_refs_heads_master_flutter.json b/recipes/packaging/packaging.expected/mac_refs_heads_master_flutter.json
index 61c5d26..11ecb1e 100644
--- a/recipes/packaging/packaging.expected/mac_refs_heads_master_flutter.json
+++ b/recipes/packaging/packaging.expected/mac_refs_heads_master_flutter.json
@@ -1121,7 +1121,8 @@
     },
     "name": "gsutil Upload [START_DIR]/archive/flutter-archive-package.zip to gs://flutter_infra_release/releases/master/macos/experimental/flutter-archive-package.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/archive/flutter-archive-package.zip to gs://flutter_infra_release/releases/master/macos/experimental/flutter-archive-package.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
@@ -1899,7 +1900,8 @@
     "name": "Verify flutter-archive-package.zip provenance.gsutil upload \"releases/master/macos/experimental/flutter-archive-package.zip.vsa.intoto.jsonl\"",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/releases/master/macos/experimental/flutter-archive-package.zip.vsa.intoto.jsonl@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/releases/master/macos/experimental/flutter-archive-package.zip.vsa.intoto.jsonl@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Verify flutter-archive-package.zip provenance|gsutil upload \\\"releases/master/macos/experimental/flutter-archive-package.zip.vsa.intoto.jsonl\\\"\": \"gs://flutter_infra_release/releases/master/macos/experimental/flutter-archive-package.zip.vsa.intoto.jsonl\"}@@@"
     ]
   },
   {
diff --git a/recipes/packaging/packaging.expected/mac_refs_heads_master_prod.json b/recipes/packaging/packaging.expected/mac_refs_heads_master_prod.json
index eda7389..209d0d9 100644
--- a/recipes/packaging/packaging.expected/mac_refs_heads_master_prod.json
+++ b/recipes/packaging/packaging.expected/mac_refs_heads_master_prod.json
@@ -940,7 +940,8 @@
     },
     "name": "gsutil Upload [START_DIR]/archive/flutter-archive-package.zip to gs://flutter_infra_release/releases/master/macos/experimental/flutter-archive-package.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/archive/flutter-archive-package.zip to gs://flutter_infra_release/releases/master/macos/experimental/flutter-archive-package.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
diff --git a/recipes/packaging/packaging.expected/mac_refs_heads_stable_flutter.json b/recipes/packaging/packaging.expected/mac_refs_heads_stable_flutter.json
index 8b1daad..303bdd3 100644
--- a/recipes/packaging/packaging.expected/mac_refs_heads_stable_flutter.json
+++ b/recipes/packaging/packaging.expected/mac_refs_heads_stable_flutter.json
@@ -1121,7 +1121,8 @@
     },
     "name": "gsutil Upload [START_DIR]/archive/flutter-archive-package.zip to gs://flutter_infra_release/releases/stable/macos/flutter-archive-package.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/archive/flutter-archive-package.zip to gs://flutter_infra_release/releases/stable/macos/flutter-archive-package.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
@@ -1899,7 +1900,8 @@
     "name": "Verify flutter-archive-package.zip provenance.gsutil upload \"releases/stable/macos/flutter-archive-package.zip.vsa.intoto.jsonl\"",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/releases/stable/macos/flutter-archive-package.zip.vsa.intoto.jsonl@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/releases/stable/macos/flutter-archive-package.zip.vsa.intoto.jsonl@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Verify flutter-archive-package.zip provenance|gsutil upload \\\"releases/stable/macos/flutter-archive-package.zip.vsa.intoto.jsonl\\\"\": \"gs://flutter_infra_release/releases/stable/macos/flutter-archive-package.zip.vsa.intoto.jsonl\"}@@@"
     ]
   },
   {
@@ -2119,7 +2121,8 @@
     },
     "name": "gsutil Upload [START_DIR]/archive/releases_linux.json to gs://flutter_infra_release/releases/releases_linux.json",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/archive/releases_linux.json to gs://flutter_infra_release/releases/releases_linux.json\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
diff --git a/recipes/packaging/packaging.expected/mac_refs_heads_stable_prod.json b/recipes/packaging/packaging.expected/mac_refs_heads_stable_prod.json
index 6ea60f2..a4e2ed7 100644
--- a/recipes/packaging/packaging.expected/mac_refs_heads_stable_prod.json
+++ b/recipes/packaging/packaging.expected/mac_refs_heads_stable_prod.json
@@ -940,7 +940,8 @@
     },
     "name": "gsutil Upload [START_DIR]/archive/flutter-archive-package.zip to gs://flutter_infra_release/releases/stable/macos/experimental/flutter-archive-package.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]/archive/flutter-archive-package.zip to gs://flutter_infra_release/releases/stable/macos/experimental/flutter-archive-package.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
diff --git a/recipes/packaging/packaging.expected/win_refs_heads_beta_flutter.json b/recipes/packaging/packaging.expected/win_refs_heads_beta_flutter.json
index b875a5e..b15fd03 100644
--- a/recipes/packaging/packaging.expected/win_refs_heads_beta_flutter.json
+++ b/recipes/packaging/packaging.expected/win_refs_heads_beta_flutter.json
@@ -1175,7 +1175,8 @@
     },
     "name": "gsutil Upload [START_DIR]\\archive\\flutter-archive-package.zip to gs://flutter_infra_release/releases/beta/windows/flutter-archive-package.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]\\\\archive\\\\flutter-archive-package.zip to gs://flutter_infra_release/releases/beta/windows/flutter-archive-package.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
@@ -1967,7 +1968,8 @@
     "name": "Verify flutter-archive-package.zip provenance.gsutil upload \"releases/beta/windows/flutter-archive-package.zip.vsa.intoto.jsonl\"",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/releases/beta/windows/flutter-archive-package.zip.vsa.intoto.jsonl@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/releases/beta/windows/flutter-archive-package.zip.vsa.intoto.jsonl@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Verify flutter-archive-package.zip provenance|gsutil upload \\\"releases/beta/windows/flutter-archive-package.zip.vsa.intoto.jsonl\\\"\": \"gs://flutter_infra_release/releases/beta/windows/flutter-archive-package.zip.vsa.intoto.jsonl\"}@@@"
     ]
   },
   {
@@ -2191,7 +2193,8 @@
     },
     "name": "gsutil Upload [START_DIR]\\archive\\releases_linux.json to gs://flutter_infra_release/releases/releases_linux.json",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]\\\\archive\\\\releases_linux.json to gs://flutter_infra_release/releases/releases_linux.json\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
diff --git a/recipes/packaging/packaging.expected/win_refs_heads_beta_prod.json b/recipes/packaging/packaging.expected/win_refs_heads_beta_prod.json
index f5c7aa8..8c2a50f 100644
--- a/recipes/packaging/packaging.expected/win_refs_heads_beta_prod.json
+++ b/recipes/packaging/packaging.expected/win_refs_heads_beta_prod.json
@@ -993,7 +993,8 @@
     },
     "name": "gsutil Upload [START_DIR]\\archive\\flutter-archive-package.zip to gs://flutter_infra_release/releases/beta/windows/experimental/flutter-archive-package.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]\\\\archive\\\\flutter-archive-package.zip to gs://flutter_infra_release/releases/beta/windows/experimental/flutter-archive-package.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
diff --git a/recipes/packaging/packaging.expected/win_refs_heads_flutter-release-test_flutter.json b/recipes/packaging/packaging.expected/win_refs_heads_flutter-release-test_flutter.json
index cac68a7..f6a1006 100644
--- a/recipes/packaging/packaging.expected/win_refs_heads_flutter-release-test_flutter.json
+++ b/recipes/packaging/packaging.expected/win_refs_heads_flutter-release-test_flutter.json
@@ -1175,7 +1175,8 @@
     },
     "name": "gsutil Upload [START_DIR]\\archive\\flutter-archive-package.zip to gs://flutter_infra_release/releases/flutter-release-test/windows/experimental/flutter-archive-package.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]\\\\archive\\\\flutter-archive-package.zip to gs://flutter_infra_release/releases/flutter-release-test/windows/experimental/flutter-archive-package.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
@@ -1967,7 +1968,8 @@
     "name": "Verify flutter-archive-package.zip provenance.gsutil upload \"releases/flutter-release-test/windows/experimental/flutter-archive-package.zip.vsa.intoto.jsonl\"",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/releases/flutter-release-test/windows/experimental/flutter-archive-package.zip.vsa.intoto.jsonl@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/releases/flutter-release-test/windows/experimental/flutter-archive-package.zip.vsa.intoto.jsonl@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Verify flutter-archive-package.zip provenance|gsutil upload \\\"releases/flutter-release-test/windows/experimental/flutter-archive-package.zip.vsa.intoto.jsonl\\\"\": \"gs://flutter_infra_release/releases/flutter-release-test/windows/experimental/flutter-archive-package.zip.vsa.intoto.jsonl\"}@@@"
     ]
   },
   {
diff --git a/recipes/packaging/packaging.expected/win_refs_heads_flutter-release-test_prod.json b/recipes/packaging/packaging.expected/win_refs_heads_flutter-release-test_prod.json
index 0ba4fed..56011a7 100644
--- a/recipes/packaging/packaging.expected/win_refs_heads_flutter-release-test_prod.json
+++ b/recipes/packaging/packaging.expected/win_refs_heads_flutter-release-test_prod.json
@@ -993,7 +993,8 @@
     },
     "name": "gsutil Upload [START_DIR]\\archive\\flutter-archive-package.zip to gs://flutter_infra_release/releases/flutter-release-test/windows/experimental/flutter-archive-package.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]\\\\archive\\\\flutter-archive-package.zip to gs://flutter_infra_release/releases/flutter-release-test/windows/experimental/flutter-archive-package.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
diff --git a/recipes/packaging/packaging.expected/win_refs_heads_master_flutter.json b/recipes/packaging/packaging.expected/win_refs_heads_master_flutter.json
index f67a5d6..bf2e411 100644
--- a/recipes/packaging/packaging.expected/win_refs_heads_master_flutter.json
+++ b/recipes/packaging/packaging.expected/win_refs_heads_master_flutter.json
@@ -1175,7 +1175,8 @@
     },
     "name": "gsutil Upload [START_DIR]\\archive\\flutter-archive-package.zip to gs://flutter_infra_release/releases/master/windows/experimental/flutter-archive-package.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]\\\\archive\\\\flutter-archive-package.zip to gs://flutter_infra_release/releases/master/windows/experimental/flutter-archive-package.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
@@ -1967,7 +1968,8 @@
     "name": "Verify flutter-archive-package.zip provenance.gsutil upload \"releases/master/windows/experimental/flutter-archive-package.zip.vsa.intoto.jsonl\"",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/releases/master/windows/experimental/flutter-archive-package.zip.vsa.intoto.jsonl@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/releases/master/windows/experimental/flutter-archive-package.zip.vsa.intoto.jsonl@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Verify flutter-archive-package.zip provenance|gsutil upload \\\"releases/master/windows/experimental/flutter-archive-package.zip.vsa.intoto.jsonl\\\"\": \"gs://flutter_infra_release/releases/master/windows/experimental/flutter-archive-package.zip.vsa.intoto.jsonl\"}@@@"
     ]
   },
   {
diff --git a/recipes/packaging/packaging.expected/win_refs_heads_master_prod.json b/recipes/packaging/packaging.expected/win_refs_heads_master_prod.json
index 4e6b8f4..f2116ee 100644
--- a/recipes/packaging/packaging.expected/win_refs_heads_master_prod.json
+++ b/recipes/packaging/packaging.expected/win_refs_heads_master_prod.json
@@ -993,7 +993,8 @@
     },
     "name": "gsutil Upload [START_DIR]\\archive\\flutter-archive-package.zip to gs://flutter_infra_release/releases/master/windows/experimental/flutter-archive-package.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]\\\\archive\\\\flutter-archive-package.zip to gs://flutter_infra_release/releases/master/windows/experimental/flutter-archive-package.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
diff --git a/recipes/packaging/packaging.expected/win_refs_heads_stable_flutter.json b/recipes/packaging/packaging.expected/win_refs_heads_stable_flutter.json
index 1c6b479..a8d4d91 100644
--- a/recipes/packaging/packaging.expected/win_refs_heads_stable_flutter.json
+++ b/recipes/packaging/packaging.expected/win_refs_heads_stable_flutter.json
@@ -1175,7 +1175,8 @@
     },
     "name": "gsutil Upload [START_DIR]\\archive\\flutter-archive-package.zip to gs://flutter_infra_release/releases/stable/windows/flutter-archive-package.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]\\\\archive\\\\flutter-archive-package.zip to gs://flutter_infra_release/releases/stable/windows/flutter-archive-package.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
@@ -1967,7 +1968,8 @@
     "name": "Verify flutter-archive-package.zip provenance.gsutil upload \"releases/stable/windows/flutter-archive-package.zip.vsa.intoto.jsonl\"",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/releases/stable/windows/flutter-archive-package.zip.vsa.intoto.jsonl@@@"
+      "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_infra_release/releases/stable/windows/flutter-archive-package.zip.vsa.intoto.jsonl@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"Verify flutter-archive-package.zip provenance|gsutil upload \\\"releases/stable/windows/flutter-archive-package.zip.vsa.intoto.jsonl\\\"\": \"gs://flutter_infra_release/releases/stable/windows/flutter-archive-package.zip.vsa.intoto.jsonl\"}@@@"
     ]
   },
   {
@@ -2191,7 +2193,8 @@
     },
     "name": "gsutil Upload [START_DIR]\\archive\\releases_linux.json to gs://flutter_infra_release/releases/releases_linux.json",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]\\\\archive\\\\releases_linux.json to gs://flutter_infra_release/releases/releases_linux.json\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {
diff --git a/recipes/packaging/packaging.expected/win_refs_heads_stable_prod.json b/recipes/packaging/packaging.expected/win_refs_heads_stable_prod.json
index 746c67e..2fa7b69 100644
--- a/recipes/packaging/packaging.expected/win_refs_heads_stable_prod.json
+++ b/recipes/packaging/packaging.expected/win_refs_heads_stable_prod.json
@@ -993,7 +993,8 @@
     },
     "name": "gsutil Upload [START_DIR]\\archive\\flutter-archive-package.zip to gs://flutter_infra_release/releases/stable/windows/experimental/flutter-archive-package.zip",
     "~followup_annotations": [
-      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@"
+      "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_infra_release/@@@",
+      "@@@SET_BUILD_PROPERTY@gsutil_urls@{\"gsutil Upload [START_DIR]\\\\archive\\\\flutter-archive-package.zip to gs://flutter_infra_release/releases/stable/windows/experimental/flutter-archive-package.zip\": \"gs://flutter_infra_release/\"}@@@"
     ]
   },
   {