Set cwd=flutter when running git-based commands.

Change-Id: I0f4c504a087afb7fb290f37bf74a059dbe9c03bf
Bug: https://github.com/flutter/flutter/issues/169164
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/65560
Reviewed-by: Jason Simmons <jsimmons@google.com>
Commit-Queue: Matan Lurey <matanl@google.com>
Reviewed-by: John McDole <codefu@google.com>
diff --git a/recipes/release/release_publish.expected/out_of_date_engine.version.json b/recipes/release/release_publish.expected/out_of_date_engine.version.json
index 013b1fd..dadf69f 100644
--- a/recipes/release/release_publish.expected/out_of_date_engine.version.json
+++ b/recipes/release/release_publish.expected/out_of_date_engine.version.json
@@ -131,8 +131,9 @@
   {
     "cmd": [
       "bash",
-      "[START_DIR]/flutter/bin/internal/last_engine_commit.sh"
+      "bin/internal/last_engine_commit.sh"
     ],
+    "cwd": "[START_DIR]/flutter",
     "name": "validate engine.version.compute last engine commit",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@"
diff --git a/recipes/release/release_publish.expected/success.json b/recipes/release/release_publish.expected/success.json
index cb096db..0784735 100644
--- a/recipes/release/release_publish.expected/success.json
+++ b/recipes/release/release_publish.expected/success.json
@@ -128,8 +128,9 @@
   {
     "cmd": [
       "bash",
-      "[START_DIR]/flutter/bin/internal/last_engine_commit.sh"
+      "bin/internal/last_engine_commit.sh"
     ],
+    "cwd": "[START_DIR]/flutter",
     "name": "validate engine.version.compute last engine commit",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@"
diff --git a/recipes/release/release_publish.expected/success_fallback_last_engine_commit.sh.json b/recipes/release/release_publish.expected/success_fallback_last_engine_commit.sh.json
index 6983e94..35998ab 100644
--- a/recipes/release/release_publish.expected/success_fallback_last_engine_commit.sh.json
+++ b/recipes/release/release_publish.expected/success_fallback_last_engine_commit.sh.json
@@ -128,8 +128,6 @@
   {
     "cmd": [
       "git",
-      "-C",
-      "[START_DIR]/flutter",
       "log",
       "-1",
       "--pretty=format:%H",
@@ -137,6 +135,7 @@
       "DEPS",
       "engine"
     ],
+    "cwd": "[START_DIR]/flutter",
     "name": "validate engine.version.compute last engine commit",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@"
diff --git a/recipes/release/release_publish.py b/recipes/release/release_publish.py
index 1257e46..6043dc0 100644
--- a/recipes/release/release_publish.py
+++ b/recipes/release/release_publish.py
@@ -119,20 +119,28 @@
     # This provides backwards compatibility for older release candidates.
     # https://github.com/flutter/flutter/issues/168674
     compute_last_engine_commit = []
-    last_engine_script = checkout / 'bin' / 'internal' / 'last_engine_commit.sh'
-    if api.path.exists(last_engine_script):
+    last_engine_script = 'bin/internal/last_engine_commit.sh'
+    if api.path.exists(checkout / last_engine_script):
       compute_last_engine_commit = ['bash', last_engine_script]
     else:
       compute_last_engine_commit = [
-          'git', '-C', checkout, 'log', '-1', '--pretty=format:%H', '--',
-          'DEPS', 'engine'
+          'git',
+          'log',
+          '-1',
+          '--pretty=format:%H',
+          '--',
+          'DEPS',
+          'engine',
       ]
 
-    last_commit_step = api.step(
-        'compute last engine commit',
-        cmd=compute_last_engine_commit,
-        stdout=api.raw_io.output_text(),
-    )
+    # Both commands need to run in the context of "flutter/" (need flutter/.git)
+    with api.context(cwd=checkout):
+      last_commit_step = api.step(
+          'compute last engine commit',
+          cmd=compute_last_engine_commit,
+          stdout=api.raw_io.output_text(),
+      )
+
     last_commit_sha = last_commit_step.stdout.strip()
 
     engine_version_step = api.step(