aboutsummaryrefslogtreecommitdiffhomepage
path: root/infra/bots/recipe_modules/isolate/examples/full.expected
diff options
context:
space:
mode:
authorGravatar Robert Iannucci <iannucci@google.com>2017-06-01 14:59:27 -0700
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-06-02 11:40:36 +0000
commitdec4c0b29843d5de7d06c3998d919b3e3abecdf2 (patch)
tree1ac4f6d597681a783d145b91ffb9a48eded68f9b /infra/bots/recipe_modules/isolate/examples/full.expected
parentd5bee5d50c60eedda697ac305658d3817125e147 (diff)
Rename example.py -> examples/full.py for all modules
`example.py` is going away; examples folder can now hold multiple example recipes. R=borenet@google.com Bug: skia: Change-Id: Ib28910987342217bc52040d4d966444174ce27a3 Reviewed-on: https://skia-review.googlesource.com/18432 Commit-Queue: Eric Boren <borenet@google.com> Reviewed-by: Eric Boren <borenet@google.com>
Diffstat (limited to 'infra/bots/recipe_modules/isolate/examples/full.expected')
-rw-r--r--infra/bots/recipe_modules/isolate/examples/full.expected/always-use-exparchive.json208
-rw-r--r--infra/bots/recipe_modules/isolate/examples/full.expected/basic.json151
-rw-r--r--infra/bots/recipe_modules/isolate/examples/full.expected/discover.json124
-rw-r--r--infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-batch-bmiss.json187
-rw-r--r--infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-batch-emiss.json187
-rw-r--r--infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-batch.json179
-rw-r--r--infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-miss.json159
-rw-r--r--infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-multi-miss.json188
-rw-r--r--infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-multi.json180
-rw-r--r--infra/bots/recipe_modules/isolate/examples/full.expected/exparchive.json152
-rw-r--r--infra/bots/recipe_modules/isolate/examples/full.expected/extra.json152
-rw-r--r--infra/bots/recipe_modules/isolate/examples/full.expected/missing.json159
-rw-r--r--infra/bots/recipe_modules/isolate/examples/full.expected/none.json122
13 files changed, 2148 insertions, 0 deletions
diff --git a/infra/bots/recipe_modules/isolate/examples/full.expected/always-use-exparchive.json b/infra/bots/recipe_modules/isolate/examples/full.expected/always-use-exparchive.json
new file mode 100644
index 0000000000..1f5ffa13e5
--- /dev/null
+++ b/infra/bots/recipe_modules/isolate/examples/full.expected/always-use-exparchive.json
@@ -0,0 +1,208 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py",
+ "--path",
+ "[START_DIR]/swarming.client",
+ "--url",
+ "https://chromium.googlesource.com/external/swarming.client.git"
+ ],
+ "name": "git setup (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "retry",
+ "fetch",
+ "origin",
+ "master"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "env": {
+ "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>"
+ },
+ "infra_step": true,
+ "name": "git fetch (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "checkout",
+ "-f",
+ "FETCH_HEAD"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "git checkout (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "rev-parse",
+ "HEAD"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "read revision",
+ "stdout": "/path/to/tmp/",
+ "~followup_annotations": [
+ "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "clean",
+ "-f",
+ "-d",
+ "-x"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "git clean (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "sync"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "submodule sync (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "update",
+ "--init",
+ "--recursive"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "submodule update (swarming_client)"
+ },
+ {
+ "cmd": [
+ "cat"
+ ],
+ "name": "read test spec",
+ "stdout": "/path/to/tmp/json",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@[@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test1\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test2\"@@@",
+ "@@@STEP_LOG_LINE@json.output@]@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/find_isolated_tests.py",
+ "--build-dir",
+ "RECIPE_PACKAGE_REPO[skia]",
+ "--output-json",
+ "/path/to/tmp/json"
+ ],
+ "name": "find isolated tests",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test1\": \"[dummy hash for test1]\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test2\": \"[dummy hash for test2]\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\": \"[dummy hash for test_exparchive]\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1\": \"[dummy hash for test1]\", \"test2\": \"[dummy hash for test2]\", \"test_exparchive\": \"[dummy hash for test_exparchive]\"}@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/isolate.py",
+ "[START_DIR]/swarming.client",
+ "exparchive",
+ "--dump-json",
+ "/path/to/tmp/json",
+ "--isolate-server",
+ "https://isolateserver-dev.appspot.com",
+ "--eventlog-endpoint",
+ "prod",
+ "--isolate",
+ "RECIPE_PACKAGE_REPO[skia]/test_exparchive.isolate",
+ "--isolated",
+ "RECIPE_PACKAGE_REPO[skia]/test_exparchive.isolated"
+ ],
+ "name": "isolate test_exparchive",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\": \"[dummy hash for test_exparchive]\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/isolate.py",
+ "[START_DIR]/swarming.client",
+ "exparchive",
+ "--dump-json",
+ "/path/to/tmp/json",
+ "--isolate-server",
+ "https://isolateserver-dev.appspot.com",
+ "--eventlog-endpoint",
+ "prod",
+ "--isolate",
+ "RECIPE_PACKAGE_REPO[skia]/test1.isolate",
+ "--isolated",
+ "RECIPE_PACKAGE_REPO[skia]/test1.isolated"
+ ],
+ "name": "isolate test1",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test1\": \"[dummy hash for test1]\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/isolate.py",
+ "[START_DIR]/swarming.client",
+ "exparchive",
+ "--dump-json",
+ "/path/to/tmp/json",
+ "--isolate-server",
+ "https://isolateserver-dev.appspot.com",
+ "--eventlog-endpoint",
+ "prod",
+ "--isolate",
+ "RECIPE_PACKAGE_REPO[skia]/test2.isolate",
+ "--isolated",
+ "RECIPE_PACKAGE_REPO[skia]/test2.isolated"
+ ],
+ "name": "isolate test2",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test2\": \"[dummy hash for test2]\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1\": \"[dummy hash for test1]\", \"test2\": \"[dummy hash for test2]\", \"test_exparchive\": \"[dummy hash for test_exparchive]\"}@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/isolate/examples/full.expected/basic.json b/infra/bots/recipe_modules/isolate/examples/full.expected/basic.json
new file mode 100644
index 0000000000..9ef2ef3e1f
--- /dev/null
+++ b/infra/bots/recipe_modules/isolate/examples/full.expected/basic.json
@@ -0,0 +1,151 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py",
+ "--path",
+ "[START_DIR]/swarming.client",
+ "--url",
+ "https://chromium.googlesource.com/external/swarming.client.git"
+ ],
+ "name": "git setup (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "retry",
+ "fetch",
+ "origin",
+ "master"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "env": {
+ "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>"
+ },
+ "infra_step": true,
+ "name": "git fetch (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "checkout",
+ "-f",
+ "FETCH_HEAD"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "git checkout (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "rev-parse",
+ "HEAD"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "read revision",
+ "stdout": "/path/to/tmp/",
+ "~followup_annotations": [
+ "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "clean",
+ "-f",
+ "-d",
+ "-x"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "git clean (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "sync"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "submodule sync (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "update",
+ "--init",
+ "--recursive"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "submodule update (swarming_client)"
+ },
+ {
+ "cmd": [
+ "cat"
+ ],
+ "name": "read test spec",
+ "stdout": "/path/to/tmp/json",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@[@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test1\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test2\"@@@",
+ "@@@STEP_LOG_LINE@json.output@]@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/find_isolated_tests.py",
+ "--build-dir",
+ "RECIPE_PACKAGE_REPO[skia]",
+ "--output-json",
+ "/path/to/tmp/json"
+ ],
+ "name": "find isolated tests",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test1\": \"[dummy hash for test1]\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test2\": \"[dummy hash for test2]\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1\": \"[dummy hash for test1]\", \"test2\": \"[dummy hash for test2]\"}@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/isolate.py",
+ "[START_DIR]/swarming.client",
+ "batcharchive",
+ "--dump-json",
+ "/path/to/tmp/json",
+ "--isolate-server",
+ "https://isolateserver-dev.appspot.com",
+ "RECIPE_PACKAGE_REPO[skia]/test1.isolated.gen.json",
+ "RECIPE_PACKAGE_REPO[skia]/test2.isolated.gen.json"
+ ],
+ "name": "isolate tests",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test1\": \"[dummy hash for test1]\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test2\": \"[dummy hash for test2]\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1\": \"[dummy hash for test1]\", \"test2\": \"[dummy hash for test2]\"}@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/isolate/examples/full.expected/discover.json b/infra/bots/recipe_modules/isolate/examples/full.expected/discover.json
new file mode 100644
index 0000000000..d6ab964321
--- /dev/null
+++ b/infra/bots/recipe_modules/isolate/examples/full.expected/discover.json
@@ -0,0 +1,124 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py",
+ "--path",
+ "[START_DIR]/swarming.client",
+ "--url",
+ "https://chromium.googlesource.com/external/swarming.client.git"
+ ],
+ "name": "git setup (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "retry",
+ "fetch",
+ "origin",
+ "master"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "env": {
+ "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>"
+ },
+ "infra_step": true,
+ "name": "git fetch (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "checkout",
+ "-f",
+ "FETCH_HEAD"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "git checkout (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "rev-parse",
+ "HEAD"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "read revision",
+ "stdout": "/path/to/tmp/",
+ "~followup_annotations": [
+ "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "clean",
+ "-f",
+ "-d",
+ "-x"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "git clean (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "sync"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "submodule sync (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "update",
+ "--init",
+ "--recursive"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "submodule update (swarming_client)"
+ },
+ {
+ "cmd": [
+ "cat"
+ ],
+ "name": "read test spec",
+ "stdout": "/path/to/tmp/json",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@null@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/find_isolated_tests.py",
+ "--build-dir",
+ "RECIPE_PACKAGE_REPO[skia]",
+ "--output-json",
+ "/path/to/tmp/json"
+ ],
+ "name": "find isolated tests",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"dummy_target_1\": \"[dummy hash for dummy_target_1]\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"dummy_target_2\": \"[dummy hash for dummy_target_2]\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"dummy_target_1\": \"[dummy hash for dummy_target_1]\", \"dummy_target_2\": \"[dummy hash for dummy_target_2]\"}@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-batch-bmiss.json b/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-batch-bmiss.json
new file mode 100644
index 0000000000..75d1af4b5f
--- /dev/null
+++ b/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-batch-bmiss.json
@@ -0,0 +1,187 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py",
+ "--path",
+ "[START_DIR]/swarming.client",
+ "--url",
+ "https://chromium.googlesource.com/external/swarming.client.git"
+ ],
+ "name": "git setup (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "retry",
+ "fetch",
+ "origin",
+ "master"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "env": {
+ "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>"
+ },
+ "infra_step": true,
+ "name": "git fetch (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "checkout",
+ "-f",
+ "FETCH_HEAD"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "git checkout (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "rev-parse",
+ "HEAD"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "read revision",
+ "stdout": "/path/to/tmp/",
+ "~followup_annotations": [
+ "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "clean",
+ "-f",
+ "-d",
+ "-x"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "git clean (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "sync"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "submodule sync (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "update",
+ "--init",
+ "--recursive"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "submodule update (swarming_client)"
+ },
+ {
+ "cmd": [
+ "cat"
+ ],
+ "name": "read test spec",
+ "stdout": "/path/to/tmp/json",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@[@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test1\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test2\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\"@@@",
+ "@@@STEP_LOG_LINE@json.output@]@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/find_isolated_tests.py",
+ "--build-dir",
+ "RECIPE_PACKAGE_REPO[skia]",
+ "--output-json",
+ "/path/to/tmp/json"
+ ],
+ "name": "find isolated tests",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test1\": \"[dummy hash for test1]\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\": \"[dummy hash for test_exparchive]\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@STEP_LOG_LINE@missing.isolates@Failed to find *.isolated files:@@@",
+ "@@@STEP_LOG_LINE@missing.isolates@test2@@@",
+ "@@@STEP_LOG_END@missing.isolates@@@",
+ "@@@STEP_FAILURE@@@",
+ "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1\": \"[dummy hash for test1]\", \"test_exparchive\": \"[dummy hash for test_exparchive]\"}@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/isolate.py",
+ "[START_DIR]/swarming.client",
+ "exparchive",
+ "--dump-json",
+ "/path/to/tmp/json",
+ "--isolate-server",
+ "https://isolateserver-dev.appspot.com",
+ "--eventlog-endpoint",
+ "prod",
+ "--isolate",
+ "RECIPE_PACKAGE_REPO[skia]/test_exparchive.isolate",
+ "--isolated",
+ "RECIPE_PACKAGE_REPO[skia]/test_exparchive.isolated"
+ ],
+ "name": "isolate test_exparchive",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\": \"[dummy hash for test_exparchive]\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/isolate.py",
+ "[START_DIR]/swarming.client",
+ "batcharchive",
+ "--dump-json",
+ "/path/to/tmp/json",
+ "--isolate-server",
+ "https://isolateserver-dev.appspot.com",
+ "RECIPE_PACKAGE_REPO[skia]/test1.isolated.gen.json",
+ "RECIPE_PACKAGE_REPO[skia]/test2.isolated.gen.json"
+ ],
+ "name": "isolate tests",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test1\": \"[dummy hash for test1]\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test2\": null@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@STEP_LOG_LINE@failed to isolate@Failed to isolate following targets:@@@",
+ "@@@STEP_LOG_LINE@failed to isolate@test2@@@",
+ "@@@STEP_LOG_LINE@failed to isolate@@@@",
+ "@@@STEP_LOG_LINE@failed to isolate@See logs for more information.@@@",
+ "@@@STEP_LOG_END@failed to isolate@@@",
+ "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1\": \"[dummy hash for test1]\", \"test_exparchive\": \"[dummy hash for test_exparchive]\"}@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-batch-emiss.json b/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-batch-emiss.json
new file mode 100644
index 0000000000..142ebd592a
--- /dev/null
+++ b/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-batch-emiss.json
@@ -0,0 +1,187 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py",
+ "--path",
+ "[START_DIR]/swarming.client",
+ "--url",
+ "https://chromium.googlesource.com/external/swarming.client.git"
+ ],
+ "name": "git setup (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "retry",
+ "fetch",
+ "origin",
+ "master"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "env": {
+ "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>"
+ },
+ "infra_step": true,
+ "name": "git fetch (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "checkout",
+ "-f",
+ "FETCH_HEAD"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "git checkout (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "rev-parse",
+ "HEAD"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "read revision",
+ "stdout": "/path/to/tmp/",
+ "~followup_annotations": [
+ "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "clean",
+ "-f",
+ "-d",
+ "-x"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "git clean (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "sync"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "submodule sync (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "update",
+ "--init",
+ "--recursive"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "submodule update (swarming_client)"
+ },
+ {
+ "cmd": [
+ "cat"
+ ],
+ "name": "read test spec",
+ "stdout": "/path/to/tmp/json",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@[@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test1\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test2\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\"@@@",
+ "@@@STEP_LOG_LINE@json.output@]@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/find_isolated_tests.py",
+ "--build-dir",
+ "RECIPE_PACKAGE_REPO[skia]",
+ "--output-json",
+ "/path/to/tmp/json"
+ ],
+ "name": "find isolated tests",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test1\": \"[dummy hash for test1]\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test2\": \"[dummy hash for test2]\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@STEP_LOG_LINE@missing.isolates@Failed to find *.isolated files:@@@",
+ "@@@STEP_LOG_LINE@missing.isolates@test_exparchive@@@",
+ "@@@STEP_LOG_END@missing.isolates@@@",
+ "@@@STEP_FAILURE@@@",
+ "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1\": \"[dummy hash for test1]\", \"test2\": \"[dummy hash for test2]\"}@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/isolate.py",
+ "[START_DIR]/swarming.client",
+ "exparchive",
+ "--dump-json",
+ "/path/to/tmp/json",
+ "--isolate-server",
+ "https://isolateserver-dev.appspot.com",
+ "--eventlog-endpoint",
+ "prod",
+ "--isolate",
+ "RECIPE_PACKAGE_REPO[skia]/test_exparchive.isolate",
+ "--isolated",
+ "RECIPE_PACKAGE_REPO[skia]/test_exparchive.isolated"
+ ],
+ "name": "isolate test_exparchive",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\": null@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/isolate.py",
+ "[START_DIR]/swarming.client",
+ "batcharchive",
+ "--dump-json",
+ "/path/to/tmp/json",
+ "--isolate-server",
+ "https://isolateserver-dev.appspot.com",
+ "RECIPE_PACKAGE_REPO[skia]/test1.isolated.gen.json",
+ "RECIPE_PACKAGE_REPO[skia]/test2.isolated.gen.json"
+ ],
+ "name": "isolate tests",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test1\": \"[dummy hash for test1]\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test2\": \"[dummy hash for test2]\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@STEP_LOG_LINE@failed to isolate@Failed to isolate following targets:@@@",
+ "@@@STEP_LOG_LINE@failed to isolate@test_exparchive@@@",
+ "@@@STEP_LOG_LINE@failed to isolate@@@@",
+ "@@@STEP_LOG_LINE@failed to isolate@See logs for more information.@@@",
+ "@@@STEP_LOG_END@failed to isolate@@@",
+ "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1\": \"[dummy hash for test1]\", \"test2\": \"[dummy hash for test2]\"}@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-batch.json b/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-batch.json
new file mode 100644
index 0000000000..e2d26d6f45
--- /dev/null
+++ b/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-batch.json
@@ -0,0 +1,179 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py",
+ "--path",
+ "[START_DIR]/swarming.client",
+ "--url",
+ "https://chromium.googlesource.com/external/swarming.client.git"
+ ],
+ "name": "git setup (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "retry",
+ "fetch",
+ "origin",
+ "master"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "env": {
+ "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>"
+ },
+ "infra_step": true,
+ "name": "git fetch (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "checkout",
+ "-f",
+ "FETCH_HEAD"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "git checkout (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "rev-parse",
+ "HEAD"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "read revision",
+ "stdout": "/path/to/tmp/",
+ "~followup_annotations": [
+ "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "clean",
+ "-f",
+ "-d",
+ "-x"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "git clean (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "sync"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "submodule sync (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "update",
+ "--init",
+ "--recursive"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "submodule update (swarming_client)"
+ },
+ {
+ "cmd": [
+ "cat"
+ ],
+ "name": "read test spec",
+ "stdout": "/path/to/tmp/json",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@[@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test1\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test2\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\"@@@",
+ "@@@STEP_LOG_LINE@json.output@]@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/find_isolated_tests.py",
+ "--build-dir",
+ "RECIPE_PACKAGE_REPO[skia]",
+ "--output-json",
+ "/path/to/tmp/json"
+ ],
+ "name": "find isolated tests",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test1\": \"[dummy hash for test1]\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test2\": \"[dummy hash for test2]\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\": \"[dummy hash for test_exparchive]\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1\": \"[dummy hash for test1]\", \"test2\": \"[dummy hash for test2]\", \"test_exparchive\": \"[dummy hash for test_exparchive]\"}@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/isolate.py",
+ "[START_DIR]/swarming.client",
+ "exparchive",
+ "--dump-json",
+ "/path/to/tmp/json",
+ "--isolate-server",
+ "https://isolateserver-dev.appspot.com",
+ "--eventlog-endpoint",
+ "prod",
+ "--isolate",
+ "RECIPE_PACKAGE_REPO[skia]/test_exparchive.isolate",
+ "--isolated",
+ "RECIPE_PACKAGE_REPO[skia]/test_exparchive.isolated"
+ ],
+ "name": "isolate test_exparchive",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\": \"[dummy hash for test_exparchive]\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/isolate.py",
+ "[START_DIR]/swarming.client",
+ "batcharchive",
+ "--dump-json",
+ "/path/to/tmp/json",
+ "--isolate-server",
+ "https://isolateserver-dev.appspot.com",
+ "RECIPE_PACKAGE_REPO[skia]/test1.isolated.gen.json",
+ "RECIPE_PACKAGE_REPO[skia]/test2.isolated.gen.json"
+ ],
+ "name": "isolate tests",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test1\": \"[dummy hash for test1]\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test2\": \"[dummy hash for test2]\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1\": \"[dummy hash for test1]\", \"test2\": \"[dummy hash for test2]\", \"test_exparchive\": \"[dummy hash for test_exparchive]\"}@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-miss.json b/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-miss.json
new file mode 100644
index 0000000000..06eceaa787
--- /dev/null
+++ b/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-miss.json
@@ -0,0 +1,159 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py",
+ "--path",
+ "[START_DIR]/swarming.client",
+ "--url",
+ "https://chromium.googlesource.com/external/swarming.client.git"
+ ],
+ "name": "git setup (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "retry",
+ "fetch",
+ "origin",
+ "master"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "env": {
+ "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>"
+ },
+ "infra_step": true,
+ "name": "git fetch (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "checkout",
+ "-f",
+ "FETCH_HEAD"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "git checkout (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "rev-parse",
+ "HEAD"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "read revision",
+ "stdout": "/path/to/tmp/",
+ "~followup_annotations": [
+ "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "clean",
+ "-f",
+ "-d",
+ "-x"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "git clean (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "sync"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "submodule sync (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "update",
+ "--init",
+ "--recursive"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "submodule update (swarming_client)"
+ },
+ {
+ "cmd": [
+ "cat"
+ ],
+ "name": "read test spec",
+ "stdout": "/path/to/tmp/json",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@[@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\"@@@",
+ "@@@STEP_LOG_LINE@json.output@]@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/find_isolated_tests.py",
+ "--build-dir",
+ "RECIPE_PACKAGE_REPO[skia]",
+ "--output-json",
+ "/path/to/tmp/json"
+ ],
+ "name": "find isolated tests",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@STEP_LOG_LINE@missing.isolates@Failed to find *.isolated files:@@@",
+ "@@@STEP_LOG_LINE@missing.isolates@test_exparchive@@@",
+ "@@@STEP_LOG_END@missing.isolates@@@",
+ "@@@STEP_FAILURE@@@",
+ "@@@SET_BUILD_PROPERTY@swarm_hashes@{}@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/isolate.py",
+ "[START_DIR]/swarming.client",
+ "exparchive",
+ "--dump-json",
+ "/path/to/tmp/json",
+ "--isolate-server",
+ "https://isolateserver-dev.appspot.com",
+ "--eventlog-endpoint",
+ "prod",
+ "--isolate",
+ "RECIPE_PACKAGE_REPO[skia]/test_exparchive.isolate",
+ "--isolated",
+ "RECIPE_PACKAGE_REPO[skia]/test_exparchive.isolated"
+ ],
+ "name": "isolate test_exparchive",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\": null@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@STEP_LOG_LINE@failed to isolate@Failed to isolate following targets:@@@",
+ "@@@STEP_LOG_LINE@failed to isolate@test_exparchive@@@",
+ "@@@STEP_LOG_LINE@failed to isolate@@@@",
+ "@@@STEP_LOG_LINE@failed to isolate@See logs for more information.@@@",
+ "@@@STEP_LOG_END@failed to isolate@@@",
+ "@@@SET_BUILD_PROPERTY@swarm_hashes@{}@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-multi-miss.json b/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-multi-miss.json
new file mode 100644
index 0000000000..02131c3553
--- /dev/null
+++ b/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-multi-miss.json
@@ -0,0 +1,188 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py",
+ "--path",
+ "[START_DIR]/swarming.client",
+ "--url",
+ "https://chromium.googlesource.com/external/swarming.client.git"
+ ],
+ "name": "git setup (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "retry",
+ "fetch",
+ "origin",
+ "master"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "env": {
+ "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>"
+ },
+ "infra_step": true,
+ "name": "git fetch (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "checkout",
+ "-f",
+ "FETCH_HEAD"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "git checkout (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "rev-parse",
+ "HEAD"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "read revision",
+ "stdout": "/path/to/tmp/",
+ "~followup_annotations": [
+ "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "clean",
+ "-f",
+ "-d",
+ "-x"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "git clean (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "sync"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "submodule sync (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "update",
+ "--init",
+ "--recursive"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "submodule update (swarming_client)"
+ },
+ {
+ "cmd": [
+ "cat"
+ ],
+ "name": "read test spec",
+ "stdout": "/path/to/tmp/json",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@[@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test1_exparchive\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test2_exparchive\"@@@",
+ "@@@STEP_LOG_LINE@json.output@]@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/find_isolated_tests.py",
+ "--build-dir",
+ "RECIPE_PACKAGE_REPO[skia]",
+ "--output-json",
+ "/path/to/tmp/json"
+ ],
+ "name": "find isolated tests",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test1_exparchive\": \"[dummy hash for test1_exparchive]\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@STEP_LOG_LINE@missing.isolates@Failed to find *.isolated files:@@@",
+ "@@@STEP_LOG_LINE@missing.isolates@test2_exparchive@@@",
+ "@@@STEP_LOG_END@missing.isolates@@@",
+ "@@@STEP_FAILURE@@@",
+ "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1_exparchive\": \"[dummy hash for test1_exparchive]\"}@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/isolate.py",
+ "[START_DIR]/swarming.client",
+ "exparchive",
+ "--dump-json",
+ "/path/to/tmp/json",
+ "--isolate-server",
+ "https://isolateserver-dev.appspot.com",
+ "--eventlog-endpoint",
+ "prod",
+ "--isolate",
+ "RECIPE_PACKAGE_REPO[skia]/test1_exparchive.isolate",
+ "--isolated",
+ "RECIPE_PACKAGE_REPO[skia]/test1_exparchive.isolated"
+ ],
+ "name": "isolate test1_exparchive",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test1_exparchive\": \"[dummy hash for test1_exparchive]\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/isolate.py",
+ "[START_DIR]/swarming.client",
+ "exparchive",
+ "--dump-json",
+ "/path/to/tmp/json",
+ "--isolate-server",
+ "https://isolateserver-dev.appspot.com",
+ "--eventlog-endpoint",
+ "prod",
+ "--isolate",
+ "RECIPE_PACKAGE_REPO[skia]/test2_exparchive.isolate",
+ "--isolated",
+ "RECIPE_PACKAGE_REPO[skia]/test2_exparchive.isolated"
+ ],
+ "name": "isolate test2_exparchive",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test2_exparchive\": null@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@STEP_LOG_LINE@failed to isolate@Failed to isolate following targets:@@@",
+ "@@@STEP_LOG_LINE@failed to isolate@test2_exparchive@@@",
+ "@@@STEP_LOG_LINE@failed to isolate@@@@",
+ "@@@STEP_LOG_LINE@failed to isolate@See logs for more information.@@@",
+ "@@@STEP_LOG_END@failed to isolate@@@",
+ "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1_exparchive\": \"[dummy hash for test1_exparchive]\"}@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-multi.json b/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-multi.json
new file mode 100644
index 0000000000..871423dbd7
--- /dev/null
+++ b/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive-multi.json
@@ -0,0 +1,180 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py",
+ "--path",
+ "[START_DIR]/swarming.client",
+ "--url",
+ "https://chromium.googlesource.com/external/swarming.client.git"
+ ],
+ "name": "git setup (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "retry",
+ "fetch",
+ "origin",
+ "master"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "env": {
+ "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>"
+ },
+ "infra_step": true,
+ "name": "git fetch (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "checkout",
+ "-f",
+ "FETCH_HEAD"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "git checkout (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "rev-parse",
+ "HEAD"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "read revision",
+ "stdout": "/path/to/tmp/",
+ "~followup_annotations": [
+ "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "clean",
+ "-f",
+ "-d",
+ "-x"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "git clean (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "sync"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "submodule sync (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "update",
+ "--init",
+ "--recursive"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "submodule update (swarming_client)"
+ },
+ {
+ "cmd": [
+ "cat"
+ ],
+ "name": "read test spec",
+ "stdout": "/path/to/tmp/json",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@[@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test1_exparchive\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test2_exparchive\"@@@",
+ "@@@STEP_LOG_LINE@json.output@]@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/find_isolated_tests.py",
+ "--build-dir",
+ "RECIPE_PACKAGE_REPO[skia]",
+ "--output-json",
+ "/path/to/tmp/json"
+ ],
+ "name": "find isolated tests",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test1_exparchive\": \"[dummy hash for test1_exparchive]\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test2_exparchive\": \"[dummy hash for test2_exparchive]\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1_exparchive\": \"[dummy hash for test1_exparchive]\", \"test2_exparchive\": \"[dummy hash for test2_exparchive]\"}@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/isolate.py",
+ "[START_DIR]/swarming.client",
+ "exparchive",
+ "--dump-json",
+ "/path/to/tmp/json",
+ "--isolate-server",
+ "https://isolateserver-dev.appspot.com",
+ "--eventlog-endpoint",
+ "prod",
+ "--isolate",
+ "RECIPE_PACKAGE_REPO[skia]/test1_exparchive.isolate",
+ "--isolated",
+ "RECIPE_PACKAGE_REPO[skia]/test1_exparchive.isolated"
+ ],
+ "name": "isolate test1_exparchive",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test1_exparchive\": \"[dummy hash for test1_exparchive]\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/isolate.py",
+ "[START_DIR]/swarming.client",
+ "exparchive",
+ "--dump-json",
+ "/path/to/tmp/json",
+ "--isolate-server",
+ "https://isolateserver-dev.appspot.com",
+ "--eventlog-endpoint",
+ "prod",
+ "--isolate",
+ "RECIPE_PACKAGE_REPO[skia]/test2_exparchive.isolate",
+ "--isolated",
+ "RECIPE_PACKAGE_REPO[skia]/test2_exparchive.isolated"
+ ],
+ "name": "isolate test2_exparchive",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test2_exparchive\": \"[dummy hash for test2_exparchive]\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1_exparchive\": \"[dummy hash for test1_exparchive]\", \"test2_exparchive\": \"[dummy hash for test2_exparchive]\"}@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive.json b/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive.json
new file mode 100644
index 0000000000..33fadc15dd
--- /dev/null
+++ b/infra/bots/recipe_modules/isolate/examples/full.expected/exparchive.json
@@ -0,0 +1,152 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py",
+ "--path",
+ "[START_DIR]/swarming.client",
+ "--url",
+ "https://chromium.googlesource.com/external/swarming.client.git"
+ ],
+ "name": "git setup (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "retry",
+ "fetch",
+ "origin",
+ "master"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "env": {
+ "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>"
+ },
+ "infra_step": true,
+ "name": "git fetch (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "checkout",
+ "-f",
+ "FETCH_HEAD"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "git checkout (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "rev-parse",
+ "HEAD"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "read revision",
+ "stdout": "/path/to/tmp/",
+ "~followup_annotations": [
+ "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "clean",
+ "-f",
+ "-d",
+ "-x"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "git clean (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "sync"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "submodule sync (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "update",
+ "--init",
+ "--recursive"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "submodule update (swarming_client)"
+ },
+ {
+ "cmd": [
+ "cat"
+ ],
+ "name": "read test spec",
+ "stdout": "/path/to/tmp/json",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@[@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\"@@@",
+ "@@@STEP_LOG_LINE@json.output@]@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/find_isolated_tests.py",
+ "--build-dir",
+ "RECIPE_PACKAGE_REPO[skia]",
+ "--output-json",
+ "/path/to/tmp/json"
+ ],
+ "name": "find isolated tests",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\": \"[dummy hash for test_exparchive]\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test_exparchive\": \"[dummy hash for test_exparchive]\"}@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/isolate.py",
+ "[START_DIR]/swarming.client",
+ "exparchive",
+ "--dump-json",
+ "/path/to/tmp/json",
+ "--isolate-server",
+ "https://isolateserver-dev.appspot.com",
+ "--eventlog-endpoint",
+ "prod",
+ "--isolate",
+ "RECIPE_PACKAGE_REPO[skia]/test_exparchive.isolate",
+ "--isolated",
+ "RECIPE_PACKAGE_REPO[skia]/test_exparchive.isolated"
+ ],
+ "name": "isolate test_exparchive",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test_exparchive\": \"[dummy hash for test_exparchive]\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test_exparchive\": \"[dummy hash for test_exparchive]\"}@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/isolate/examples/full.expected/extra.json b/infra/bots/recipe_modules/isolate/examples/full.expected/extra.json
new file mode 100644
index 0000000000..3f1987d987
--- /dev/null
+++ b/infra/bots/recipe_modules/isolate/examples/full.expected/extra.json
@@ -0,0 +1,152 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py",
+ "--path",
+ "[START_DIR]/swarming.client",
+ "--url",
+ "https://chromium.googlesource.com/external/swarming.client.git"
+ ],
+ "name": "git setup (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "retry",
+ "fetch",
+ "origin",
+ "master"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "env": {
+ "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>"
+ },
+ "infra_step": true,
+ "name": "git fetch (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "checkout",
+ "-f",
+ "FETCH_HEAD"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "git checkout (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "rev-parse",
+ "HEAD"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "read revision",
+ "stdout": "/path/to/tmp/",
+ "~followup_annotations": [
+ "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "clean",
+ "-f",
+ "-d",
+ "-x"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "git clean (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "sync"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "submodule sync (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "update",
+ "--init",
+ "--recursive"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "submodule update (swarming_client)"
+ },
+ {
+ "cmd": [
+ "cat"
+ ],
+ "name": "read test spec",
+ "stdout": "/path/to/tmp/json",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@[@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test1\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test2\"@@@",
+ "@@@STEP_LOG_LINE@json.output@]@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/find_isolated_tests.py",
+ "--build-dir",
+ "RECIPE_PACKAGE_REPO[skia]",
+ "--output-json",
+ "/path/to/tmp/json"
+ ],
+ "name": "find isolated tests",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"extra_test\": \"[dummy hash for extra_test]\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test1\": \"[dummy hash for test1]\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test2\": \"[dummy hash for test2]\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1\": \"[dummy hash for test1]\", \"test2\": \"[dummy hash for test2]\"}@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/isolate.py",
+ "[START_DIR]/swarming.client",
+ "batcharchive",
+ "--dump-json",
+ "/path/to/tmp/json",
+ "--isolate-server",
+ "https://isolateserver-dev.appspot.com",
+ "RECIPE_PACKAGE_REPO[skia]/test1.isolated.gen.json",
+ "RECIPE_PACKAGE_REPO[skia]/test2.isolated.gen.json"
+ ],
+ "name": "isolate tests",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test1\": \"[dummy hash for test1]\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test2\": \"[dummy hash for test2]\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1\": \"[dummy hash for test1]\", \"test2\": \"[dummy hash for test2]\"}@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/isolate/examples/full.expected/missing.json b/infra/bots/recipe_modules/isolate/examples/full.expected/missing.json
new file mode 100644
index 0000000000..90e1e95dd7
--- /dev/null
+++ b/infra/bots/recipe_modules/isolate/examples/full.expected/missing.json
@@ -0,0 +1,159 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py",
+ "--path",
+ "[START_DIR]/swarming.client",
+ "--url",
+ "https://chromium.googlesource.com/external/swarming.client.git"
+ ],
+ "name": "git setup (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "retry",
+ "fetch",
+ "origin",
+ "master"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "env": {
+ "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>"
+ },
+ "infra_step": true,
+ "name": "git fetch (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "checkout",
+ "-f",
+ "FETCH_HEAD"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "git checkout (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "rev-parse",
+ "HEAD"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "read revision",
+ "stdout": "/path/to/tmp/",
+ "~followup_annotations": [
+ "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "clean",
+ "-f",
+ "-d",
+ "-x"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "git clean (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "sync"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "submodule sync (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "update",
+ "--init",
+ "--recursive"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "submodule update (swarming_client)"
+ },
+ {
+ "cmd": [
+ "cat"
+ ],
+ "name": "read test spec",
+ "stdout": "/path/to/tmp/json",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@[@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test1\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test2\"@@@",
+ "@@@STEP_LOG_LINE@json.output@]@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/find_isolated_tests.py",
+ "--build-dir",
+ "RECIPE_PACKAGE_REPO[skia]",
+ "--output-json",
+ "/path/to/tmp/json"
+ ],
+ "name": "find isolated tests",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test1\": \"[dummy hash for test1]\"@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@STEP_LOG_LINE@missing.isolates@Failed to find *.isolated files:@@@",
+ "@@@STEP_LOG_LINE@missing.isolates@test2@@@",
+ "@@@STEP_LOG_END@missing.isolates@@@",
+ "@@@STEP_FAILURE@@@",
+ "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1\": \"[dummy hash for test1]\"}@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/isolate.py",
+ "[START_DIR]/swarming.client",
+ "batcharchive",
+ "--dump-json",
+ "/path/to/tmp/json",
+ "--isolate-server",
+ "https://isolateserver-dev.appspot.com",
+ "RECIPE_PACKAGE_REPO[skia]/test1.isolated.gen.json",
+ "RECIPE_PACKAGE_REPO[skia]/test2.isolated.gen.json"
+ ],
+ "name": "isolate tests",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test1\": \"[dummy hash for test1]\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"test2\": null@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@STEP_LOG_LINE@failed to isolate@Failed to isolate following targets:@@@",
+ "@@@STEP_LOG_LINE@failed to isolate@test2@@@",
+ "@@@STEP_LOG_LINE@failed to isolate@@@@",
+ "@@@STEP_LOG_LINE@failed to isolate@See logs for more information.@@@",
+ "@@@STEP_LOG_END@failed to isolate@@@",
+ "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"test1\": \"[dummy hash for test1]\"}@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file
diff --git a/infra/bots/recipe_modules/isolate/examples/full.expected/none.json b/infra/bots/recipe_modules/isolate/examples/full.expected/none.json
new file mode 100644
index 0000000000..335b6227d1
--- /dev/null
+++ b/infra/bots/recipe_modules/isolate/examples/full.expected/none.json
@@ -0,0 +1,122 @@
+[
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py",
+ "--path",
+ "[START_DIR]/swarming.client",
+ "--url",
+ "https://chromium.googlesource.com/external/swarming.client.git"
+ ],
+ "name": "git setup (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "retry",
+ "fetch",
+ "origin",
+ "master"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "env": {
+ "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>"
+ },
+ "infra_step": true,
+ "name": "git fetch (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "checkout",
+ "-f",
+ "FETCH_HEAD"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "git checkout (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "rev-parse",
+ "HEAD"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "read revision",
+ "stdout": "/path/to/tmp/",
+ "~followup_annotations": [
+ "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "git",
+ "clean",
+ "-f",
+ "-d",
+ "-x"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "git clean (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "sync"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "submodule sync (swarming_client)"
+ },
+ {
+ "cmd": [
+ "git",
+ "submodule",
+ "update",
+ "--init",
+ "--recursive"
+ ],
+ "cwd": "[START_DIR]/swarming.client",
+ "infra_step": true,
+ "name": "submodule update (swarming_client)"
+ },
+ {
+ "cmd": [
+ "cat"
+ ],
+ "name": "read test spec",
+ "stdout": "/path/to/tmp/json",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@null@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "python",
+ "-u",
+ "RECIPE_MODULE[skia::isolate]/resources/find_isolated_tests.py",
+ "--build-dir",
+ "RECIPE_PACKAGE_REPO[skia]",
+ "--output-json",
+ "/path/to/tmp/json"
+ ],
+ "name": "find isolated tests",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@{}@@@",
+ "@@@STEP_LOG_END@json.output@@@",
+ "@@@STEP_WARNINGS@@@",
+ "@@@SET_BUILD_PROPERTY@swarm_hashes@{}@@@"
+ ]
+ },
+ {
+ "name": "$result",
+ "recipe_result": null,
+ "status_code": 0
+ }
+] \ No newline at end of file