Fix monorepo testing that needs engine.version

Monorepo testing relies on engine.version having hash that is different from checkout out flutter version, so this CL ensures that engine.version is not overriden by flutter update_engine_version.

https://github.com/flutter/flutter/commit/021b2b36275342ad94a1ef44f9748b1e6153b0a3 is the change that updated engine.version

Example of previously broken build https://ci.chromium.org/ui/p/dart/builders/ci.sandbox/flutter-linux-flutter-plugins/6833
Fixed build https://ci.chromium.org/ui/p/dart/builders/ci.sandbox.shadow/flutter-linux-flutter-plugins/8/overview

Change-Id: I75914387bd101d7cfc18041bb6d5e9ed9a6ff0ab
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/61662
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Alexander Aprelev <aam@google.com>
diff --git a/recipes/engine_v2/tester.expected/engine.json b/recipes/engine_v2/tester.expected/engine.json
index e68aa90..60b36bb 100644
--- a/recipes/engine_v2/tester.expected/engine.json
+++ b/recipes/engine_v2/tester.expected/engine.json
@@ -422,6 +422,54 @@
   },
   {
     "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "move",
+      "[CACHE]/builder/flutter/DEPS",
+      "[CACHE]/builder/flutter/DEPS.bak"
+    ],
+    "cwd": "[CACHE]/builder/flutter",
+    "env": {
+      "ARTIFACT_HUB_REPOSITORY": "artifactregistry://us-maven.pkg.dev/artifact-foundry-prod/maven-3p",
+      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+      "FLUTTER_STORAGE_BASE_URL": "https://storage.googleapis.com/flutter_archives_v2/81123491",
+      "GIT_BRANCH": "",
+      "LUCI_BRANCH": "",
+      "LUCI_CI": "True",
+      "LUCI_PR": "",
+      "OS": "linux",
+      "PUB_CACHE": "[START_DIR]/.pub-cache",
+      "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+      "SDK_CHECKOUT_PATH": "[CACHE]/builder/flutter",
+      "SHARD": "framework_coverage",
+      "SUBSHARD": null
+    },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/builder/flutter/bin",
+        "[CACHE]/builder/flutter/bin/cache/dart-sdk/bin"
+      ]
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "flutter:prod"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Rename [CACHE]/builder/flutter/DEPS to DEPS.bak to preserve engine.version"
+  },
+  {
+    "cmd": [
       "flutter",
       "update-packages",
       "-v"
diff --git a/recipes/engine_v2/tester.expected/monorepo.json b/recipes/engine_v2/tester.expected/monorepo.json
index 24c04cf..1a5d184 100644
--- a/recipes/engine_v2/tester.expected/monorepo.json
+++ b/recipes/engine_v2/tester.expected/monorepo.json
@@ -656,6 +656,54 @@
   },
   {
     "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "move",
+      "[CACHE]/builder/flutter/DEPS",
+      "[CACHE]/builder/flutter/DEPS.bak"
+    ],
+    "cwd": "[CACHE]/builder/flutter",
+    "env": {
+      "ARTIFACT_HUB_REPOSITORY": "artifactregistry://us-maven.pkg.dev/artifact-foundry-prod/maven-3p",
+      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+      "FLUTTER_STORAGE_BASE_URL": "https://storage.googleapis.com/flutter_archives_v2/monorepo/123",
+      "GIT_BRANCH": "",
+      "LUCI_BRANCH": "",
+      "LUCI_CI": "True",
+      "LUCI_PR": "",
+      "OS": "linux",
+      "PUB_CACHE": "[START_DIR]/.pub-cache",
+      "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+      "SDK_CHECKOUT_PATH": "[CACHE]/builder/flutter",
+      "SHARD": "framework_coverage",
+      "SUBSHARD": null
+    },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/builder/flutter/bin",
+        "[CACHE]/builder/flutter/bin/cache/dart-sdk/bin"
+      ]
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:123",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Rename [CACHE]/builder/flutter/DEPS to DEPS.bak to preserve engine.version"
+  },
+  {
+    "cmd": [
       "flutter",
       "update-packages",
       "-v"
diff --git a/recipes/engine_v2/tester.expected/monorepo_framework_tests.json b/recipes/engine_v2/tester.expected/monorepo_framework_tests.json
index e71be4c..7ab4b2c 100644
--- a/recipes/engine_v2/tester.expected/monorepo_framework_tests.json
+++ b/recipes/engine_v2/tester.expected/monorepo_framework_tests.json
@@ -725,6 +725,61 @@
   },
   {
     "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "move",
+      "[CACHE]/builder/flutter/DEPS",
+      "[CACHE]/builder/flutter/DEPS.bak"
+    ],
+    "cwd": "[CACHE]/builder/flutter",
+    "env": {
+      "ANDROID_HOME": "[CACHE]/android/sdk",
+      "ANDROID_NDK_PATH": "[CACHE]/android/ndk",
+      "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1",
+      "ANDROID_SDK_ROOT": "[CACHE]/android/sdk",
+      "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android",
+      "ARTIFACT_HUB_REPOSITORY": "artifactregistry://us-maven.pkg.dev/artifact-foundry-prod/maven-3p",
+      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+      "FLUTTER_STORAGE_BASE_URL": "https://storage.googleapis.com/flutter_archives_v2/monorepo/123",
+      "GIT_BRANCH": "",
+      "GRADLE_OPTS": "-Dorg.gradle.daemon=false",
+      "GRADLE_USER_HOME": "[CACHE]/gradle",
+      "LUCI_BRANCH": "",
+      "LUCI_CI": "True",
+      "LUCI_PR": "",
+      "OS": "linux",
+      "PUB_CACHE": "[START_DIR]/.pub-cache",
+      "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+      "SDK_CHECKOUT_PATH": "[CACHE]/builder/flutter",
+      "SHARD": "framework_tests",
+      "SUBSHARD": "slow"
+    },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/builder/flutter/bin",
+        "[CACHE]/builder/flutter/bin/cache/dart-sdk/bin"
+      ]
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:123",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Rename [CACHE]/builder/flutter/DEPS to DEPS.bak to preserve engine.version"
+  },
+  {
+    "cmd": [
       "flutter",
       "update-packages",
       "-v"
diff --git a/recipes/engine_v2/tester.expected/monorepo_tryjob.json b/recipes/engine_v2/tester.expected/monorepo_tryjob.json
index 9853a78..138644e 100644
--- a/recipes/engine_v2/tester.expected/monorepo_tryjob.json
+++ b/recipes/engine_v2/tester.expected/monorepo_tryjob.json
@@ -422,6 +422,54 @@
   },
   {
     "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "move",
+      "[CACHE]/builder/flutter/DEPS",
+      "[CACHE]/builder/flutter/DEPS.bak"
+    ],
+    "cwd": "[CACHE]/builder/flutter",
+    "env": {
+      "ARTIFACT_HUB_REPOSITORY": "artifactregistry://us-maven.pkg.dev/artifact-foundry-prod/maven-3p",
+      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+      "FLUTTER_STORAGE_BASE_URL": "https://storage.googleapis.com/flutter_archives_v2/monorepo_try/81123491",
+      "GIT_BRANCH": "",
+      "LUCI_BRANCH": "",
+      "LUCI_CI": "True",
+      "LUCI_PR": "",
+      "OS": "linux",
+      "PUB_CACHE": "[START_DIR]/.pub-cache",
+      "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+      "SDK_CHECKOUT_PATH": "[CACHE]/builder/flutter",
+      "SHARD": "framework_coverage",
+      "SUBSHARD": null
+    },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/builder/flutter/bin",
+        "[CACHE]/builder/flutter/bin/cache/dart-sdk/bin"
+      ]
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:8945511751514863184",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Rename [CACHE]/builder/flutter/DEPS to DEPS.bak to preserve engine.version"
+  },
+  {
+    "cmd": [
       "flutter",
       "update-packages",
       "-v"
diff --git a/recipes/engine_v2/tester.expected/monorepo_web_tests.json b/recipes/engine_v2/tester.expected/monorepo_web_tests.json
index d21e944..c6bab6e 100644
--- a/recipes/engine_v2/tester.expected/monorepo_web_tests.json
+++ b/recipes/engine_v2/tester.expected/monorepo_web_tests.json
@@ -742,6 +742,58 @@
   },
   {
     "cmd": [
+      "vpython3",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "move",
+      "[CACHE]/builder/flutter/DEPS",
+      "[CACHE]/builder/flutter/DEPS.bak"
+    ],
+    "cwd": "[CACHE]/builder/flutter",
+    "env": {
+      "ARTIFACT_HUB_REPOSITORY": "artifactregistry://us-maven.pkg.dev/artifact-foundry-prod/maven-3p",
+      "CHROME_EXECUTABLE": "[CACHE]/chrome/chrome/chrome",
+      "CHROME_NO_SANDBOX": "true",
+      "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]",
+      "FLUTTER_STORAGE_BASE_URL": "https://storage.googleapis.com/flutter_archives_v2/monorepo/123",
+      "GIT_BRANCH": "",
+      "LUCI_BRANCH": "",
+      "LUCI_CI": "True",
+      "LUCI_PR": "",
+      "OS": "linux",
+      "PUB_CACHE": "[START_DIR]/.pub-cache",
+      "REVISION": "12345abcde12345abcde12345abcde12345abcde",
+      "SDK_CHECKOUT_PATH": "[CACHE]/builder/flutter",
+      "SHARD": "web_tests",
+      "SUBSHARD": "3"
+    },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/builder/flutter/bin",
+        "[CACHE]/builder/flutter/bin/cache/dart-sdk/bin",
+        "[CACHE]/chrome/chrome",
+        "[CACHE]/chrome/drivers"
+      ]
+    },
+    "infra_step": true,
+    "luci_context": {
+      "realm": {
+        "name": "dart:ci.sandbox"
+      },
+      "resultdb": {
+        "current_invocation": {
+          "name": "invocations/build:123",
+          "update_token": "token"
+        },
+        "hostname": "rdbhost"
+      }
+    },
+    "name": "Rename [CACHE]/builder/flutter/DEPS to DEPS.bak to preserve engine.version"
+  },
+  {
+    "cmd": [
       "flutter",
       "update-packages",
       "-v"
diff --git a/recipes/engine_v2/tester.py b/recipes/engine_v2/tester.py
index 4a67351..b925a87 100644
--- a/recipes/engine_v2/tester.py
+++ b/recipes/engine_v2/tester.py
@@ -129,6 +129,8 @@
     shard_name = shard
   env['FLUTTER_STORAGE_BASE_URL'] = artifact_url
   with api.context(env=env, env_prefixes=env_prefixes, cwd=flutter):
+    api.file.move('Rename %s/DEPS to DEPS.bak to preserve engine.version' % flutter,
+      flutter / 'DEPS', flutter / 'DEPS.bak')
     api.retry.step(
         'download dependencies', ['flutter', 'update-packages', '-v'],
         max_attempts=2,