Make a single call to ComputeContentHash

Change-Id: I5d5596fbd593a02d2d5a78daa551f814b2afc10b
Bug: https://github.com/flutter/flutter/issues/173664
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/68801
Reviewed-by: John McDole <codefu@google.com>
Commit-Queue: Matan Lurey <matanl@google.com>
diff --git a/recipes/release/release_builder.expected/base_linux_beta_monorepo.json b/recipes/release/release_builder.expected/base_linux_beta_monorepo.json
index 0d24b76..2ff36b3 100644
--- a/recipes/release/release_builder.expected/base_linux_beta_monorepo.json
+++ b/recipes/release/release_builder.expected/base_linux_beta_monorepo.json
@@ -274,6 +274,25 @@
     ]
   },
   {
+    "cmd": [
+      "bin/internal/content_aware_hash.sh"
+    ],
+    "cwd": "[START_DIR]/mirrors/flutter",
+    "luci_context": {
+      "realm": {
+        "name": "prod:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Compute content hash"
+  },
+  {
     "cmd": [],
     "name": "engine"
   },
@@ -382,28 +401,6 @@
     ]
   },
   {
-    "cmd": [
-      "bin/internal/content_aware_hash.sh"
-    ],
-    "cwd": "[START_DIR]/mirrors/flutter",
-    "luci_context": {
-      "realm": {
-        "name": "prod:try"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "engine.launch builds.Compute content hash",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "engine.launch builds.get buildbucket id",
     "~followup_annotations": [
diff --git a/recipes/release/release_builder.expected/base_linux_main_monorepo.json b/recipes/release/release_builder.expected/base_linux_main_monorepo.json
index 1c847d8..3876933 100644
--- a/recipes/release/release_builder.expected/base_linux_main_monorepo.json
+++ b/recipes/release/release_builder.expected/base_linux_main_monorepo.json
@@ -275,6 +275,25 @@
     ]
   },
   {
+    "cmd": [
+      "bin/internal/content_aware_hash.sh"
+    ],
+    "cwd": "[START_DIR]/mirrors/flutter",
+    "luci_context": {
+      "realm": {
+        "name": "prod:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Compute content hash"
+  },
+  {
     "cmd": [],
     "name": "engine"
   },
@@ -383,28 +402,6 @@
     ]
   },
   {
-    "cmd": [
-      "bin/internal/content_aware_hash.sh"
-    ],
-    "cwd": "[START_DIR]/mirrors/flutter",
-    "luci_context": {
-      "realm": {
-        "name": "prod:try"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "engine.launch builds.Compute content hash",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "engine.launch builds.get buildbucket id",
     "~followup_annotations": [
@@ -545,28 +542,6 @@
     ]
   },
   {
-    "cmd": [
-      "bin/internal/content_aware_hash.sh"
-    ],
-    "cwd": "[START_DIR]/mirrors/flutter",
-    "luci_context": {
-      "realm": {
-        "name": "prod:try"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "engine.launch builds.Compute content hash (2)",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "engine.launch builds.get buildbucket id (2)",
     "~followup_annotations": [
diff --git a/recipes/release/release_builder.expected/filter_disabled_by_top_level_target.json b/recipes/release/release_builder.expected/filter_disabled_by_top_level_target.json
index 4df04c7..bfe970f 100644
--- a/recipes/release/release_builder.expected/filter_disabled_by_top_level_target.json
+++ b/recipes/release/release_builder.expected/filter_disabled_by_top_level_target.json
@@ -275,6 +275,25 @@
     ]
   },
   {
+    "cmd": [
+      "bin/internal/content_aware_hash.sh"
+    ],
+    "cwd": "[START_DIR]/mirrors/flutter",
+    "luci_context": {
+      "realm": {
+        "name": "prod:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Compute content hash"
+  },
+  {
     "cmd": [],
     "name": "engine"
   },
@@ -396,28 +415,6 @@
     ]
   },
   {
-    "cmd": [
-      "bin/internal/content_aware_hash.sh"
-    ],
-    "cwd": "[START_DIR]/mirrors/flutter",
-    "luci_context": {
-      "realm": {
-        "name": "prod:try"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "engine.launch builds.Compute content hash",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "engine.launch builds.get buildbucket id",
     "~followup_annotations": [
@@ -563,28 +560,6 @@
     ]
   },
   {
-    "cmd": [
-      "bin/internal/content_aware_hash.sh"
-    ],
-    "cwd": "[START_DIR]/mirrors/flutter",
-    "luci_context": {
-      "realm": {
-        "name": "prod:try"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "engine.launch builds.Compute content hash (2)",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "engine.launch builds.get buildbucket id (2)",
     "~followup_annotations": [
diff --git a/recipes/release/release_builder.expected/filter_enabled_branches.json b/recipes/release/release_builder.expected/filter_enabled_branches.json
index 6e939e8..947368b 100644
--- a/recipes/release/release_builder.expected/filter_enabled_branches.json
+++ b/recipes/release/release_builder.expected/filter_enabled_branches.json
@@ -275,6 +275,25 @@
     ]
   },
   {
+    "cmd": [
+      "bin/internal/content_aware_hash.sh"
+    ],
+    "cwd": "[START_DIR]/mirrors/flutter",
+    "luci_context": {
+      "realm": {
+        "name": "prod:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Compute content hash"
+  },
+  {
     "cmd": [],
     "name": "engine"
   },
@@ -384,28 +403,6 @@
     ]
   },
   {
-    "cmd": [
-      "bin/internal/content_aware_hash.sh"
-    ],
-    "cwd": "[START_DIR]/mirrors/flutter",
-    "luci_context": {
-      "realm": {
-        "name": "prod:try"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "engine.launch builds.Compute content hash",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "engine.launch builds.get buildbucket id",
     "~followup_annotations": [
@@ -544,28 +541,6 @@
     ]
   },
   {
-    "cmd": [
-      "bin/internal/content_aware_hash.sh"
-    ],
-    "cwd": "[START_DIR]/mirrors/flutter",
-    "luci_context": {
-      "realm": {
-        "name": "prod:try"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "engine.launch builds.Compute content hash (2)",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "engine.launch builds.get buildbucket id (2)",
     "~followup_annotations": [
diff --git a/recipes/release/release_builder.expected/filter_enabled_by_top_level_target.json b/recipes/release/release_builder.expected/filter_enabled_by_top_level_target.json
index ee62896..e7ff696 100644
--- a/recipes/release/release_builder.expected/filter_enabled_by_top_level_target.json
+++ b/recipes/release/release_builder.expected/filter_enabled_by_top_level_target.json
@@ -275,6 +275,25 @@
     ]
   },
   {
+    "cmd": [
+      "bin/internal/content_aware_hash.sh"
+    ],
+    "cwd": "[START_DIR]/mirrors/flutter",
+    "luci_context": {
+      "realm": {
+        "name": "prod:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Compute content hash"
+  },
+  {
     "cmd": [],
     "name": "engine"
   },
@@ -396,28 +415,6 @@
     ]
   },
   {
-    "cmd": [
-      "bin/internal/content_aware_hash.sh"
-    ],
-    "cwd": "[START_DIR]/mirrors/flutter",
-    "luci_context": {
-      "realm": {
-        "name": "prod:try"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "engine.launch builds.Compute content hash",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "engine.launch builds.get buildbucket id",
     "~followup_annotations": [
@@ -563,28 +560,6 @@
     ]
   },
   {
-    "cmd": [
-      "bin/internal/content_aware_hash.sh"
-    ],
-    "cwd": "[START_DIR]/mirrors/flutter",
-    "luci_context": {
-      "realm": {
-        "name": "prod:try"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "engine.launch builds.Compute content hash (2)",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "engine.launch builds.get buildbucket id (2)",
     "~followup_annotations": [
diff --git a/recipes/release/release_builder.expected/filter_git_ref_not_stable_or_beta_on_release_channel.json b/recipes/release/release_builder.expected/filter_git_ref_not_stable_or_beta_on_release_channel.json
index cbaf7a3..66f8502 100644
--- a/recipes/release/release_builder.expected/filter_git_ref_not_stable_or_beta_on_release_channel.json
+++ b/recipes/release/release_builder.expected/filter_git_ref_not_stable_or_beta_on_release_channel.json
@@ -274,6 +274,25 @@
     ]
   },
   {
+    "cmd": [
+      "bin/internal/content_aware_hash.sh"
+    ],
+    "cwd": "[START_DIR]/mirrors/flutter",
+    "luci_context": {
+      "realm": {
+        "name": "prod:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Compute content hash"
+  },
+  {
     "cmd": [],
     "name": "engine"
   },
@@ -502,28 +521,6 @@
     ]
   },
   {
-    "cmd": [
-      "bin/internal/content_aware_hash.sh"
-    ],
-    "cwd": "[START_DIR]/mirrors/flutter",
-    "luci_context": {
-      "realm": {
-        "name": "prod:try"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "framework.launch builds.Compute content hash",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "framework.launch builds.get buildbucket id",
     "~followup_annotations": [
diff --git a/recipes/release/release_builder.expected/filter_targets_not_on_current_platform.json b/recipes/release/release_builder.expected/filter_targets_not_on_current_platform.json
index 0611419..528c4ef 100644
--- a/recipes/release/release_builder.expected/filter_targets_not_on_current_platform.json
+++ b/recipes/release/release_builder.expected/filter_targets_not_on_current_platform.json
@@ -274,6 +274,25 @@
     ]
   },
   {
+    "cmd": [
+      "bin/internal/content_aware_hash.sh"
+    ],
+    "cwd": "[START_DIR]/mirrors/flutter",
+    "luci_context": {
+      "realm": {
+        "name": "prod:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Compute content hash"
+  },
+  {
     "cmd": [],
     "name": "engine"
   },
@@ -473,28 +492,6 @@
     ]
   },
   {
-    "cmd": [
-      "bin/internal/content_aware_hash.sh"
-    ],
-    "cwd": "[START_DIR]/mirrors/flutter",
-    "luci_context": {
-      "realm": {
-        "name": "prod:try"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "framework.launch builds.Compute content hash",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "framework.launch builds.get buildbucket id",
     "~followup_annotations": [
diff --git a/recipes/release/release_builder.expected/linux_engine_monorepo_candidate.json b/recipes/release/release_builder.expected/linux_engine_monorepo_candidate.json
index d569e24..c1935d4 100644
--- a/recipes/release/release_builder.expected/linux_engine_monorepo_candidate.json
+++ b/recipes/release/release_builder.expected/linux_engine_monorepo_candidate.json
@@ -275,6 +275,25 @@
     ]
   },
   {
+    "cmd": [
+      "bin/internal/content_aware_hash.sh"
+    ],
+    "cwd": "[START_DIR]/mirrors/flutter",
+    "luci_context": {
+      "realm": {
+        "name": "dart-internal:flutter"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Compute content hash"
+  },
+  {
     "cmd": [],
     "name": "engine"
   },
@@ -507,28 +526,6 @@
     ]
   },
   {
-    "cmd": [
-      "bin/internal/content_aware_hash.sh"
-    ],
-    "cwd": "[START_DIR]/mirrors/flutter",
-    "luci_context": {
-      "realm": {
-        "name": "dart-internal:flutter"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "framework.launch builds.Compute content hash",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "framework.launch builds.get buildbucket id",
     "~followup_annotations": [
@@ -667,28 +664,6 @@
     ]
   },
   {
-    "cmd": [
-      "bin/internal/content_aware_hash.sh"
-    ],
-    "cwd": "[START_DIR]/mirrors/flutter",
-    "luci_context": {
-      "realm": {
-        "name": "dart-internal:flutter"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "framework.launch builds.Compute content hash (2)",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "framework.launch builds.get buildbucket id (2)",
     "~followup_annotations": [
diff --git a/recipes/release/release_builder.expected/linux_schedule_during_release_override.json b/recipes/release/release_builder.expected/linux_schedule_during_release_override.json
index d1de8f4..a4d9d86 100644
--- a/recipes/release/release_builder.expected/linux_schedule_during_release_override.json
+++ b/recipes/release/release_builder.expected/linux_schedule_during_release_override.json
@@ -275,6 +275,25 @@
     ]
   },
   {
+    "cmd": [
+      "bin/internal/content_aware_hash.sh"
+    ],
+    "cwd": "[START_DIR]/mirrors/flutter",
+    "luci_context": {
+      "realm": {
+        "name": "prod:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Compute content hash"
+  },
+  {
     "cmd": [],
     "name": "engine"
   },
@@ -384,28 +403,6 @@
     ]
   },
   {
-    "cmd": [
-      "bin/internal/content_aware_hash.sh"
-    ],
-    "cwd": "[START_DIR]/mirrors/flutter",
-    "luci_context": {
-      "realm": {
-        "name": "prod:try"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "engine.launch builds.Compute content hash",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "engine.launch builds.get buildbucket id",
     "~followup_annotations": [
@@ -544,28 +541,6 @@
     ]
   },
   {
-    "cmd": [
-      "bin/internal/content_aware_hash.sh"
-    ],
-    "cwd": "[START_DIR]/mirrors/flutter",
-    "luci_context": {
-      "realm": {
-        "name": "prod:try"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "engine.launch builds.Compute content hash (2)",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "engine.launch builds.get buildbucket id (2)",
     "~followup_annotations": [
@@ -929,28 +904,6 @@
     ]
   },
   {
-    "cmd": [
-      "bin/internal/content_aware_hash.sh"
-    ],
-    "cwd": "[START_DIR]/mirrors/flutter",
-    "luci_context": {
-      "realm": {
-        "name": "prod:try"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "framework.launch builds.Compute content hash",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "framework.launch builds.get buildbucket id",
     "~followup_annotations": [
diff --git a/recipes/release/release_builder.expected/linux_scheduler_release.json b/recipes/release/release_builder.expected/linux_scheduler_release.json
index 8e95eda..f507ee3 100644
--- a/recipes/release/release_builder.expected/linux_scheduler_release.json
+++ b/recipes/release/release_builder.expected/linux_scheduler_release.json
@@ -275,6 +275,25 @@
     ]
   },
   {
+    "cmd": [
+      "bin/internal/content_aware_hash.sh"
+    ],
+    "cwd": "[START_DIR]/mirrors/flutter",
+    "luci_context": {
+      "realm": {
+        "name": "prod:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Compute content hash"
+  },
+  {
     "cmd": [],
     "name": "engine"
   },
@@ -384,28 +403,6 @@
     ]
   },
   {
-    "cmd": [
-      "bin/internal/content_aware_hash.sh"
-    ],
-    "cwd": "[START_DIR]/mirrors/flutter",
-    "luci_context": {
-      "realm": {
-        "name": "prod:try"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "engine.launch builds.Compute content hash",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "engine.launch builds.get buildbucket id",
     "~followup_annotations": [
@@ -544,28 +541,6 @@
     ]
   },
   {
-    "cmd": [
-      "bin/internal/content_aware_hash.sh"
-    ],
-    "cwd": "[START_DIR]/mirrors/flutter",
-    "luci_context": {
-      "realm": {
-        "name": "prod:try"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "engine.launch builds.Compute content hash (2)",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "engine.launch builds.get buildbucket id (2)",
     "~followup_annotations": [
@@ -929,28 +904,6 @@
     ]
   },
   {
-    "cmd": [
-      "bin/internal/content_aware_hash.sh"
-    ],
-    "cwd": "[START_DIR]/mirrors/flutter",
-    "luci_context": {
-      "realm": {
-        "name": "prod:try"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "framework.launch builds.Compute content hash",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "framework.launch builds.get buildbucket id",
     "~followup_annotations": [
diff --git a/recipes/release/release_builder.expected/retry_override_skips_config_name_not_matched.json b/recipes/release/release_builder.expected/retry_override_skips_config_name_not_matched.json
index 8057c2b..22bd6c5 100644
--- a/recipes/release/release_builder.expected/retry_override_skips_config_name_not_matched.json
+++ b/recipes/release/release_builder.expected/retry_override_skips_config_name_not_matched.json
@@ -275,6 +275,25 @@
     ]
   },
   {
+    "cmd": [
+      "bin/internal/content_aware_hash.sh"
+    ],
+    "cwd": "[START_DIR]/mirrors/flutter",
+    "luci_context": {
+      "realm": {
+        "name": "prod:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Compute content hash"
+  },
+  {
     "cmd": [],
     "name": "engine"
   },
@@ -385,28 +404,6 @@
     ]
   },
   {
-    "cmd": [
-      "bin/internal/content_aware_hash.sh"
-    ],
-    "cwd": "[START_DIR]/mirrors/flutter",
-    "luci_context": {
-      "realm": {
-        "name": "prod:try"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "engine.launch builds.Compute content hash",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "engine.launch builds.get buildbucket id",
     "~followup_annotations": [
diff --git a/recipes/release/release_builder.expected/retry_override_still_runs_non_config_name_target.json b/recipes/release/release_builder.expected/retry_override_still_runs_non_config_name_target.json
index d725840..c9ab041 100644
--- a/recipes/release/release_builder.expected/retry_override_still_runs_non_config_name_target.json
+++ b/recipes/release/release_builder.expected/retry_override_still_runs_non_config_name_target.json
@@ -275,6 +275,25 @@
     ]
   },
   {
+    "cmd": [
+      "bin/internal/content_aware_hash.sh"
+    ],
+    "cwd": "[START_DIR]/mirrors/flutter",
+    "luci_context": {
+      "realm": {
+        "name": "prod:try"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Compute content hash"
+  },
+  {
     "cmd": [],
     "name": "engine"
   },
@@ -463,28 +482,6 @@
     ]
   },
   {
-    "cmd": [
-      "bin/internal/content_aware_hash.sh"
-    ],
-    "cwd": "[START_DIR]/mirrors/flutter",
-    "luci_context": {
-      "realm": {
-        "name": "prod:try"
-      },
-      "resultdb": {
-        "current_invocation": {
-          "name": "invocations/build:8945511751514863184",
-          "update_token": "token"
-        },
-        "hostname": "rdbhost"
-      }
-    },
-    "name": "framework.launch builds.Compute content hash",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@2@@@"
-    ]
-  },
-  {
     "cmd": [],
     "name": "framework.launch builds.get buildbucket id",
     "~followup_annotations": [
diff --git a/recipes/release/release_builder.py b/recipes/release/release_builder.py
index 887cb5c..2095d26 100644
--- a/recipes/release/release_builder.py
+++ b/recipes/release/release_builder.py
@@ -196,13 +196,12 @@
 
 def ScheduleBuildsForRepo(
     api,
-    checkout_path,
-    is_engine,
+    ci_yaml_path,
+    content_hash,
     git_ref,
     retry_override_list,
     release_branch,
 ):
-  ci_yaml_path = checkout_path / 'engine' / 'src' / 'flutter' / '.ci.yaml' if is_engine else checkout_path / '.ci.yaml'
   ci_yaml = api.yaml.read('read ci yaml', ci_yaml_path, api.json.output())
   tasks = {}
   build_results = []
@@ -224,7 +223,7 @@
       # TODO(matanlurey): Remove after 3.35 is release to stable.
       # https://github.com/flutter/flutter/issues/171023
       properties['is_fusion'] = 'true'
-      properties['content_hash'] = ComputeContentHash(api, checkout_path)
+      properties['content_hash'] = content_hash
       tasks.update(
           api.shard_util.schedule(
               [target],
@@ -242,7 +241,10 @@
   )
   checkout_path = api.path.start_dir / repository
   api.repo_util.checkout(
-      repository, checkout_path=checkout_path, url=git_url, ref=git_ref
+      repository,
+      checkout_path=checkout_path,
+      url=git_url,
+      ref=git_ref,
   )
 
   # Get release branch.
@@ -254,6 +256,9 @@
   # the config_name of targets to explitly retry
   retry_override_list = api.properties.get('retry_override_list', '').split()
 
+  # Engine content hash (for uploading engine builds correctly)
+  content_hash = ComputeContentHash(api, checkout_path)
+
   def collect_and_display_builds(builds):
     with api.step.nest('collect builds'):
       build_results = api.shard_util.collect(builds)
@@ -267,8 +272,8 @@
     collect_and_display_builds(
         ScheduleBuildsForRepo(
             api,
-            checkout_path,
-            True,
+            checkout_path / 'engine' / 'src' / 'flutter' / '.ci.yaml',
+            content_hash,
             git_ref,
             retry_override_list,
             release_branch,
@@ -279,8 +284,8 @@
     collect_and_display_builds(
         ScheduleBuildsForRepo(
             api,
-            checkout_path,
-            False,
+            checkout_path / '.ci.yaml',
+            content_hash,
             git_ref,
             retry_override_list,
             release_branch,