| [ |
| { |
| "cmd": [], |
| "name": "Fuchsia Tests" |
| }, |
| { |
| "cmd": [ |
| "flutter", |
| "precache", |
| "--fuchsia", |
| "--no-android", |
| "--no-ios" |
| ], |
| "name": "Fuchsia Tests.Precache Flutter Artifacts", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "flutter", |
| "precache", |
| "--flutter_runner", |
| "--no-android", |
| "--no-ios" |
| ], |
| "name": "Fuchsia Tests.Precache Flutter Runners", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@" |
| ] |
| }, |
| { |
| "cmd": [], |
| "name": "Fuchsia Tests.Create Isolate Archive", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@" |
| ] |
| }, |
| { |
| "cmd": [], |
| "name": "Fuchsia Tests.Create Isolate Archive.Download Fuchsia Dependencies", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@2@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "vpython", |
| "-u", |
| "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", |
| "--json-output", |
| "/path/to/tmp/json", |
| "copy", |
| "None/bin/cache/artifacts/fuchsia/meta/manifest.json", |
| "/path/to/tmp/" |
| ], |
| "infra_step": true, |
| "name": "Fuchsia Tests.Create Isolate Archive.Download Fuchsia Dependencies.Read fuchsia manifest", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@3@@@", |
| "@@@STEP_LOG_LINE@manifest.json@{\"id\": \"123\"}@@@", |
| "@@@STEP_LOG_END@manifest.json@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "python", |
| "-u", |
| "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py", |
| "--", |
| "RECIPE_REPO[depot_tools]/gsutil.py", |
| "----", |
| "cp", |
| "gs://fuchsia/development/123/images/generic-x64.tgz", |
| "[CLEANUP]/tmp_tmp_1" |
| ], |
| "infra_step": true, |
| "name": "Fuchsia Tests.Create Isolate Archive.Download Fuchsia Dependencies.gsutil download fuchsia system image", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@3@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "python", |
| "-u", |
| "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py", |
| "--", |
| "RECIPE_REPO[depot_tools]/gsutil.py", |
| "----", |
| "cp", |
| "gs://fuchsia/development/123/packages/generic-x64.tar.gz", |
| "[CLEANUP]/tmp_tmp_1" |
| ], |
| "infra_step": true, |
| "name": "Fuchsia Tests.Create Isolate Archive.Download Fuchsia Dependencies.gsutil download fuchsia companion packages", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@3@@@" |
| ] |
| }, |
| { |
| "cmd": [], |
| "name": "Fuchsia Tests.Create Isolate Archive.Collect tool deps", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@2@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "vpython", |
| "-u", |
| "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", |
| "--json-output", |
| "/path/to/tmp/json", |
| "copy", |
| "None/dev/bots/run_fuchsia_tests.sh", |
| "[CLEANUP]/tmp_tmp_1" |
| ], |
| "infra_step": true, |
| "name": "Fuchsia Tests.Create Isolate Archive.Collect tool deps.Copy test script", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@3@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "vpython", |
| "-u", |
| "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", |
| "--json-output", |
| "/path/to/tmp/json", |
| "copy", |
| "None/bin/cache/artifacts/fuchsia/tools/device-finder", |
| "[CLEANUP]/tmp_tmp_1" |
| ], |
| "infra_step": true, |
| "name": "Fuchsia Tests.Create Isolate Archive.Collect tool deps.Copy device-finder", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@3@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "vpython", |
| "-u", |
| "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", |
| "--json-output", |
| "/path/to/tmp/json", |
| "copy", |
| "None/bin/cache/artifacts/fuchsia/tools/pm", |
| "[CLEANUP]/tmp_tmp_1" |
| ], |
| "infra_step": true, |
| "name": "Fuchsia Tests.Create Isolate Archive.Collect tool deps.Copy pm", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@3@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "vpython", |
| "-u", |
| "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", |
| "--json-output", |
| "/path/to/tmp/json", |
| "copytree", |
| "None", |
| "[CLEANUP]/tmp_tmp_1/flutter" |
| ], |
| "infra_step": true, |
| "name": "Fuchsia Tests.Create Isolate Archive.Copy flutter framework", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@2@@@" |
| ] |
| }, |
| { |
| "cmd": [], |
| "name": "Fuchsia Tests.Create Isolate Archive.install infra/tools/luci/isolated", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@2@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "vpython", |
| "-u", |
| "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", |
| "--json-output", |
| "/path/to/tmp/json", |
| "ensure-directory", |
| "--mode", |
| "0777", |
| "[CACHE]/cipd/infra/tools/luci/isolated/isolated_module_pin" |
| ], |
| "infra_step": true, |
| "name": "Fuchsia Tests.Create Isolate Archive.install infra/tools/luci/isolated.ensure package directory", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@3@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "cipd", |
| "ensure", |
| "-root", |
| "[CACHE]/cipd/infra/tools/luci/isolated/isolated_module_pin", |
| "-ensure-file", |
| "infra/tools/luci/isolated/${platform} isolated_module_pin", |
| "-max-threads", |
| "0", |
| "-json-output", |
| "/path/to/tmp/json" |
| ], |
| "infra_step": true, |
| "name": "Fuchsia Tests.Create Isolate Archive.install infra/tools/luci/isolated.ensure_installed", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@3@@@", |
| "@@@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-isolated_module_\", @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/tools/luci/isolated/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": [ |
| "[CACHE]/cipd/infra/tools/luci/isolated/isolated_module_pin/isolated", |
| "archive", |
| "-verbose", |
| "-isolate-server", |
| "https://example.isolateserver.appspot.com", |
| "-namespace", |
| "default-gzip", |
| "-dump-hash", |
| "/path/to/tmp/", |
| "-dirs", |
| "[CLEANUP]/tmp_tmp_1:." |
| ], |
| "infra_step": true, |
| "name": "Fuchsia Tests.Create Isolate Archive.Archive Fuchsia Test Isolate", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@2@@@", |
| "@@@STEP_LINK@isolated UI@https://example.isolateserver.appspot.com/browse?namespace=default-gzip&hash=%5Bdummy+hash%5D@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "vpython", |
| "-u", |
| "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", |
| "--json-output", |
| "/path/to/tmp/json", |
| "rmtree", |
| "[CLEANUP]/tmp_tmp_1" |
| ], |
| "infra_step": true, |
| "name": "Fuchsia Tests.Create Isolate Archive.temp dir for isolate_dir", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@2@@@" |
| ] |
| }, |
| { |
| "cmd": [], |
| "name": "Fuchsia Tests.install infra/tools/luci/swarming", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "vpython", |
| "-u", |
| "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", |
| "--json-output", |
| "/path/to/tmp/json", |
| "ensure-directory", |
| "--mode", |
| "0777", |
| "[CACHE]/cipd/infra/tools/luci/swarming/test_version" |
| ], |
| "infra_step": true, |
| "name": "Fuchsia Tests.install infra/tools/luci/swarming.ensure package directory", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@2@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "cipd", |
| "ensure", |
| "-root", |
| "[CACHE]/cipd/infra/tools/luci/swarming/test_version", |
| "-ensure-file", |
| "infra/tools/luci/swarming/${platform} test_version", |
| "-max-threads", |
| "0", |
| "-json-output", |
| "/path/to/tmp/json" |
| ], |
| "infra_step": true, |
| "name": "Fuchsia Tests.install infra/tools/luci/swarming.ensure_installed", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@2@@@", |
| "@@@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-test_version----\", @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/tools/luci/swarming/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": [ |
| "[CACHE]/cipd/infra/tools/luci/swarming/test_version/swarming", |
| "spawn-tasks", |
| "-server", |
| "https://example.swarmingserver.appspot.com", |
| "-json-input", |
| "{\"requests\": [{\"name\": \"flutter_fuchsia_driver_tests\", \"priority\": \"100\", \"service_account\": \"\", \"task_slices\": [{\"expiration_secs\": \"3600\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"flutter/fuchsia_ctl/${platform}\", \"path\": \".\", \"version\": null}]}, \"command\": [\"./run_fuchsia_tests.sh\", \"generic-x64.tgz\"], \"containment\": {\"containment_type\": \"AUTO\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"luci.flutter.tests\"}], \"env\": [], \"env_prefixes\": [], \"execution_timeout_secs\": \"3600\", \"grace_period_secs\": \"30\", \"idempotent\": true, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"3600\", \"outputs\": [], \"relative_cwd\": \"\"}, \"wait_for_capacity\": false}]}]}", |
| "-json-output", |
| "/path/to/tmp/json" |
| ], |
| "infra_step": true, |
| "name": "Fuchsia Tests.Trigger Fuchsia Driver Tests", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@", |
| "@@@STEP_LOG_LINE@json.output@{@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"tasks\": [@@@", |
| "@@@STEP_LOG_LINE@json.output@ {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"request\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"name\": \"flutter_fuchsia_driver_tests\"@@@", |
| "@@@STEP_LOG_LINE@json.output@ }, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"task_id\": \"0\"@@@", |
| "@@@STEP_LOG_LINE@json.output@ }@@@", |
| "@@@STEP_LOG_LINE@json.output@ ]@@@", |
| "@@@STEP_LOG_LINE@json.output@}@@@", |
| "@@@STEP_LOG_END@json.output@@@", |
| "@@@STEP_LINK@task UI: flutter_fuchsia_driver_tests@https://example.swarmingserver.appspot.com/task?id=0@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "vpython", |
| "-u", |
| "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", |
| "--json-output", |
| "/path/to/tmp/json", |
| "ensure-directory", |
| "--mode", |
| "0777", |
| "[CLEANUP]/fuchsia_test_output" |
| ], |
| "infra_step": true, |
| "name": "swarming output" |
| }, |
| { |
| "cmd": [ |
| "[CACHE]/cipd/infra/tools/luci/swarming/test_version/swarming", |
| "collect", |
| "-server", |
| "https://example.swarmingserver.appspot.com", |
| "-task-summary-json", |
| "/path/to/tmp/json", |
| "-task-output-stdout", |
| "json", |
| "-output-dir", |
| "[CLEANUP]/fuchsia_test_output", |
| "-timeout", |
| "30m", |
| "0" |
| ], |
| "infra_step": true, |
| "name": "collect", |
| "~followup_annotations": [ |
| "@@@STEP_LOG_LINE@json.output@{@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"0\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"output\": \"hello world!\", @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"outputs\": [], @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"results\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"bot_id\": \"vm-123\", @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"duration\": 62.35, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"exit_code\": 0, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"name\": \"flutter_fuchsia_driver_tests\", @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"outputs_ref\": {@@@", |
| "@@@STEP_LOG_LINE@json.output@ \"isolated\": \"abc123\", @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"isolatedserver\": \"https://isolateserver.appspot.com\", @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"namespace\": \"default-gzip\"@@@", |
| "@@@STEP_LOG_LINE@json.output@ }, @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"state\": \"COMPLETED\", @@@", |
| "@@@STEP_LOG_LINE@json.output@ \"task_id\": \"0\"@@@", |
| "@@@STEP_LOG_LINE@json.output@ }@@@", |
| "@@@STEP_LOG_LINE@json.output@ }@@@", |
| "@@@STEP_LOG_LINE@json.output@}@@@", |
| "@@@STEP_LOG_END@json.output@@@", |
| "@@@STEP_LOG_LINE@task stdout+stderr: flutter_fuchsia_driver_tests@hello world!@@@", |
| "@@@STEP_LOG_END@task stdout+stderr: flutter_fuchsia_driver_tests@@@", |
| "@@@STEP_LINK@task isolated outputs: flutter_fuchsia_driver_tests@https://isolateserver.appspot.com/browse?namespace=default-gzip&hash=abc123@@@" |
| ] |
| }, |
| { |
| "cmd": [], |
| "name": "Display builds", |
| "~followup_annotations": [ |
| "@@@STEP_WARNINGS@@@" |
| ] |
| }, |
| { |
| "cmd": [], |
| "name": "Display builds.flutter_fuchsia_driver_tests", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@", |
| "@@@STEP_LINK@0@https://example.swarmingserver.appspot.com/task?id=0@@@", |
| "@@@STEP_WARNINGS@@@" |
| ] |
| }, |
| { |
| "cmd": [], |
| "name": "Prepare Environment" |
| }, |
| { |
| "cmd": [ |
| "ssh-keygen", |
| "-y", |
| "-f", |
| "/etc/botanist/keys/id_rsa_infra" |
| ], |
| "name": "Prepare Environment.Create public key", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "vpython", |
| "-u", |
| "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", |
| "--json-output", |
| "/path/to/tmp/json", |
| "copy", |
| "\nHost *\n CheckHostIP no\n StrictHostKeyChecking no\n ForwardAgent no\n ForwardX11 no\n GSSAPIDelegateCredentials no\n UserKnownHostsFile /dev/null\n User fuchsia\n IdentitiesOnly yes\n IdentityFile $FUCHSIA_PRIVATE_KEY\n ControlPersist yes\n ControlMaster auto\n ControlPath /tmp/fuchsia--%r@%h:%p\n ConnectTimeout 10\n ServerAliveInterval 1\n ServerAliveCountMax 10\n LogLevel ERROR\n", |
| "[CLEANUP]/fuchsia_ssh__config" |
| ], |
| "infra_step": true, |
| "name": "Prepare Environment.Create ssh_config", |
| "~followup_annotations": [ |
| "@@@STEP_NEST_LEVEL@1@@@", |
| "@@@STEP_LOG_LINE@fuchsia_ssh__config@@@@", |
| "@@@STEP_LOG_LINE@fuchsia_ssh__config@Host *@@@", |
| "@@@STEP_LOG_LINE@fuchsia_ssh__config@ CheckHostIP no@@@", |
| "@@@STEP_LOG_LINE@fuchsia_ssh__config@ StrictHostKeyChecking no@@@", |
| "@@@STEP_LOG_LINE@fuchsia_ssh__config@ ForwardAgent no@@@", |
| "@@@STEP_LOG_LINE@fuchsia_ssh__config@ ForwardX11 no@@@", |
| "@@@STEP_LOG_LINE@fuchsia_ssh__config@ GSSAPIDelegateCredentials no@@@", |
| "@@@STEP_LOG_LINE@fuchsia_ssh__config@ UserKnownHostsFile /dev/null@@@", |
| "@@@STEP_LOG_LINE@fuchsia_ssh__config@ User fuchsia@@@", |
| "@@@STEP_LOG_LINE@fuchsia_ssh__config@ IdentitiesOnly yes@@@", |
| "@@@STEP_LOG_LINE@fuchsia_ssh__config@ IdentityFile $FUCHSIA_PRIVATE_KEY@@@", |
| "@@@STEP_LOG_LINE@fuchsia_ssh__config@ ControlPersist yes@@@", |
| "@@@STEP_LOG_LINE@fuchsia_ssh__config@ ControlMaster auto@@@", |
| "@@@STEP_LOG_LINE@fuchsia_ssh__config@ ControlPath /tmp/fuchsia--%r@%h:%p@@@", |
| "@@@STEP_LOG_LINE@fuchsia_ssh__config@ ConnectTimeout 10@@@", |
| "@@@STEP_LOG_LINE@fuchsia_ssh__config@ ServerAliveInterval 1@@@", |
| "@@@STEP_LOG_LINE@fuchsia_ssh__config@ ServerAliveCountMax 10@@@", |
| "@@@STEP_LOG_LINE@fuchsia_ssh__config@ LogLevel ERROR@@@", |
| "@@@STEP_LOG_END@fuchsia_ssh__config@@@" |
| ] |
| }, |
| { |
| "name": "$result" |
| } |
| ] |