| [ |
| { |
| "cmd": [ |
| "python3", |
| "RECIPE_REPO[depot_tools]/gsutil.py", |
| "stat", |
| "gs://flutter_archives_v2/caches/builder-linux.json" |
| ], |
| "name": "builder exists" |
| }, |
| { |
| "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\": 60000000, \"hashes\": {\"builder\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0\", \"git\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0\"}, \"last_cache_ts_micro_seconds\": 1684900396429444}", |
| "[CLEANUP]/builder-linux.json" |
| ], |
| "infra_step": true, |
| "name": "Write cache metadata", |
| "~followup_annotations": [ |
| "@@@STEP_LOG_LINE@builder-linux.json@{\"cache_ttl_microseconds\": 60000000, \"hashes\": {\"builder\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0\", \"git\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/0\"}, \"last_cache_ts_micro_seconds\": 1684900396429444}@@@", |
| "@@@STEP_LOG_END@builder-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]/builder-linux.json", |
| "gs://flutter_archives_v2/caches/builder-linux.json" |
| ], |
| "infra_step": true, |
| "name": "gsutil Upload [CLEANUP]/builder-linux.json to gs://flutter_archives_v2/caches/builder-linux.json", |
| "~followup_annotations": [ |
| "@@@STEP_LINK@gsutil.upload@https://storage.cloud.google.com/flutter_archives_v2/caches/builder-linux.json@@@" |
| ] |
| }, |
| { |
| "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_LINE@json.output@{@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"hashes\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"builder\": \"hash1\",@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"git\": \"hash2\"@@@", |
| "@@@STEP_LOG_LINE@json.output@ }@@@", |
| "@@@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", |
| "rmtree", |
| "[CACHE]/builder" |
| ], |
| "infra_step": true, |
| "name": "Mount caches.Clobber local cache: builder", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "[START_DIR]/cipd_tool/infra/tools/luci/cas/33f9d887e5b8aeaaf9d65506acccfa8da2c480712e534a23a79e92c342c44bee/cas", |
| "download", |
| "-cas-instance", |
| "projects/example-cas-server/instances/default_instance", |
| "-digest", |
| "hash1", |
| "-dir", |
| "[CACHE]/builder" |
| ], |
| "infra_step": true, |
| "name": "Mount caches.Mounting builder with hash hash1", |
| "~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]/git" |
| ], |
| "infra_step": true, |
| "name": "Mount caches.Clobber local cache: git", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "[START_DIR]/cipd_tool/infra/tools/luci/cas/33f9d887e5b8aeaaf9d65506acccfa8da2c480712e534a23a79e92c342c44bee/cas", |
| "download", |
| "-cas-instance", |
| "projects/example-cas-server/instances/default_instance", |
| "-digest", |
| "hash2", |
| "-dir", |
| "[CACHE]/git" |
| ], |
| "infra_step": true, |
| "name": "Mount caches.Mounting git with hash hash2", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@" |
| ] |
| }, |
| { |
| "name": "$result" |
| } |
| ] |