| [ |
| { |
| "cmd": [ |
| "vpython3", |
| "-u", |
| "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", |
| "--json-output", |
| "/path/to/tmp/json", |
| "rmtree", |
| "[CACHE]/builder/src/out" |
| ], |
| "infra_step": true, |
| "name": "Clobber build output" |
| }, |
| { |
| "cmd": [ |
| "vpython3", |
| "-u", |
| "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", |
| "--json-output", |
| "/path/to/tmp/json", |
| "ensure-directory", |
| "--mode", |
| "0o777", |
| "[CACHE]/builder" |
| ], |
| "infra_step": true, |
| "name": "Ensure checkout cache" |
| }, |
| { |
| "cmd": [ |
| "python3", |
| "RECIPE_REPO[depot_tools]/gsutil.py", |
| "stat", |
| "gs://flutter_archives_v2/caches/None-linux.json" |
| ], |
| "name": "None exists" |
| }, |
| { |
| "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/None-linux.json" |
| ], |
| "infra_step": true, |
| "name": "gsutil cat", |
| "~followup_annotations": [ |
| "@@@STEP_LOG_LINE@json.output@{}@@@", |
| "@@@STEP_LOG_END@json.output@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "vpython3", |
| "-u", |
| "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", |
| "--json-output", |
| "/path/to/tmp/json", |
| "listdir", |
| "[CACHE]/builder" |
| ], |
| "infra_step": true, |
| "name": "Empty [CACHE]/builder", |
| "~followup_annotations": [ |
| "@@@STEP_LOG_END@listdir@@@" |
| ] |
| }, |
| { |
| "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)@No JSON object could be decoded@@@", |
| "@@@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': 'src/flutter', 'url': 'https://flutter.googlesource.com/mirrors/engine'}]", |
| "--revision_mapping_file", |
| "{\"got_engine_revision\": \"src/flutter\"}", |
| "--git-cache-dir", |
| "[CACHE]/git", |
| "--cleanup-dir", |
| "[CLEANUP]/bot_update", |
| "--output_json", |
| "/path/to/tmp/json", |
| "--revision", |
| "src/flutter@HEAD" |
| ], |
| "cwd": "[CACHE]/builder", |
| "env": { |
| "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk", |
| "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1", |
| "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android", |
| "CLANG_CRASH_DIAGNOSTICS_DIR": "[CLEANUP]/tmp_tmp_2", |
| "CLANG_MODULE_CACHE_PATH": "", |
| "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]", |
| "DEPOT_TOOLS_COLLECT_METRICS": "0", |
| "ENGINE_CHECKOUT_PATH": "[CACHE]/builder", |
| "ENGINE_PATH": "[CACHE]/builder", |
| "GIT_BACKENDINFO": "1", |
| "GIT_BRANCH": "", |
| "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", |
| "LUCI_BRANCH": "", |
| "LUCI_CI": "True", |
| "LUCI_CLEANUP": "[CLEANUP]", |
| "LUCI_PR": "", |
| "LUCI_WORKDIR": "[START_DIR]", |
| "OS": "linux", |
| "REVISION": "" |
| }, |
| "env_prefixes": { |
| "PATH": [ |
| "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin", |
| "[CACHE]/builder/src/flutter/third_party/dart/tools/sdks/dart-sdk/bin" |
| ] |
| }, |
| "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@ \"src/flutter\": \"HEAD\"@@@", |
| "@@@STEP_LOG_LINE@json.output@ },@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"manifest\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"src/flutter\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"repository\": \"https://fake.org/src/flutter.git\",@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"revision\": \"9221bca00ddbd888260084def81f09543281b952\"@@@", |
| "@@@STEP_LOG_LINE@json.output@ }@@@", |
| "@@@STEP_LOG_LINE@json.output@ },@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"patch_failure\": false,@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"patch_root\": \"src/flutter\",@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"properties\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"got_engine_revision\": \"9221bca00ddbd888260084def81f09543281b952\",@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"got_engine_revision_cp\": \"refs/heads/main@{#84512}\",@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"got_revision\": \"9221bca00ddbd888260084def81f09543281b952\"@@@", |
| "@@@STEP_LOG_LINE@json.output@ },@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"root\": \"src/flutter\",@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"source_manifest\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"directories\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"src/flutter\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"git_checkout\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"repo_url\": \"https://fake.org/src/flutter.git\",@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"revision\": \"9221bca00ddbd888260084def81f09543281b952\"@@@", |
| "@@@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@\"9221bca00ddbd888260084def81f09543281b952\"@@@", |
| "@@@SET_BUILD_PROPERTY@got_engine_revision_cp@\"refs/heads/main@{#84512}\"@@@", |
| "@@@SET_BUILD_PROPERTY@got_revision@\"9221bca00ddbd888260084def81f09543281b952\"@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "vpython3", |
| "-u", |
| "RECIPE_REPO[depot_tools]/gclient.py", |
| "runhooks" |
| ], |
| "cwd": "[CACHE]/builder", |
| "env": { |
| "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk", |
| "ANDROID_SDK_HOME": "[CLEANUP]/tmp_tmp_1", |
| "ANDROID_USER_HOME": "[CLEANUP]/tmp_tmp_1/.android", |
| "CLANG_CRASH_DIAGNOSTICS_DIR": "[CLEANUP]/tmp_tmp_2", |
| "CLANG_MODULE_CACHE_PATH": "", |
| "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]", |
| "ENGINE_CHECKOUT_PATH": "[CACHE]/builder", |
| "ENGINE_PATH": "[CACHE]/builder", |
| "GIT_BRANCH": "", |
| "LUCI_BRANCH": "", |
| "LUCI_CI": "True", |
| "LUCI_CLEANUP": "[CLEANUP]", |
| "LUCI_PR": "", |
| "LUCI_WORKDIR": "[START_DIR]", |
| "OS": "linux", |
| "REVISION": "" |
| }, |
| "env_prefixes": { |
| "PATH": [ |
| "[CACHE]/builder/src/third_party/dart/tools/sdks/dart-sdk/bin", |
| "[CACHE]/builder/src/flutter/third_party/dart/tools/sdks/dart-sdk/bin" |
| ] |
| }, |
| "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": [ |
| "vpython3", |
| "-u", |
| "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", |
| "--json-output", |
| "/path/to/tmp/json", |
| "rmtree", |
| "[CACHE]/builder/fake" |
| ], |
| "infra_step": true, |
| "name": "Removing path [CACHE]/builder/fake from archive" |
| }, |
| { |
| "cmd": [ |
| "vpython3", |
| "-u", |
| "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", |
| "--json-output", |
| "/path/to/tmp/json", |
| "copy", |
| "RECIPE_MODULE[recipe_engine::cas]/resources/infra.sha1", |
| "/path/to/tmp/" |
| ], |
| "infra_step": true, |
| "name": "read infra revision", |
| "~followup_annotations": [ |
| "@@@STEP_LOG_LINE@infra.sha1@git_revision:mock_infra_git_revision@@@", |
| "@@@STEP_LOG_END@infra.sha1@@@" |
| ] |
| }, |
| { |
| "cmd": [], |
| "name": "install infra/tools/luci/cas" |
| }, |
| { |
| "cmd": [ |
| "vpython3", |
| "-u", |
| "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", |
| "--json-output", |
| "/path/to/tmp/json", |
| "ensure-directory", |
| "--mode", |
| "0o777", |
| "[START_DIR]/cipd_tool/infra/tools/luci/cas/33f9d887e5b8aeaaf9d65506acccfa8da2c480712e534a23a79e92c342c44bee" |
| ], |
| "infra_step": true, |
| "name": "install infra/tools/luci/cas.ensure package directory", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "cipd", |
| "ensure", |
| "-root", |
| "[START_DIR]/cipd_tool/infra/tools/luci/cas/33f9d887e5b8aeaaf9d65506acccfa8da2c480712e534a23a79e92c342c44bee", |
| "-ensure-file", |
| "infra/tools/luci/cas/${platform} git_revision:mock_infra_git_revision", |
| "-max-threads", |
| "0", |
| "-json-output", |
| "/path/to/tmp/json" |
| ], |
| "infra_step": true, |
| "name": "install infra/tools/luci/cas.ensure_installed", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@", |
| "@@@STEP_LOG_LINE@json.output@{@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"\": [@@@", |
| "@@@STEP_LOG_LINE@json.output@ {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:moc\",@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/tools/luci/cas/resolved-platform\"@@@", |
| "@@@STEP_LOG_LINE@json.output@ }@@@", |
| "@@@STEP_LOG_LINE@json.output@ ]@@@", |
| "@@@STEP_LOG_LINE@json.output@ }@@@", |
| "@@@STEP_LOG_LINE@json.output@}@@@", |
| "@@@STEP_LOG_END@json.output@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "[START_DIR]/cipd_tool/infra/tools/luci/cas/33f9d887e5b8aeaaf9d65506acccfa8da2c480712e534a23a79e92c342c44bee/cas", |
| "archive", |
| "-log-level", |
| "debug", |
| "-cas-instance", |
| "projects/example-cas-server/instances/default_instance", |
| "-dump-digest", |
| "/path/to/tmp/", |
| "-paths-json", |
| "[[\"[CACHE]/builder\", \".\"]]" |
| ], |
| "infra_step": true, |
| "name": "Archive builder", |
| "~followup_annotations": [ |
| "@@@STEP_LINK@CAS UI@https://cas-viewer.appspot.com/projects/example-cas-server/instances/default_instance/blobs/e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0/tree@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "[START_DIR]/cipd_tool/infra/tools/luci/cas/33f9d887e5b8aeaaf9d65506acccfa8da2c480712e534a23a79e92c342c44bee/cas", |
| "archive", |
| "-log-level", |
| "debug", |
| "-cas-instance", |
| "projects/example-cas-server/instances/default_instance", |
| "-dump-digest", |
| "/path/to/tmp/", |
| "-paths-json", |
| "[[\"[CACHE]/git\", \".\"]]" |
| ], |
| "infra_step": true, |
| "name": "Archive git", |
| "~followup_annotations": [ |
| "@@@STEP_LINK@CAS UI@https://cas-viewer.appspot.com/projects/example-cas-server/instances/default_instance/blobs/e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0/tree@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "vpython3", |
| "-u", |
| "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", |
| "--json-output", |
| "/path/to/tmp/json", |
| "copy", |
| "{\"cache_ttl_microseconds\": 14400000000, \"hashes\": {\"builder\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0\", \"git\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0\"}, \"last_cache_ts_micro_seconds\": 1684900396429444}", |
| "[CLEANUP]/None-linux.json" |
| ], |
| "infra_step": true, |
| "name": "Write cache metadata", |
| "~followup_annotations": [ |
| "@@@STEP_LOG_LINE@None-linux.json@{\"cache_ttl_microseconds\": 14400000000, \"hashes\": {\"builder\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0\", \"git\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0\"}, \"last_cache_ts_micro_seconds\": 1684900396429444}@@@", |
| "@@@STEP_LOG_END@None-linux.json@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "python3", |
| "-u", |
| "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py", |
| "--", |
| "RECIPE_REPO[depot_tools]/gsutil.py", |
| "----", |
| "-h", |
| "Cache-Control:max-age=60", |
| "cp", |
| "[CLEANUP]/None-linux.json", |
| "gs://flutter_archives_v2/caches/None-linux.json" |
| ], |
| "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@@@" |
| ] |
| }, |
| { |
| "name": "$result" |
| } |
| ] |