Add leak_tracking and test_randomization_off properties that set envrionment variables used by leak tracking tests Change-Id: I2e70ae49411b1645b4efa85128dadbb76d96886f Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/76160 Commit-Queue: Jason Simmons <jsimmons@google.com> Reviewed-by: John McDole <codefu@google.com>
diff --git a/recipe_modules/repo_util/api.py b/recipe_modules/repo_util/api.py index db80fdb..3e1d5f8 100644 --- a/recipe_modules/repo_util/api.py +++ b/recipe_modules/repo_util/api.py
@@ -456,6 +456,14 @@ } self.add_property_env_variables(env) + # Set environment variables used by leak tracking tests. + leak_tracking = self.m.properties.get('leak_tracking', '') + if leak_tracking: + env['LEAK_TRACKING'] = 'true' + test_randomization_off = self.m.properties.get('test_randomization_off', '') + if test_randomization_off: + env['TEST_RANDOMIZATION_OFF'] = 'true' + # Cocoon signal that we want to pin the engine realm. See flutter/bin/internal/update_engine_version.sh flutter_realm = self.m.properties.get('flutter_realm', False) if flutter_realm:
diff --git a/recipe_modules/repo_util/examples/full.expected/get_content_hash_url-bad-url.json b/recipe_modules/repo_util/examples/full.expected/get_content_hash_url-bad-url.json index 1d84dc8..8ca752c 100644 --- a/recipe_modules/repo_util/examples/full.expected/get_content_hash_url-bad-url.json +++ b/recipe_modules/repo_util/examples/full.expected/get_content_hash_url-bad-url.json
@@ -894,7 +894,7 @@ " File \"RECIPE_REPO[flutter]/recipe_modules/repo_util/examples/full.py\", line 65, in RunSteps", " actual = api.repo_util.get_content_hash_url(api, original, content_hash)", " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", - " File \"RECIPE_REPO[flutter]/recipe_modules/repo_util/api.py\", line 664, in get_content_hash_url", + " File \"RECIPE_REPO[flutter]/recipe_modules/repo_util/api.py\", line 672, in get_content_hash_url", " raise AssertionError(", "AssertionError: Content hash not found in remote_url: gs://flutter/foo/bad-url/bar.zip" ]
diff --git a/recipe_modules/repo_util/examples/full.expected/leak_tracking.json b/recipe_modules/repo_util/examples/full.expected/leak_tracking.json new file mode 100644 index 0000000..8311a84 --- /dev/null +++ b/recipe_modules/repo_util/examples/full.expected/leak_tracking.json
@@ -0,0 +1,879 @@ +[ + { + "cmd": [], + "name": "Checkout flutter/flutter" + }, + { + "cmd": [ + "python3", + "-u", + "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py", + "--path", + "[START_DIR]/flutter", + "--url", + "https://flutter.googlesource.com/mirrors/flutter" + ], + "name": "Checkout flutter/flutter.git setup", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "fetch", + "origin", + "master", + "--recurse-submodules", + "--progress", + "--tags" + ], + "cwd": "[START_DIR]/flutter", + "env": { + "PATH": "RECIPE_REPO[depot_tools]:<PATH>" + }, + "infra_step": true, + "name": "Checkout flutter/flutter.git fetch", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "checkout", + "-f", + "FETCH_HEAD" + ], + "cwd": "[START_DIR]/flutter", + "infra_step": true, + "name": "Checkout flutter/flutter.git checkout", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "rev-parse", + "HEAD" + ], + "cwd": "[START_DIR]/flutter", + "infra_step": true, + "name": "Checkout flutter/flutter.read revision", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@", + "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@", + "@@@SET_BUILD_PROPERTY@got_revision@\"deadbeef\"@@@" + ] + }, + { + "cmd": [ + "git", + "clean", + "-f", + "-d", + "-x" + ], + "cwd": "[START_DIR]/flutter", + "infra_step": true, + "name": "Checkout flutter/flutter.git clean", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "submodule", + "sync" + ], + "cwd": "[START_DIR]/flutter", + "infra_step": true, + "name": "Checkout flutter/flutter.submodule sync", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "submodule", + "update", + "--init", + "--recursive" + ], + "cwd": "[START_DIR]/flutter", + "infra_step": true, + "name": "Checkout flutter/flutter.submodule update", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [], + "name": "Checkout flutter/engine" + }, + { + "cmd": [ + "python3", + "-u", + "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py", + "--path", + "[START_DIR]/engine", + "--url", + "https://flutter.googlesource.com/mirrors/engine" + ], + "name": "Checkout flutter/engine.git setup", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "fetch", + "origin", + "main", + "--recurse-submodules", + "--progress", + "--tags" + ], + "cwd": "[START_DIR]/engine", + "env": { + "PATH": "RECIPE_REPO[depot_tools]:<PATH>" + }, + "infra_step": true, + "name": "Checkout flutter/engine.git fetch", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "checkout", + "-f", + "FETCH_HEAD" + ], + "cwd": "[START_DIR]/engine", + "infra_step": true, + "name": "Checkout flutter/engine.git checkout", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "rev-parse", + "HEAD" + ], + "cwd": "[START_DIR]/engine", + "infra_step": true, + "name": "Checkout flutter/engine.read revision", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@", + "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@", + "@@@SET_BUILD_PROPERTY@got_revision@\"deadbeef\"@@@" + ] + }, + { + "cmd": [ + "git", + "clean", + "-f", + "-d", + "-x" + ], + "cwd": "[START_DIR]/engine", + "infra_step": true, + "name": "Checkout flutter/engine.git clean", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "submodule", + "sync" + ], + "cwd": "[START_DIR]/engine", + "infra_step": true, + "name": "Checkout flutter/engine.submodule sync", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "submodule", + "update", + "--init", + "--recursive" + ], + "cwd": "[START_DIR]/engine", + "infra_step": true, + "name": "Checkout flutter/engine.submodule update", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [], + "name": "Checkout flutter/cocoon" + }, + { + "cmd": [ + "python3", + "-u", + "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py", + "--path", + "[START_DIR]/cocoon", + "--url", + "https://flutter.googlesource.com/mirrors/cocoon" + ], + "name": "Checkout flutter/cocoon.git setup", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "fetch", + "origin", + "main", + "--recurse-submodules", + "--progress", + "--tags" + ], + "cwd": "[START_DIR]/cocoon", + "env": { + "PATH": "RECIPE_REPO[depot_tools]:<PATH>" + }, + "infra_step": true, + "name": "Checkout flutter/cocoon.git fetch", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "checkout", + "-f", + "FETCH_HEAD" + ], + "cwd": "[START_DIR]/cocoon", + "infra_step": true, + "name": "Checkout flutter/cocoon.git checkout", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "rev-parse", + "HEAD" + ], + "cwd": "[START_DIR]/cocoon", + "infra_step": true, + "name": "Checkout flutter/cocoon.read revision", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@", + "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@", + "@@@SET_BUILD_PROPERTY@got_revision@\"deadbeef\"@@@" + ] + }, + { + "cmd": [ + "git", + "clean", + "-f", + "-d", + "-x" + ], + "cwd": "[START_DIR]/cocoon", + "infra_step": true, + "name": "Checkout flutter/cocoon.git clean", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "submodule", + "sync" + ], + "cwd": "[START_DIR]/cocoon", + "infra_step": true, + "name": "Checkout flutter/cocoon.submodule sync", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "submodule", + "update", + "--init", + "--recursive" + ], + "cwd": "[START_DIR]/cocoon", + "infra_step": true, + "name": "Checkout flutter/cocoon.submodule update", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [], + "name": "Checkout flutter/packages" + }, + { + "cmd": [ + "python3", + "-u", + "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py", + "--path", + "[START_DIR]/packages", + "--url", + "https://flutter.googlesource.com/mirrors/packages" + ], + "name": "Checkout flutter/packages.git setup", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "fetch", + "origin", + "main", + "--recurse-submodules", + "--progress", + "--tags" + ], + "cwd": "[START_DIR]/packages", + "env": { + "PATH": "RECIPE_REPO[depot_tools]:<PATH>" + }, + "infra_step": true, + "name": "Checkout flutter/packages.git fetch", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "checkout", + "-f", + "FETCH_HEAD" + ], + "cwd": "[START_DIR]/packages", + "infra_step": true, + "name": "Checkout flutter/packages.git checkout", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "rev-parse", + "HEAD" + ], + "cwd": "[START_DIR]/packages", + "infra_step": true, + "name": "Checkout flutter/packages.read revision", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@", + "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@", + "@@@SET_BUILD_PROPERTY@got_revision@\"deadbeef\"@@@" + ] + }, + { + "cmd": [ + "git", + "clean", + "-f", + "-d", + "-x" + ], + "cwd": "[START_DIR]/packages", + "infra_step": true, + "name": "Checkout flutter/packages.git clean", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "submodule", + "sync" + ], + "cwd": "[START_DIR]/packages", + "infra_step": true, + "name": "Checkout flutter/packages.submodule sync", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "submodule", + "update", + "--init", + "--recursive" + ], + "cwd": "[START_DIR]/packages", + "infra_step": true, + "name": "Checkout flutter/packages.submodule update", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [], + "name": "Checkout flutter/flutter (2)" + }, + { + "cmd": [ + "python3", + "-u", + "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py", + "--path", + "[START_DIR]/flutter", + "--url", + "https://flutter.googlesource.com/mirrors/flutter" + ], + "name": "Checkout flutter/flutter (2).git setup", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "fetch", + "origin", + "beta", + "--recurse-submodules", + "--progress", + "--tags" + ], + "cwd": "[START_DIR]/flutter", + "env": { + "PATH": "RECIPE_REPO[depot_tools]:<PATH>" + }, + "infra_step": true, + "name": "Checkout flutter/flutter (2).git fetch", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "checkout", + "-f", + "FETCH_HEAD" + ], + "cwd": "[START_DIR]/flutter", + "infra_step": true, + "name": "Checkout flutter/flutter (2).git checkout", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "rev-parse", + "HEAD" + ], + "cwd": "[START_DIR]/flutter", + "infra_step": true, + "name": "Checkout flutter/flutter (2).read revision", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@", + "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@", + "@@@SET_BUILD_PROPERTY@got_revision@\"deadbeef\"@@@" + ] + }, + { + "cmd": [ + "git", + "clean", + "-f", + "-d", + "-x" + ], + "cwd": "[START_DIR]/flutter", + "infra_step": true, + "name": "Checkout flutter/flutter (2).git clean", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "submodule", + "sync" + ], + "cwd": "[START_DIR]/flutter", + "infra_step": true, + "name": "Checkout flutter/flutter (2).submodule sync", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "submodule", + "update", + "--init", + "--recursive" + ], + "cwd": "[START_DIR]/flutter", + "infra_step": true, + "name": "Checkout flutter/flutter (2).submodule update", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "rev-parse", + "HEAD" + ], + "cwd": "[START_DIR]/flutter", + "infra_step": true, + "name": "git rev-parse" + }, + { + "cmd": [ + "[START_DIR]/flutter/bin/flutter", + "config", + "--clear-features" + ], + "env": { + "ARTIFACT_HUB_REPOSITORY": "artifactregistry://us-maven.pkg.dev/artifact-foundry-prod/maven-3p", + "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]", + "GIT_BRANCH": "", + "LEAK_TRACKING": "true", + "LUCI_BRANCH": "", + "LUCI_CI": "True", + "LUCI_PR": "1", + "OS": "linux", + "PUB_CACHE": "[START_DIR]/.pub-cache", + "REVISION": "12345abcde12345abcde12345abcde12345abcde", + "SDK_CHECKOUT_PATH": "[START_DIR]/flutter", + "TEST_RANDOMIZATION_OFF": "true" + }, + "env_prefixes": { + "PATH": [ + "[START_DIR]/flutter/bin", + "[START_DIR]/flutter/bin/cache/dart-sdk/bin" + ] + }, + "name": "flutter config --clear-features" + }, + { + "cmd": [ + "vpython3", + "-u", + "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", + "--json-output", + "/path/to/tmp/json", + "ensure-directory", + "--mode", + "0o777", + "[START_DIR]/engine" + ], + "infra_step": true, + "name": "ensure directory" + }, + { + "cmd": [], + "name": "Mount caches" + }, + { + "cmd": [ + "python3", + "-u", + "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py", + "--", + "RECIPE_REPO[depot_tools]/gsutil.py", + "----", + "cat", + "gs://flutter_archives_v2/caches/builder-linux.json" + ], + "infra_step": true, + "name": "Mount caches.gsutil cat", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@", + "@@@STEP_LOG_END@json.output (invalid)@@@", + "@@@STEP_LOG_LINE@json.output (exception)@Expecting value: line 1 column 1 (char 0)@@@", + "@@@STEP_LOG_END@json.output (exception)@@@" + ] + }, + { + "cmd": [], + "name": "Checkout source code" + }, + { + "cmd": [ + "vpython3", + "-u", + "RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py", + "--spec-path", + "cache_dir = '[CACHE]/git'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': '.', 'url': 'https://github.com/flutter/engine'}]", + "--revision_mapping_file", + "{\"got_engine_revision\": \".\"}", + "--git-cache-dir", + "[CACHE]/git", + "--cleanup-dir", + "[CLEANUP]/bot_update", + "--output_json", + "/path/to/tmp/json", + "--revision", + ".@refs/pull/1/head", + "--refs", + "refs/pull/1/head" + ], + "cwd": "[START_DIR]/engine", + "env": { + "CHROME_HEADLESS": "1", + "DEPOT_TOOLS_COLLECT_METRICS": "0", + "GIT_BACKENDINFO": "1", + "GIT_DAPPER_TRACE": "1", + "GIT_HTTP_LOW_SPEED_LIMIT": "102400", + "GIT_HTTP_LOW_SPEED_TIME": "1800", + "GIT_SSH_COMMAND": "ssh -o SendEnv=GIT_DAPPER_TRACE -o SendEnv=GIT_BACKENDINFO", + "GIT_TRACE2_EVENT": "[CLEANUP]/trace2-event", + "GIT_TRACE_CURL": "[CLEANUP]/trace-curl", + "GIT_TRACE_CURL_NO_DATA": "1", + "GIT_TRACE_PACKET": "[CLEANUP]/trace-packet" + }, + "env_suffixes": { + "DEPOT_TOOLS_UPDATE": [ + "0", + "0" + ], + "PATH": [ + "RECIPE_REPO[depot_tools]", + "RECIPE_REPO[depot_tools]" + ] + }, + "infra_step": true, + "name": "Checkout source code.bot_update", + "timeout": 2700, + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@", + "@@@STEP_TEXT@Some step text@@@", + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"did_run\": true,@@@", + "@@@STEP_LOG_LINE@json.output@ \"fixed_revisions\": {@@@", + "@@@STEP_LOG_LINE@json.output@ \".\": \"refs/pull/1/head\"@@@", + "@@@STEP_LOG_LINE@json.output@ },@@@", + "@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@", + "@@@STEP_LOG_LINE@json.output@ \".\": {@@@", + "@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/..git\",@@@", + "@@@STEP_LOG_LINE@json.output@ \"revision\": \"3466849351759a9d769091ecc5768f8e9e417424\"@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@ },@@@", + "@@@STEP_LOG_LINE@json.output@ \"patch_root\": null,@@@", + "@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@", + "@@@STEP_LOG_LINE@json.output@ \"got_engine_revision\": \"3466849351759a9d769091ecc5768f8e9e417424\",@@@", + "@@@STEP_LOG_LINE@json.output@ \"got_engine_revision_cp\": \"refs/pull/1/head@{#205336}\"@@@", + "@@@STEP_LOG_LINE@json.output@ },@@@", + "@@@STEP_LOG_LINE@json.output@ \"root\": \".\",@@@", + "@@@STEP_LOG_LINE@json.output@ \"source_manifest\": {@@@", + "@@@STEP_LOG_LINE@json.output@ \"directories\": {@@@", + "@@@STEP_LOG_LINE@json.output@ \".\": {@@@", + "@@@STEP_LOG_LINE@json.output@ \"git_checkout\": {@@@", + "@@@STEP_LOG_LINE@json.output@ \"repo_url\": \"https://fake.org/..git\",@@@", + "@@@STEP_LOG_LINE@json.output@ \"revision\": \"3466849351759a9d769091ecc5768f8e9e417424\"@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@ },@@@", + "@@@STEP_LOG_LINE@json.output@ \"version\": 0@@@", + "@@@STEP_LOG_LINE@json.output@ },@@@", + "@@@STEP_LOG_LINE@json.output@ \"step_text\": \"Some step text\"@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@", + "@@@SET_BUILD_PROPERTY@got_engine_revision@\"3466849351759a9d769091ecc5768f8e9e417424\"@@@", + "@@@SET_BUILD_PROPERTY@got_engine_revision_cp@\"refs/pull/1/head@{#205336}\"@@@" + ] + }, + { + "cmd": [ + "vpython3", + "-u", + "RECIPE_REPO[depot_tools]/gclient.py", + "runhooks" + ], + "cwd": "[START_DIR]/engine", + "env_suffixes": { + "DEPOT_TOOLS_UPDATE": [ + "0" + ], + "PATH": [ + "RECIPE_REPO[depot_tools]", + "RECIPE_REPO[depot_tools]" + ] + }, + "name": "Checkout source code.gclient runhooks", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [], + "name": "Checkout flutter/flutter (3)" + }, + { + "cmd": [ + "python3", + "-u", + "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py", + "--path", + "[START_DIR]/flutter", + "--url", + "https://github.com/flutter/engine" + ], + "name": "Checkout flutter/flutter (3).git setup", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "fetch", + "origin", + "refs/pull/1/head", + "--recurse-submodules", + "--progress", + "--tags" + ], + "cwd": "[START_DIR]/flutter", + "env": { + "PATH": "RECIPE_REPO[depot_tools]:<PATH>" + }, + "infra_step": true, + "name": "Checkout flutter/flutter (3).git fetch", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "checkout", + "-f", + "FETCH_HEAD" + ], + "cwd": "[START_DIR]/flutter", + "infra_step": true, + "name": "Checkout flutter/flutter (3).git checkout", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "rev-parse", + "HEAD" + ], + "cwd": "[START_DIR]/flutter", + "infra_step": true, + "name": "Checkout flutter/flutter (3).read revision", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@", + "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@", + "@@@SET_BUILD_PROPERTY@got_revision@\"deadbeef\"@@@" + ] + }, + { + "cmd": [ + "git", + "clean", + "-f", + "-d", + "-x" + ], + "cwd": "[START_DIR]/flutter", + "infra_step": true, + "name": "Checkout flutter/flutter (3).git clean", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "submodule", + "sync" + ], + "cwd": "[START_DIR]/flutter", + "infra_step": true, + "name": "Checkout flutter/flutter (3).submodule sync", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "git", + "submodule", + "update", + "--init", + "--recursive" + ], + "cwd": "[START_DIR]/flutter", + "infra_step": true, + "name": "Checkout flutter/flutter (3).submodule update", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "vpython3", + "-u", + "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", + "--json-output", + "/path/to/tmp/json", + "copy", + "[START_DIR]/flutter/engine/src/flutter/ci/builders/standalone/build_config.json.json", + "/path/to/tmp/" + ], + "infra_step": true, + "name": "Read build config file", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@build_config.json.json@{@@@", + "@@@STEP_LOG_LINE@build_config.json.json@ \"name\": \"flutter/build\"@@@", + "@@@STEP_LOG_LINE@build_config.json.json@}@@@", + "@@@STEP_LOG_END@build_config.json.json@@@" + ] + }, + { + "name": "$result" + } +] \ No newline at end of file
diff --git a/recipe_modules/repo_util/examples/full.py b/recipe_modules/repo_util/examples/full.py index a5b02fa..54cdb26 100644 --- a/recipe_modules/repo_util/examples/full.py +++ b/recipe_modules/repo_util/examples/full.py
@@ -298,3 +298,14 @@ ), api.repo_util.flutter_environment_data(), ) + yield api.test( + 'leak_tracking', + api.properties( + config_name='build_config.json', + git_url='https://github.com/flutter/engine', + git_ref='refs/pull/1/head', + leak_tracking='true', + test_randomization_off='true', + ), + api.repo_util.flutter_environment_data(), + )