[swarming] use client path from recipe_engine/swarming

We cannot always assume that there is swarming client in the specific directory of repository.
e.g. v8's tester builder, ios's internal repository
Instead let me take swarming client always from CIPD.

To access recipe_engine/swarming inside build/swarming, this CL uses build/swarming_client as wrapper for on_path().

This is an important change: this now ignores the pinned version in the project's repository
and instead always use the pinned version in the recipe but only for task result collection.

Triggering is not affected.

Bug: 894045
Recipe-Nontrivial-Roll: build_limited_scripts_slave
Change-Id: I4105b74738a64a280422f99bad472e1f7597e32f
Reviewed-on: https://chromium-review.googlesource.com/c/1378754
Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
Reviewed-by: Marc-Antoine Ruel <maruel@chromium.org>
diff --git a/scripts/slave/README.recipes.md b/scripts/slave/README.recipes.md
index f6d086c..423407c 100644
--- a/scripts/slave/README.recipes.md
+++ b/scripts/slave/README.recipes.md
@@ -3324,9 +3324,9 @@
 Uses the 'get_states' endpoint on the swarming server.
 ### *recipe_modules* / [swarming\_client](/scripts/slave/recipe_modules/swarming_client)
 
-[DEPS](/scripts/slave/recipe_modules/swarming_client/__init__.py#5): [depot\_tools/git][depot_tools/recipe_modules/git], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step]
+[DEPS](/scripts/slave/recipe_modules/swarming_client/__init__.py#5): [depot\_tools/git][depot_tools/recipe_modules/git], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step], [recipe\_engine/swarming][recipe_engine/recipe_modules/swarming]
 
-#### **class [SwarmingClientApi](/scripts/slave/recipe_modules/swarming_client/api.py#8)([RecipeApi][recipe_engine/wkt/RecipeApi]):**
+#### **class [SwarmingClientApi](/scripts/slave/recipe_modules/swarming_client/api.py#10)([RecipeApi][recipe_engine/wkt/RecipeApi]):**
 
 Code that both isolate and swarming recipe modules depend on.
 
@@ -3335,7 +3335,7 @@
 existing swarming client checkout, fetching a new one, getting version of
 a swarming script, etc.
 
-&mdash; **def [checkout](/scripts/slave/recipe_modules/swarming_client/api.py#22)(self, revision=None, curl_trace_file=None, can_fail_build=True):**
+&mdash; **def [checkout](/scripts/slave/recipe_modules/swarming_client/api.py#24)(self, revision=None, curl_trace_file=None, can_fail_build=True):**
 
 Returns a step to checkout swarming client into a separate directory.
 
@@ -3350,27 +3350,32 @@
 in cycle time if a misconfiguration were made and it were no longer possible
 for the bot to check out swarming_client separately.
 
-&mdash; **def [ensure\_script\_version](/scripts/slave/recipe_modules/swarming_client/api.py#110)(self, script, min_version, step_test_data=None):**
+&mdash; **def [ensure\_script\_version](/scripts/slave/recipe_modules/swarming_client/api.py#112)(self, script, min_version, step_test_data=None):**
 
 Yields steps to ensure a script version is not older than |min_version|.
 
 Will abort recipe execution if it is.
 
-&mdash; **def [get\_script\_version](/scripts/slave/recipe_modules/swarming_client/api.py#101)(self, script):**
+&mdash; **def [get\_script\_version](/scripts/slave/recipe_modules/swarming_client/api.py#103)(self, script):**
 
 Returns a version of some swarming script as a tuple (Major, Minor, Rev).
 
 It should have been queried by 'query_script_version' step before. Raises
 AssertionError if it wasn't.
 
-&emsp; **@property**<br>&mdash; **def [path](/scripts/slave/recipe_modules/swarming_client/api.py#53)(self):**
+&emsp; **@contextlib.contextmanager**<br>&mdash; **def [on\_path](/scripts/slave/recipe_modules/swarming_client/api.py#129)(self):**
+
+This is wrapper for recipe_engine/swarming.on_path, this should only be
+used from swarming module.
+
+&emsp; **@property**<br>&mdash; **def [path](/scripts/slave/recipe_modules/swarming_client/api.py#55)(self):**
 
 Returns path to a swarming client checkout.
 
 It's subdirectory of Chromium src/ checkout or a separate directory if
 'checkout_swarming_client' step was used.
 
-&mdash; **def [query\_script\_version](/scripts/slave/recipe_modules/swarming_client/api.py#67)(self, script, step_test_data=None):**
+&mdash; **def [query\_script\_version](/scripts/slave/recipe_modules/swarming_client/api.py#69)(self, script, step_test_data=None):**
 
 Yields a step to query a swarming script for its version.
 
@@ -5930,6 +5935,7 @@
 [recipe_engine/recipe_modules/scheduler]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/7d75cc6e379d1603027cb39420541ceaa8fd6a2c/README.recipes.md#recipe_modules-scheduler
 [recipe_engine/recipe_modules/service_account]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/7d75cc6e379d1603027cb39420541ceaa8fd6a2c/README.recipes.md#recipe_modules-service_account
 [recipe_engine/recipe_modules/step]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/7d75cc6e379d1603027cb39420541ceaa8fd6a2c/README.recipes.md#recipe_modules-step
+[recipe_engine/recipe_modules/swarming]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/7d75cc6e379d1603027cb39420541ceaa8fd6a2c/README.recipes.md#recipe_modules-swarming
 [recipe_engine/recipe_modules/tempfile]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/7d75cc6e379d1603027cb39420541ceaa8fd6a2c/README.recipes.md#recipe_modules-tempfile
 [recipe_engine/recipe_modules/time]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/7d75cc6e379d1603027cb39420541ceaa8fd6a2c/README.recipes.md#recipe_modules-time
 [recipe_engine/recipe_modules/url]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/7d75cc6e379d1603027cb39420541ceaa8fd6a2c/README.recipes.md#recipe_modules-url
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/basic.json b/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/basic.json
index b3d4c1a..5da88df 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/basic.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/basic.json
@@ -418,6 +418,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -454,6 +486,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests (with patch)",
     "~followup_annotations": [
       "step returned non-zero exit code: 1",
@@ -1254,6 +1291,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests (without patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2073,6 +2115,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests (retry with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/disable_deapply_patch_affected_files.json b/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/disable_deapply_patch_affected_files.json
index 294f72f..210d30e 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/disable_deapply_patch_affected_files.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/disable_deapply_patch_affected_files.json
@@ -418,6 +418,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -454,6 +486,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests (with patch)",
     "~followup_annotations": [
       "step returned non-zero exit code: 1",
@@ -1272,6 +1309,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests (retry with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/enable_retry_with_patch_invalid_test_results.json b/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/enable_retry_with_patch_invalid_test_results.json
index 14c0090..6f7a027 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/enable_retry_with_patch_invalid_test_results.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/enable_retry_with_patch_invalid_test_results.json
@@ -266,6 +266,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests (retry with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/enable_retry_with_patch_recipes.json b/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/enable_retry_with_patch_recipes.json
index 22e9ce1..1214e41 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/enable_retry_with_patch_recipes.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/enable_retry_with_patch_recipes.json
@@ -266,6 +266,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests (retry with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/enable_retry_with_patch_succeed_after_deapply.json b/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/enable_retry_with_patch_succeed_after_deapply.json
index 66026ad..1e3b522 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/enable_retry_with_patch_succeed_after_deapply.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/enable_retry_with_patch_succeed_after_deapply.json
@@ -418,6 +418,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -454,6 +486,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests (with patch)",
     "~followup_annotations": [
       "step returned non-zero exit code: 1",
@@ -1254,6 +1291,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests (without patch)",
     "~followup_annotations": [
       "step returned non-zero exit code: 1",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/nonzero_exit_code_no_gtest_output.json b/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/nonzero_exit_code_no_gtest_output.json
index 1819cc4..1c96a12 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/nonzero_exit_code_no_gtest_output.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/nonzero_exit_code_no_gtest_output.json
@@ -418,6 +418,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -454,6 +486,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests (with patch)",
     "~followup_annotations": [
       "step returned non-zero exit code: 1",
@@ -1258,6 +1295,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests (retry with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_gtest.expected/merge.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_gtest.expected/merge.json
index 2d28942..fe3dcea 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_gtest.expected/merge.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_gtest.expected/merge.json
@@ -253,6 +253,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -287,6 +319,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_gtest.expected/swarming.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_gtest.expected/swarming.json
index eb0f329..209ad20 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_gtest.expected/swarming.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_gtest.expected/swarming.json
@@ -255,6 +255,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -289,6 +321,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Linux'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_gtest.expected/swarming_plus_optional_dimension.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_gtest.expected/swarming_plus_optional_dimension.json
index 69f063e..475665e 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_gtest.expected/swarming_plus_optional_dimension.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_gtest.expected/swarming_plus_optional_dimension.json
@@ -259,6 +259,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -293,6 +325,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Linux'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_gtest.expected/trigger_script.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_gtest.expected/trigger_script.json
index 36db6d4..aca32d6 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_gtest.expected/trigger_script.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_gtest.expected/trigger_script.json
@@ -253,6 +253,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -287,6 +319,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_isolated_script.expected/custom_webkit_tests_step_name.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_isolated_script.expected/custom_webkit_tests_step_name.json
index e41e827..aa6da12 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_isolated_script.expected/custom_webkit_tests_step_name.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_isolated_script.expected/custom_webkit_tests_step_name.json
@@ -253,6 +253,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -286,6 +318,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "custom_webkit_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_isolated_script.expected/fake_results_handler.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_isolated_script.expected/fake_results_handler.json
index ec1a4d8..6e7c518 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_isolated_script.expected/fake_results_handler.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_isolated_script.expected/fake_results_handler.json
@@ -247,6 +247,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -280,6 +312,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_isolated_script.expected/swarming.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_isolated_script.expected/swarming.json
index 290273f..06bcc02 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_isolated_script.expected/swarming.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_isolated_script.expected/swarming.json
@@ -253,6 +253,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -286,6 +318,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_isolated_script.expected/swarming_dimension_sets.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_isolated_script.expected/swarming_dimension_sets.json
index 1211e7b..bf28a11 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_isolated_script.expected/swarming_dimension_sets.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_isolated_script.expected/swarming_dimension_sets.json
@@ -253,6 +253,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -286,6 +318,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Linux'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_isolated_script.expected/swarming_dimension_sets_plus_optional.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_isolated_script.expected/swarming_dimension_sets_plus_optional.json
index 632aef3..010b0c7 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_isolated_script.expected/swarming_dimension_sets_plus_optional.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_isolated_script.expected/swarming_dimension_sets_plus_optional.json
@@ -257,6 +257,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -290,6 +322,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Linux'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_isolated_script.expected/swarming_trigger_script.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_isolated_script.expected/swarming_trigger_script.json
index 9d8248f..70b87f1 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_isolated_script.expected/swarming_trigger_script.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/generate_isolated_script.expected/swarming_trigger_script.json
@@ -253,6 +253,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -286,6 +318,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_gtest_test.expected/android.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_gtest_test.expected/android.json
index ad1f5ae..9f684f6 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_gtest_test.expected/android.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_gtest_test.expected/android.json
@@ -90,6 +90,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -124,6 +156,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_gtest_test.expected/basic.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_gtest_test.expected/basic.json
index 8fa456d..39af087 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_gtest_test.expected/basic.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_gtest_test.expected/basic.json
@@ -90,6 +90,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -124,6 +156,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_gtest_test.expected/no_result_json.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_gtest_test.expected/no_result_json.json
index e3cddd3..e5f108c 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_gtest_test.expected/no_result_json.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_gtest_test.expected/no_result_json.json
@@ -90,6 +90,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -124,6 +156,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests",
     "~followup_annotations": [
       "step returned non-zero exit code: 1",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/basic.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/basic.json
index 030f219..01cc242 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/basic.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/basic.json
@@ -355,6 +355,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -390,6 +422,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests on Intel GPU on Linux (with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/basic_luci.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/basic_luci.json
index c70b2f8..c46ceb0 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/basic_luci.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/basic_luci.json
@@ -357,6 +357,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -392,6 +424,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests on Intel GPU on Linux (with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson.json
index 79c6c69..e5e7da0 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson.json
@@ -355,6 +355,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -390,6 +422,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests on Intel GPU on Linux (with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_disabled.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_disabled.json
index 1067624..caf4a86 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_disabled.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_disabled.json
@@ -355,6 +355,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -390,6 +422,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests on Intel GPU on Linux (with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: n/a<br/>@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_ignore_task_failure.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_ignore_task_failure.json
index 846d78e..9ee248c 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_ignore_task_failure.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_ignore_task_failure.json
@@ -355,6 +355,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -390,6 +422,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests on Intel GPU on Linux (with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 3<br/>* Passed: 0 (0 expected, 0 unexpected)<br/>* Skipped: 0 (0 expected, 0 unexpected)<br/>* Failed: 3 (1 expected, >>>2 unexpected<<<)<br/>* Flaky: 0 (0 expected, 0 unexpected)<br/><br/>Unexpected Failures:<br/>* test1.Test2<br/>* test1.Test2-2<br/>@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_invalid.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_invalid.json
index 14530bc..18515bd 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_invalid.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_invalid.json
@@ -355,6 +355,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -390,6 +422,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests on Intel GPU on Linux (with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@TEST RESULTS WERE INVALID@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_max_failures.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_max_failures.json
index 23022f4..037973d 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_max_failures.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_max_failures.json
@@ -355,6 +355,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -390,6 +422,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests on Intel GPU on Linux (with patch)",
     "~followup_annotations": [
       "step returned non-zero exit code: 102",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_no_results.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_no_results.json
index b3c769d..ce28c2e 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_no_results.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_no_results.json
@@ -355,6 +355,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -390,6 +422,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests on Intel GPU on Linux (with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_no_results_failure.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_no_results_failure.json
index cb65003..d343432 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_no_results_failure.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_no_results_failure.json
@@ -355,6 +355,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -390,6 +422,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests on Intel GPU on Linux (with patch)",
     "~followup_annotations": [
       "step returned non-zero exit code: 1",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_not_uploading.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_not_uploading.json
index e785c3b..c000320 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_not_uploading.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_not_uploading.json
@@ -355,6 +355,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -390,6 +422,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests on Intel GPU on Linux (with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_simplified_disabled.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_simplified_disabled.json
index 774e1bc..bbf7fd6 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_simplified_disabled.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_simplified_disabled.json
@@ -355,6 +355,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -390,6 +422,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests on Intel GPU on Linux (with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>2 passed, 0 failed (2 total)<br/>@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_simplified_ignore_task_failure.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_simplified_ignore_task_failure.json
index 83abfe5..db76dd6 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_simplified_ignore_task_failure.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/chartjson_simplified_ignore_task_failure.json
@@ -355,6 +355,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -390,6 +422,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests on Intel GPU on Linux (with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>0 passed, 2 failed (2 total)<br/><br/>Unexpected Failures:<br/>* test1.Test1<br/>* test2.Test2<br/>@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/dimensions_android.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/dimensions_android.json
index d632df2..4b413a5 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/dimensions_android.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/dimensions_android.json
@@ -363,6 +363,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -398,6 +430,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests on Android device Nexus 5 (with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/dimensions_mac.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/dimensions_mac.json
index 181b43e..535bd63 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/dimensions_mac.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/dimensions_mac.json
@@ -355,6 +355,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -390,6 +422,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests on Intel GPU on Mac (with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/dimensions_mac_hidpi.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/dimensions_mac_hidpi.json
index efbb750..ab83a9e 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/dimensions_mac_hidpi.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/dimensions_mac_hidpi.json
@@ -358,6 +358,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -393,6 +425,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests on Intel GPU on Mac Retina (with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/dimensions_windows.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/dimensions_windows.json
index fed364f..8160dd5 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/dimensions_windows.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/dimensions_windows.json
@@ -355,6 +355,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -390,6 +422,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests on Intel GPU on Windows (with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/histograms.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/histograms.json
index dcfe506..f832143 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/histograms.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/histograms.json
@@ -356,6 +356,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -391,6 +423,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests on Intel GPU on Linux (with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/histograms_LUCI_missing_perf_dashboard_machine_group_property.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/histograms_LUCI_missing_perf_dashboard_machine_group_property.json
index d942030..4e726d9 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/histograms_LUCI_missing_perf_dashboard_machine_group_property.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/histograms_LUCI_missing_perf_dashboard_machine_group_property.json
@@ -356,6 +356,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -391,6 +423,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests on Intel GPU on Linux (with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/override_compile_targets.json b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/override_compile_targets.json
index f0b152a..0fbde11 100644
--- a/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/override_compile_targets.json
+++ b/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.expected/override_compile_targets.json
@@ -355,6 +355,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -390,6 +422,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests on Intel GPU on Linux (with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipe_modules/dart/examples/example.expected/analyzer-none-linux-release-be.json b/scripts/slave/recipe_modules/dart/examples/example.expected/analyzer-none-linux-release-be.json
index aebc291..a603662 100644
--- a/scripts/slave/recipe_modules/dart/examples/example.expected/analyzer-none-linux-release-be.json
+++ b/scripts/slave/recipe_modules/dart/examples/example.expected/analyzer-none-linux-release-be.json
@@ -1541,6 +1541,38 @@
     "name": "Test-step 3"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -1574,6 +1606,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "Test-step 1_shard_1",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Linux'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -1651,6 +1688,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "Test-step 1_shard_2",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Linux'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/dart/examples/example.expected/basic-mac.json b/scripts/slave/recipe_modules/dart/examples/example.expected/basic-mac.json
index 62fd9b9..d191c4a 100644
--- a/scripts/slave/recipe_modules/dart/examples/example.expected/basic-mac.json
+++ b/scripts/slave/recipe_modules/dart/examples/example.expected/basic-mac.json
@@ -1671,6 +1671,38 @@
     "name": "Test-step 3_shard_2"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -1704,6 +1736,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "Test-step 1_shard_1",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -1774,6 +1811,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "Test-step 1_shard_2",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -1844,6 +1886,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "Test-step 3_shard_1",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/dart/examples/example.expected/basic-win-stable.json b/scripts/slave/recipe_modules/dart/examples/example.expected/basic-win-stable.json
index 285479b..a1e1a19 100644
--- a/scripts/slave/recipe_modules/dart/examples/example.expected/basic-win-stable.json
+++ b/scripts/slave/recipe_modules/dart/examples/example.expected/basic-win-stable.json
@@ -1473,6 +1473,38 @@
     "name": "Test-step 3_shard_2"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -1506,6 +1538,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "Test-step 3_shard_1 on Windows",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/dart/examples/example.expected/basic-win.json b/scripts/slave/recipe_modules/dart/examples/example.expected/basic-win.json
index fca5f64..c725767 100644
--- a/scripts/slave/recipe_modules/dart/examples/example.expected/basic-win.json
+++ b/scripts/slave/recipe_modules/dart/examples/example.expected/basic-win.json
@@ -1673,6 +1673,38 @@
     "name": "Test-step 3_shard_2"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -1706,6 +1738,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "Test-step 1_shard_1 on Windows",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -1776,6 +1813,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "Test-step 1_shard_2 on Windows",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -1846,6 +1888,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "Test-step 3_shard_1 on Windows",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/dart/examples/example.expected/basic.json b/scripts/slave/recipe_modules/dart/examples/example.expected/basic.json
index 5118432..2681f8f 100644
--- a/scripts/slave/recipe_modules/dart/examples/example.expected/basic.json
+++ b/scripts/slave/recipe_modules/dart/examples/example.expected/basic.json
@@ -676,6 +676,38 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -709,6 +741,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "vm_tests_shard_1",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Linux'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -779,6 +816,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "vm_tests_shard_2",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Linux'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -1498,6 +1540,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "Test-step 1_shard_1",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Linux'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -1575,6 +1622,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "Test-step 1_shard_2",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Linux'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/dart/examples/example.expected/vm-win.json b/scripts/slave/recipe_modules/dart/examples/example.expected/vm-win.json
index 749bdfc..2f4ad63 100644
--- a/scripts/slave/recipe_modules/dart/examples/example.expected/vm-win.json
+++ b/scripts/slave/recipe_modules/dart/examples/example.expected/vm-win.json
@@ -1451,6 +1451,38 @@
     "name": "Test-step 3_shard_2"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -1484,6 +1516,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "Test-step 3_shard_1 on Windows",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/ios/examples/full.expected/basic.json b/scripts/slave/recipe_modules/ios/examples/full.expected/basic.json
index 27577f7..8bbad18 100644
--- a/scripts/slave/recipe_modules/ios/examples/full.expected/basic.json
+++ b/scripts/slave/recipe_modules/ios/examples/full.expected/basic.json
@@ -2971,6 +2971,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[START_DIR]/src",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/src",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -3004,6 +3038,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake test 0 (fake device 0 iOS 11.0) shard 0",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3098,6 +3137,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake test 0 (fake device 0 iOS 11.0) shard 1",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3192,6 +3236,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake test 0 (fake device 0 iOS 11.0) shard 2",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3263,6 +3312,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake test 1 (fake device 1 iOS 8.1)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3378,6 +3432,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake test 2 (fake device 2 iOS 8.1) on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3449,6 +3508,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake included test 1 (fake device 1 iOS 8.1)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3520,6 +3584,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake included test 2 (fake device 1 iOS 8.1)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3591,6 +3660,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake test 2 (fake device 2 iOS 7.1)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3662,6 +3736,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake included test 1 (fake device 2 iOS 7.1)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3733,6 +3812,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake included test 2 (fake device 2 iOS 7.1)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/ios/examples/full.expected/deprecate_xcode_version.json b/scripts/slave/recipe_modules/ios/examples/full.expected/deprecate_xcode_version.json
index 7b46920..ac006d9 100644
--- a/scripts/slave/recipe_modules/ios/examples/full.expected/deprecate_xcode_version.json
+++ b/scripts/slave/recipe_modules/ios/examples/full.expected/deprecate_xcode_version.json
@@ -841,6 +841,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[START_DIR]/src",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/src",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -874,6 +908,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "build-global xcode version (iPhone X iOS 10.0) on iOS-10.0",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'iOS-10.0'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -945,6 +984,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test-local xcode version (iPhone X iOS 11.0) on iOS-11.0",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'iOS-11.0'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/ios/examples/full.expected/device_check_false.json b/scripts/slave/recipe_modules/ios/examples/full.expected/device_check_false.json
index e41a07d..18a1092 100644
--- a/scripts/slave/recipe_modules/ios/examples/full.expected/device_check_false.json
+++ b/scripts/slave/recipe_modules/ios/examples/full.expected/device_check_false.json
@@ -630,6 +630,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[START_DIR]/src",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/src",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -663,6 +697,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "build-global xcode build version (iPhone X iOS 10.0) on iOS-10.0",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'iOS-10.0'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/ios/examples/full.expected/errors.json b/scripts/slave/recipe_modules/ios/examples/full.expected/errors.json
index c8285cb..70f28e0 100644
--- a/scripts/slave/recipe_modules/ios/examples/full.expected/errors.json
+++ b/scripts/slave/recipe_modules/ios/examples/full.expected/errors.json
@@ -958,6 +958,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[START_DIR]/src",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/src",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -991,6 +1025,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake test 2 (iPad Air iOS 8.1) on iOS-8.1",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'iOS-8.1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/ios/examples/full.expected/expiration_test.json b/scripts/slave/recipe_modules/ios/examples/full.expected/expiration_test.json
index 02f53ac..2a355ca 100644
--- a/scripts/slave/recipe_modules/ios/examples/full.expected/expiration_test.json
+++ b/scripts/slave/recipe_modules/ios/examples/full.expected/expiration_test.json
@@ -645,6 +645,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[START_DIR]/src",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/src",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -678,6 +712,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake test (fake device iOS 8.1)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Bot id: 'fake99-b1'<br/>Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/ios/examples/full.expected/expired.json b/scripts/slave/recipe_modules/ios/examples/full.expected/expired.json
index 9128bdf..849a9b1 100644
--- a/scripts/slave/recipe_modules/ios/examples/full.expected/expired.json
+++ b/scripts/slave/recipe_modules/ios/examples/full.expected/expired.json
@@ -639,6 +639,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[START_DIR]/src",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/src",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -672,6 +706,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake test (fake device iOS 8.1)",
     "~followup_annotations": [
       "step returned non-zero exit code: 1",
diff --git a/scripts/slave/recipe_modules/ios/examples/full.expected/fyi.json b/scripts/slave/recipe_modules/ios/examples/full.expected/fyi.json
index 0303f7c..d1dbd82 100644
--- a/scripts/slave/recipe_modules/ios/examples/full.expected/fyi.json
+++ b/scripts/slave/recipe_modules/ios/examples/full.expected/fyi.json
@@ -640,6 +640,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[START_DIR]/src",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/src",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -673,6 +707,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake test (fake device iOS 8.1)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/ios/examples/full.expected/infra_failure.json b/scripts/slave/recipe_modules/ios/examples/full.expected/infra_failure.json
index 201beec..cd54b9c 100644
--- a/scripts/slave/recipe_modules/ios/examples/full.expected/infra_failure.json
+++ b/scripts/slave/recipe_modules/ios/examples/full.expected/infra_failure.json
@@ -639,6 +639,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[START_DIR]/src",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/src",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -672,6 +706,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake test (fake device iOS 8.1)",
     "~followup_annotations": [
       "step returned non-zero exit code: 1",
diff --git a/scripts/slave/recipe_modules/ios/examples/full.expected/max_runtime_test.json b/scripts/slave/recipe_modules/ios/examples/full.expected/max_runtime_test.json
index b8355ab..72231b0 100644
--- a/scripts/slave/recipe_modules/ios/examples/full.expected/max_runtime_test.json
+++ b/scripts/slave/recipe_modules/ios/examples/full.expected/max_runtime_test.json
@@ -645,6 +645,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[START_DIR]/src",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/src",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -678,6 +712,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake test (fake device iOS 8.1)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Bot id: 'fake99-b1'<br/>Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/ios/examples/full.expected/no_exit_code.json b/scripts/slave/recipe_modules/ios/examples/full.expected/no_exit_code.json
index 2691506..4373fa5 100644
--- a/scripts/slave/recipe_modules/ios/examples/full.expected/no_exit_code.json
+++ b/scripts/slave/recipe_modules/ios/examples/full.expected/no_exit_code.json
@@ -639,6 +639,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[START_DIR]/src",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/src",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -672,6 +706,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake test (fake device iOS 8.1)",
     "~followup_annotations": [
       "step returned non-zero exit code: 1",
diff --git a/scripts/slave/recipe_modules/ios/examples/full.expected/perf_test.json b/scripts/slave/recipe_modules/ios/examples/full.expected/perf_test.json
index f48a37d..9fa9df6 100644
--- a/scripts/slave/recipe_modules/ios/examples/full.expected/perf_test.json
+++ b/scripts/slave/recipe_modules/ios/examples/full.expected/perf_test.json
@@ -644,6 +644,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[START_DIR]/src",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/src",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -677,6 +711,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake test (fake device iOS 8.1)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Bot id: 'fake99-b1'<br/>Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/ios/examples/full.expected/test_failure.json b/scripts/slave/recipe_modules/ios/examples/full.expected/test_failure.json
index 4364124..b67cefe 100644
--- a/scripts/slave/recipe_modules/ios/examples/full.expected/test_failure.json
+++ b/scripts/slave/recipe_modules/ios/examples/full.expected/test_failure.json
@@ -639,6 +639,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[START_DIR]/src",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/src",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -672,6 +706,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake test (fake device iOS 8.1)",
     "~followup_annotations": [
       "step returned non-zero exit code: 1",
diff --git a/scripts/slave/recipe_modules/ios/examples/full.expected/timed_out.json b/scripts/slave/recipe_modules/ios/examples/full.expected/timed_out.json
index 32f0391..8ec774b 100644
--- a/scripts/slave/recipe_modules/ios/examples/full.expected/timed_out.json
+++ b/scripts/slave/recipe_modules/ios/examples/full.expected/timed_out.json
@@ -639,6 +639,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[START_DIR]/src",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/src",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -672,6 +706,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake test (fake device iOS 8.1)",
     "~followup_annotations": [
       "step returned non-zero exit code: 1",
diff --git a/scripts/slave/recipe_modules/ios/examples/full.expected/use_trusted_cert.json b/scripts/slave/recipe_modules/ios/examples/full.expected/use_trusted_cert.json
index 0216d18..6adc92f 100644
--- a/scripts/slave/recipe_modules/ios/examples/full.expected/use_trusted_cert.json
+++ b/scripts/slave/recipe_modules/ios/examples/full.expected/use_trusted_cert.json
@@ -642,6 +642,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[START_DIR]/src",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/src",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -675,6 +709,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake test (fake device iOS 8.1)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/ios/examples/full.expected/use_wpr_tools.json b/scripts/slave/recipe_modules/ios/examples/full.expected/use_wpr_tools.json
index 7970b90..a1e8228 100644
--- a/scripts/slave/recipe_modules/ios/examples/full.expected/use_wpr_tools.json
+++ b/scripts/slave/recipe_modules/ios/examples/full.expected/use_wpr_tools.json
@@ -651,6 +651,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[START_DIR]/src",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/src",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -684,6 +718,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake test (fake device iOS 8.1)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/ios/examples/full.expected/xcode_build_version.json b/scripts/slave/recipe_modules/ios/examples/full.expected/xcode_build_version.json
index 6acb2a3..ccb8770 100644
--- a/scripts/slave/recipe_modules/ios/examples/full.expected/xcode_build_version.json
+++ b/scripts/slave/recipe_modules/ios/examples/full.expected/xcode_build_version.json
@@ -1032,6 +1032,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[START_DIR]/src",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/src",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -1065,6 +1099,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "build-global xcode build version (fake device iOS 10.0)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -1136,6 +1175,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "task-local xcode build version (fake device 2 iOS 11.0)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -1207,6 +1251,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "task-local xcode version (fake device 3 iOS 11.0)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/ios/examples/full.expected/xcode_build_version_luci.json b/scripts/slave/recipe_modules/ios/examples/full.expected/xcode_build_version_luci.json
index a85926d..06312e5 100644
--- a/scripts/slave/recipe_modules/ios/examples/full.expected/xcode_build_version_luci.json
+++ b/scripts/slave/recipe_modules/ios/examples/full.expected/xcode_build_version_luci.json
@@ -1031,6 +1031,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder/src",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} latest",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder/src",
+    "infra_step": true,
+    "name": "ensure swarming.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-latest----------\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -1064,6 +1098,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "build-global xcode build version (fake device iOS 10.0)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -1135,6 +1174,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "task-local xcode build version (fake device 2 iOS 11.0)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -1206,6 +1250,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "task-local xcode version (fake device 3 iOS 11.0)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/ios/examples/full.expected/xparallel_run.json b/scripts/slave/recipe_modules/ios/examples/full.expected/xparallel_run.json
index c2867ea..79129ca 100644
--- a/scripts/slave/recipe_modules/ios/examples/full.expected/xparallel_run.json
+++ b/scripts/slave/recipe_modules/ios/examples/full.expected/xparallel_run.json
@@ -648,6 +648,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[START_DIR]/src",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/src",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -681,6 +715,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake test (fake device iOS 12.0.1)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/ios/examples/full.expected/xparallel_run_skip.json b/scripts/slave/recipe_modules/ios/examples/full.expected/xparallel_run_skip.json
index 78d34fa..51b687d 100644
--- a/scripts/slave/recipe_modules/ios/examples/full.expected/xparallel_run_skip.json
+++ b/scripts/slave/recipe_modules/ios/examples/full.expected/xparallel_run_skip.json
@@ -648,6 +648,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[START_DIR]/src",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/src",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -681,6 +715,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake test (fake device iOS 12.0.1)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/swarming/api.py b/scripts/slave/recipe_modules/swarming/api.py
index ad87d51..7074810 100644
--- a/scripts/slave/recipe_modules/swarming/api.py
+++ b/scripts/slave/recipe_modules/swarming/api.py
@@ -964,10 +964,9 @@
 
     if task.use_go_client:
       task_args.append('--use-go-client')
-      # TODO(tikuta): This line assumes the recipe is working with
-      # Chromium checkout.
+
       collect_cmd = [
-        self.m.path['checkout'].join('tools', 'luci-go', 'swarming'),
+        'swarming',
       ]
       # go's client does not generate summary file under output dir.
       # Need to tell the location of summary file to collect_task.py.
@@ -1008,14 +1007,15 @@
         'Successfully merged all data'))
 
     try:
-      with self.m.context(cwd=self.m.path['start_dir']):
-        return self.m.build.python(
-            name=name or self.get_step_name('', task),
-            script=self.resource('collect_task.py'),
-            args=task_args,
-            ok_ret=allowed_return_codes,
-            step_test_data=lambda: step_test_data,
-            **kwargs)
+      with self.m.swarming_client.on_path():
+        with self.m.context(cwd=self.m.path['start_dir']):
+          return self.m.build.python(
+              name=name or self.get_step_name('', task),
+              script=self.resource('collect_task.py'),
+              args=task_args,
+              ok_ret=allowed_return_codes,
+              step_test_data=lambda: step_test_data,
+              **kwargs)
     finally:
       step_result = None
       try:
diff --git a/scripts/slave/recipe_modules/swarming/examples/full.expected/basic.json b/scripts/slave/recipe_modules/swarming/examples/full.expected/basic.json
index 9735abe..0a4f2c2 100644
--- a/scripts/slave/recipe_modules/swarming/examples/full.expected/basic.json
+++ b/scripts/slave/recipe_modules/swarming/examples/full.expected/basic.json
@@ -470,6 +470,38 @@
     "name": "local step"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -506,6 +538,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world on Windows-7-SP1",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -579,6 +616,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -674,6 +716,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world on Mac-10.13",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.13'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/swarming/examples/full.expected/basic_luci.json b/scripts/slave/recipe_modules/swarming/examples/full.expected/basic_luci.json
index 11cc776..1c6bac1 100644
--- a/scripts/slave/recipe_modules/swarming/examples/full.expected/basic_luci.json
+++ b/scripts/slave/recipe_modules/swarming/examples/full.expected/basic_luci.json
@@ -469,6 +469,38 @@
     "name": "local step"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -505,6 +537,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world on Windows-7-SP1",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -578,6 +615,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -673,6 +715,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world on Mac-10.13",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.13'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/swarming/examples/full.expected/basic_luci_experimental.json b/scripts/slave/recipe_modules/swarming/examples/full.expected/basic_luci_experimental.json
index 5cbe110..d000a18 100644
--- a/scripts/slave/recipe_modules/swarming/examples/full.expected/basic_luci_experimental.json
+++ b/scripts/slave/recipe_modules/swarming/examples/full.expected/basic_luci_experimental.json
@@ -469,6 +469,38 @@
     "name": "local step"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} latest",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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-latest----------\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -505,6 +537,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world on Windows-7-SP1",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -578,6 +615,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -673,6 +715,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world on Mac-10.13",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.13'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/swarming/examples/full.expected/gerrit_trybot.json b/scripts/slave/recipe_modules/swarming/examples/full.expected/gerrit_trybot.json
index 9818c126..9c6b6fb 100644
--- a/scripts/slave/recipe_modules/swarming/examples/full.expected/gerrit_trybot.json
+++ b/scripts/slave/recipe_modules/swarming/examples/full.expected/gerrit_trybot.json
@@ -230,6 +230,38 @@
     "name": "local step"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -266,6 +298,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world on Windows-7-SP1",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/swarming/examples/full.expected/gtest_with_deduped_shard.json b/scripts/slave/recipe_modules/swarming/examples/full.expected/gtest_with_deduped_shard.json
index c3b83e9..19c7dc3 100644
--- a/scripts/slave/recipe_modules/swarming/examples/full.expected/gtest_with_deduped_shard.json
+++ b/scripts/slave/recipe_modules/swarming/examples/full.expected/gtest_with_deduped_shard.json
@@ -232,6 +232,38 @@
     "name": "local step"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -269,6 +301,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world",
     "~followup_annotations": [
       "step returned non-zero exit code: 1",
diff --git a/scripts/slave/recipe_modules/swarming/examples/full.expected/gtest_with_duration.json b/scripts/slave/recipe_modules/swarming/examples/full.expected/gtest_with_duration.json
index 5ad65c2..65a6b6c 100644
--- a/scripts/slave/recipe_modules/swarming/examples/full.expected/gtest_with_duration.json
+++ b/scripts/slave/recipe_modules/swarming/examples/full.expected/gtest_with_duration.json
@@ -226,6 +226,38 @@
     "name": "local step"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -262,6 +294,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world on Windows-7-SP1",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'@@@",
diff --git a/scripts/slave/recipe_modules/swarming/examples/full.expected/gtest_with_long_task.json b/scripts/slave/recipe_modules/swarming/examples/full.expected/gtest_with_long_task.json
index c7bf811..598ed27 100644
--- a/scripts/slave/recipe_modules/swarming/examples/full.expected/gtest_with_long_task.json
+++ b/scripts/slave/recipe_modules/swarming/examples/full.expected/gtest_with_long_task.json
@@ -226,6 +226,38 @@
     "name": "local step"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -262,6 +294,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world on Windows-7-SP1",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:07:12 (shard #2)<br>Min shard duration: 0:01:00 (shard #0)@@@",
diff --git a/scripts/slave/recipe_modules/swarming/examples/full.expected/gtest_with_many_failures.json b/scripts/slave/recipe_modules/swarming/examples/full.expected/gtest_with_many_failures.json
index 1bb7746..c3ac8a8 100644
--- a/scripts/slave/recipe_modules/swarming/examples/full.expected/gtest_with_many_failures.json
+++ b/scripts/slave/recipe_modules/swarming/examples/full.expected/gtest_with_many_failures.json
@@ -226,6 +226,38 @@
     "name": "local step"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -263,6 +295,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world on Windows-7-SP1",
     "~followup_annotations": [
       "step returned non-zero exit code: 1",
diff --git a/scripts/slave/recipe_modules/swarming/examples/full.expected/gtest_with_null_shard.json b/scripts/slave/recipe_modules/swarming/examples/full.expected/gtest_with_null_shard.json
index 72c0834..1544479 100644
--- a/scripts/slave/recipe_modules/swarming/examples/full.expected/gtest_with_null_shard.json
+++ b/scripts/slave/recipe_modules/swarming/examples/full.expected/gtest_with_null_shard.json
@@ -232,6 +232,38 @@
     "name": "local step"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -269,6 +301,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world",
     "~followup_annotations": [
       "step returned non-zero exit code: 1",
diff --git a/scripts/slave/recipe_modules/swarming/examples/full.expected/gtest_with_outputs_ref.json b/scripts/slave/recipe_modules/swarming/examples/full.expected/gtest_with_outputs_ref.json
index 473270c..7896b4f 100644
--- a/scripts/slave/recipe_modules/swarming/examples/full.expected/gtest_with_outputs_ref.json
+++ b/scripts/slave/recipe_modules/swarming/examples/full.expected/gtest_with_outputs_ref.json
@@ -226,6 +226,38 @@
     "name": "local step"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -262,6 +294,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world on Windows-7-SP1",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/swarming/examples/full.expected/isolated_large_outdir.json b/scripts/slave/recipe_modules/swarming/examples/full.expected/isolated_large_outdir.json
index 664e218..06a2963 100644
--- a/scripts/slave/recipe_modules/swarming/examples/full.expected/isolated_large_outdir.json
+++ b/scripts/slave/recipe_modules/swarming/examples/full.expected/isolated_large_outdir.json
@@ -232,6 +232,38 @@
     "name": "local step"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -268,6 +300,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world on Windows-7-SP1",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/swarming/examples/full.expected/isolated_script_expired_new.json b/scripts/slave/recipe_modules/swarming/examples/full.expected/isolated_script_expired_new.json
index 125277d..a6d3ccc 100644
--- a/scripts/slave/recipe_modules/swarming/examples/full.expected/isolated_script_expired_new.json
+++ b/scripts/slave/recipe_modules/swarming/examples/full.expected/isolated_script_expired_new.json
@@ -232,6 +232,38 @@
     "name": "local step"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -268,6 +300,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world on Windows-7-SP1",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/swarming/examples/full.expected/isolated_script_non_zero_exit_status.json b/scripts/slave/recipe_modules/swarming/examples/full.expected/isolated_script_non_zero_exit_status.json
index e9632fe..d291a92 100644
--- a/scripts/slave/recipe_modules/swarming/examples/full.expected/isolated_script_non_zero_exit_status.json
+++ b/scripts/slave/recipe_modules/swarming/examples/full.expected/isolated_script_non_zero_exit_status.json
@@ -232,6 +232,38 @@
     "name": "local step"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -255,7 +287,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]/swarming.client/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm-dev.appspot.com",
@@ -270,6 +302,11 @@
       "-service-account-json",
       "/creds/service_accounts/service-account-chromium-builder.json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world on Windows-7-SP1",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11@@@",
diff --git a/scripts/slave/recipe_modules/swarming/examples/full.expected/isolated_script_timeout_new.json b/scripts/slave/recipe_modules/swarming/examples/full.expected/isolated_script_timeout_new.json
index aa8d2d6..2a0e965 100644
--- a/scripts/slave/recipe_modules/swarming/examples/full.expected/isolated_script_timeout_new.json
+++ b/scripts/slave/recipe_modules/swarming/examples/full.expected/isolated_script_timeout_new.json
@@ -232,6 +232,38 @@
     "name": "local step"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -268,6 +300,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world on Windows-7-SP1",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/swarming/examples/full.expected/isolated_script_with_custom_merge.json b/scripts/slave/recipe_modules/swarming/examples/full.expected/isolated_script_with_custom_merge.json
index 1489797..c4e17e9 100644
--- a/scripts/slave/recipe_modules/swarming/examples/full.expected/isolated_script_with_custom_merge.json
+++ b/scripts/slave/recipe_modules/swarming/examples/full.expected/isolated_script_with_custom_merge.json
@@ -232,6 +232,38 @@
     "name": "local step"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -268,6 +300,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world on Windows-7-SP1",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'@@@",
diff --git a/scripts/slave/recipe_modules/swarming/examples/full.expected/isolated_script_with_null_shard.json b/scripts/slave/recipe_modules/swarming/examples/full.expected/isolated_script_with_null_shard.json
index e9bd2b3..ac97b95 100644
--- a/scripts/slave/recipe_modules/swarming/examples/full.expected/isolated_script_with_null_shard.json
+++ b/scripts/slave/recipe_modules/swarming/examples/full.expected/isolated_script_with_null_shard.json
@@ -238,6 +238,38 @@
     "name": "local step"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -274,6 +306,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'@@@",
diff --git a/scripts/slave/recipe_modules/swarming/examples/full.expected/named_caches.json b/scripts/slave/recipe_modules/swarming/examples/full.expected/named_caches.json
index d88bf88..3f0a8fb 100644
--- a/scripts/slave/recipe_modules/swarming/examples/full.expected/named_caches.json
+++ b/scripts/slave/recipe_modules/swarming/examples/full.expected/named_caches.json
@@ -232,6 +232,38 @@
     "name": "local step"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -268,6 +300,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world on Mac-10.13",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.13'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/swarming/examples/full.expected/service_account.json b/scripts/slave/recipe_modules/swarming/examples/full.expected/service_account.json
index 3dfe2dc..47745f7 100644
--- a/scripts/slave/recipe_modules/swarming/examples/full.expected/service_account.json
+++ b/scripts/slave/recipe_modules/swarming/examples/full.expected/service_account.json
@@ -476,6 +476,38 @@
     "name": "local step"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -512,6 +544,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world on Windows-7-SP1",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -585,6 +622,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -680,6 +722,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world on Mac-10.13",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.13'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/swarming/examples/full.expected/show_outputs_ref_in_collect_step.json b/scripts/slave/recipe_modules/swarming/examples/full.expected/show_outputs_ref_in_collect_step.json
index a05bc86..e471b75 100644
--- a/scripts/slave/recipe_modules/swarming/examples/full.expected/show_outputs_ref_in_collect_step.json
+++ b/scripts/slave/recipe_modules/swarming/examples/full.expected/show_outputs_ref_in_collect_step.json
@@ -226,6 +226,38 @@
     "name": "local step"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -262,6 +294,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world on Windows-7-SP1",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/swarming/examples/full.expected/show_shards_in_collect_step.json b/scripts/slave/recipe_modules/swarming/examples/full.expected/show_shards_in_collect_step.json
index a53d145..05b0c45 100644
--- a/scripts/slave/recipe_modules/swarming/examples/full.expected/show_shards_in_collect_step.json
+++ b/scripts/slave/recipe_modules/swarming/examples/full.expected/show_shards_in_collect_step.json
@@ -226,6 +226,38 @@
     "name": "local step"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -262,6 +294,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world on Windows-7-SP1",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipe_modules/swarming/examples/full.expected/swarming_expired_new.json b/scripts/slave/recipe_modules/swarming/examples/full.expected/swarming_expired_new.json
index 771c3ac..54de637 100644
--- a/scripts/slave/recipe_modules/swarming/examples/full.expected/swarming_expired_new.json
+++ b/scripts/slave/recipe_modules/swarming/examples/full.expected/swarming_expired_new.json
@@ -226,6 +226,38 @@
     "name": "local step"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -262,6 +294,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world on Windows-7-SP1",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11@@@",
diff --git a/scripts/slave/recipe_modules/swarming/examples/full.expected/swarming_timeout_new.json b/scripts/slave/recipe_modules/swarming/examples/full.expected/swarming_timeout_new.json
index 78650b3..07e77e2 100644
--- a/scripts/slave/recipe_modules/swarming/examples/full.expected/swarming_timeout_new.json
+++ b/scripts/slave/recipe_modules/swarming/examples/full.expected/swarming_timeout_new.json
@@ -226,6 +226,38 @@
     "name": "local step"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -262,6 +294,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "hello_world on Windows-7-SP1",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11@@@",
diff --git a/scripts/slave/recipe_modules/swarming_client/__init__.py b/scripts/slave/recipe_modules/swarming_client/__init__.py
index 0d4b808..2875f49 100644
--- a/scripts/slave/recipe_modules/swarming_client/__init__.py
+++ b/scripts/slave/recipe_modules/swarming_client/__init__.py
@@ -9,4 +9,5 @@
   'recipe_engine/python',
   'recipe_engine/raw_io',
   'recipe_engine/step',
+  'recipe_engine/swarming',
 ]
diff --git a/scripts/slave/recipe_modules/swarming_client/api.py b/scripts/slave/recipe_modules/swarming_client/api.py
index 404fa21..ef50227 100644
--- a/scripts/slave/recipe_modules/swarming_client/api.py
+++ b/scripts/slave/recipe_modules/swarming_client/api.py
@@ -2,6 +2,8 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+import contextlib
+
 from recipe_engine import recipe_api
 
 
@@ -123,3 +125,11 @@
       text = '%s is too old' % script
       # Throws a step failure
       self.m.python.failing_step(text, abort_reason)
+
+  @contextlib.contextmanager
+  def on_path(self):
+    """This is wrapper for recipe_engine/swarming.on_path, this should only be
+    used from swarming module.
+    """
+    with self.m.swarming.on_path():
+      yield
diff --git a/scripts/slave/recipe_modules/swarming_client/examples/full.expected/basic.json b/scripts/slave/recipe_modules/swarming_client/examples/full.expected/basic.json
index ae2bf8b..87d6ec4 100644
--- a/scripts/slave/recipe_modules/swarming_client/examples/full.expected/basic.json
+++ b/scripts/slave/recipe_modules/swarming_client/examples/full.expected/basic.json
@@ -4,6 +4,47 @@
     "name": "client path"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
+    "name": "on path"
+  },
+  {
     "cmd": [
       "python",
       "-u",
diff --git a/scripts/slave/recipe_modules/swarming_client/examples/full.expected/checkout_error.json b/scripts/slave/recipe_modules/swarming_client/examples/full.expected/checkout_error.json
index 8c835a2..d5c16dc 100644
--- a/scripts/slave/recipe_modules/swarming_client/examples/full.expected/checkout_error.json
+++ b/scripts/slave/recipe_modules/swarming_client/examples/full.expected/checkout_error.json
@@ -4,6 +4,47 @@
     "name": "client path"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
+    "name": "on path"
+  },
+  {
     "cmd": [
       "python",
       "-u",
diff --git a/scripts/slave/recipe_modules/swarming_client/examples/full.py b/scripts/slave/recipe_modules/swarming_client/examples/full.py
index 0247b9b..89b047f 100644
--- a/scripts/slave/recipe_modules/swarming_client/examples/full.py
+++ b/scripts/slave/recipe_modules/swarming_client/examples/full.py
@@ -13,6 +13,10 @@
 def RunSteps(api):
   # Code coverage for these methods.
   api.step('client path', [])
+
+  with api.swarming_client.on_path():
+    api.step('on path', [])
+
   api.step.active_result.step_text = api.swarming_client.path
 
   try:
diff --git a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_failed_isolated_script_test.json b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_failed_isolated_script_test.json
index a804246..d640ee7 100644
--- a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_failed_isolated_script_test.json
+++ b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_failed_isolated_script_test.json
@@ -543,6 +543,44 @@
     ]
   },
   {
+    "cmd": [],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -568,7 +606,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -584,6 +622,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests",
     "~followup_annotations": [
       "step returned non-zero exit code: 255",
diff --git a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_gtest_mac_gpu.json b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_gtest_mac_gpu.json
index 3203778..c37a24d 100644
--- a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_gtest_mac_gpu.json
+++ b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_gtest_mac_gpu.json
@@ -741,6 +741,46 @@
     ]
   },
   {
+    "cmd": [],
+    "env": {
+      "CHROME_HEADLESS": "1",
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "env": {
+      "CHROME_HEADLESS": "1",
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -767,7 +807,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -784,6 +824,11 @@
       "CHROME_HEADLESS": "1",
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "gl_tests on NVIDIA GPU on Mac Retina",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.13'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -893,7 +938,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -910,6 +955,11 @@
       "CHROME_HEADLESS": "1",
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "gl_tests on Intel GPU on Mac on Mac-10.10",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.10'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_isolated_script_test_failure_no_result_json.json b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_isolated_script_test_failure_no_result_json.json
index 2309e45..eeb8149 100644
--- a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_isolated_script_test_failure_no_result_json.json
+++ b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_isolated_script_test_failure_no_result_json.json
@@ -543,6 +543,44 @@
     ]
   },
   {
+    "cmd": [],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -568,7 +606,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -584,6 +622,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests",
     "~followup_annotations": [
       "step returned non-zero exit code: 1",
diff --git a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_isolated_script_test_linux_gpu.json b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_isolated_script_test_linux_gpu.json
index 5bbc7eb..9c6b90f 100644
--- a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_isolated_script_test_linux_gpu.json
+++ b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_isolated_script_test_linux_gpu.json
@@ -549,6 +549,44 @@
     ]
   },
   {
+    "cmd": [],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -574,7 +612,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -590,6 +628,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests on NVIDIA GPU on Linux",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Linux'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_isolated_script_test_mac_gpu.json b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_isolated_script_test_mac_gpu.json
index 9d20033..11292b9 100644
--- a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_isolated_script_test_mac_gpu.json
+++ b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_isolated_script_test_mac_gpu.json
@@ -744,6 +744,46 @@
     ]
   },
   {
+    "cmd": [],
+    "env": {
+      "CHROME_HEADLESS": "1",
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "env": {
+      "CHROME_HEADLESS": "1",
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -769,7 +809,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -786,6 +826,11 @@
       "CHROME_HEADLESS": "1",
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests on NVIDIA GPU on Mac Retina",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.13'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -933,7 +978,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -950,6 +995,11 @@
       "CHROME_HEADLESS": "1",
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests on Intel GPU on Mac on Mac-10.10",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.10'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_isolated_script_test_win_gpu.json b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_isolated_script_test_win_gpu.json
index 61676a5..9980014 100644
--- a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_isolated_script_test_win_gpu.json
+++ b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_isolated_script_test_win_gpu.json
@@ -852,6 +852,44 @@
     ]
   },
   {
+    "cmd": [],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -877,7 +915,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -893,6 +931,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests on (15ad) GPU on Windows",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -1038,7 +1081,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -1054,6 +1097,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests on ATI GPU on Windows",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -1199,7 +1247,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -1215,6 +1263,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests on NVIDIA GPU on Windows",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_isolated_script_test_win_non_gpu.json b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_isolated_script_test_win_non_gpu.json
index 0e3e7d1..dc01ad5 100644
--- a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_isolated_script_test_win_non_gpu.json
+++ b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_isolated_script_test_win_non_gpu.json
@@ -586,6 +586,44 @@
     "name": "test_installer"
   },
   {
+    "cmd": [],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -611,7 +649,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -627,6 +665,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests on Windows",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_passed_isolated_script_test.json b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_passed_isolated_script_test.json
index c2e3300..105c800 100644
--- a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_passed_isolated_script_test.json
+++ b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_passed_isolated_script_test.json
@@ -543,6 +543,44 @@
     ]
   },
   {
+    "cmd": [],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -568,7 +606,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -584,6 +622,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_passed_isolated_script_test_with_swarming_failure.json b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_passed_isolated_script_test_with_swarming_failure.json
index 65d5b58..bb76d28 100644
--- a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_passed_isolated_script_test_with_swarming_failure.json
+++ b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_passed_isolated_script_test_with_swarming_failure.json
@@ -543,6 +543,44 @@
     ]
   },
   {
+    "cmd": [],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -568,7 +606,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -584,6 +622,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests",
     "~followup_annotations": [
       "step returned non-zero exit code: 255",
diff --git a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_passed_with_bad_retcode_isolated_script_test.json b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_passed_with_bad_retcode_isolated_script_test.json
index f7bfffe..798b2ee 100644
--- a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_passed_with_bad_retcode_isolated_script_test.json
+++ b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_passed_with_bad_retcode_isolated_script_test.json
@@ -543,6 +543,44 @@
     ]
   },
   {
+    "cmd": [],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -568,7 +606,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -584,6 +622,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests",
     "~followup_annotations": [
       "step returned non-zero exit code: 255",
diff --git a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_serialized_gtests.json b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_serialized_gtests.json
index 0d5573a..03a697c 100644
--- a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_serialized_gtests.json
+++ b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_serialized_gtests.json
@@ -559,6 +559,44 @@
     ]
   },
   {
+    "cmd": [],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -585,7 +623,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -601,6 +639,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "base_unittests on NVIDIA GPU on Linux",
     "~followup_annotations": [
       "step returned non-zero exit code: 1",
@@ -835,7 +878,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -851,6 +894,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "browser_tests on NVIDIA GPU on Linux",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Linux'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_corrupt_json_isolated_script_test.json b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_corrupt_json_isolated_script_test.json
index 7e90fd9..958ab55 100644
--- a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_corrupt_json_isolated_script_test.json
+++ b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_corrupt_json_isolated_script_test.json
@@ -556,6 +556,44 @@
     ]
   },
   {
+    "cmd": [],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -581,7 +619,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -597,6 +635,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Exception while processing test results: 'str' object has no attribute 'iteritems'<br/>@@@",
diff --git a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_failed_isolated_script_test.json b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_failed_isolated_script_test.json
index 60d2c7b..723f1ce 100644
--- a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_failed_isolated_script_test.json
+++ b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_failed_isolated_script_test.json
@@ -550,6 +550,44 @@
     ]
   },
   {
+    "cmd": [],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -575,7 +613,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -591,6 +629,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests",
     "~followup_annotations": [
       "step returned non-zero exit code: 1",
diff --git a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_invalid_json_isolated_script_test.json b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_invalid_json_isolated_script_test.json
index 0e082f8..e0115c0 100644
--- a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_invalid_json_isolated_script_test.json
+++ b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_invalid_json_isolated_script_test.json
@@ -556,6 +556,44 @@
     ]
   },
   {
+    "cmd": [],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -581,7 +619,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -597,6 +635,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@TEST RESULTS WERE INVALID@@@",
diff --git a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_isolated_chartjson_test_disabled.json b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_isolated_chartjson_test_disabled.json
index 1c33d9e..e3d75e7 100644
--- a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_isolated_chartjson_test_disabled.json
+++ b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_isolated_chartjson_test_disabled.json
@@ -550,6 +550,44 @@
     ]
   },
   {
+    "cmd": [],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -575,7 +613,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -591,6 +629,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: n/a<br/>@@@",
diff --git a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_isolated_chartjson_test_harness_failure.json b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_isolated_chartjson_test_harness_failure.json
index 00efec7..cbcf837 100644
--- a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_isolated_chartjson_test_harness_failure.json
+++ b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_isolated_chartjson_test_harness_failure.json
@@ -550,6 +550,44 @@
     ]
   },
   {
+    "cmd": [],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -575,7 +613,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -591,6 +629,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests",
     "~followup_annotations": [
       "step returned non-zero exit code: 1",
diff --git a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_isolated_chartjson_test_missing_all_shards.json b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_isolated_chartjson_test_missing_all_shards.json
index 8fc7e59..9935fb5 100644
--- a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_isolated_chartjson_test_missing_all_shards.json
+++ b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_isolated_chartjson_test_missing_all_shards.json
@@ -25,7 +25,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -41,6 +41,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests",
     "~followup_annotations": [
       "step returned non-zero exit code: 1",
diff --git a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_isolated_chartjson_test_missing_shard.json b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_isolated_chartjson_test_missing_shard.json
index 723f6d3..b97c9bf 100644
--- a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_isolated_chartjson_test_missing_shard.json
+++ b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_isolated_chartjson_test_missing_shard.json
@@ -550,6 +550,44 @@
     ]
   },
   {
+    "cmd": [],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -575,7 +613,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -591,6 +629,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests",
     "~followup_annotations": [
       "step returned non-zero exit code: 1",
diff --git a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_isolated_script_test_harness_failure.json b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_isolated_script_test_harness_failure.json
index 7f91b61..47abeb5 100644
--- a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_isolated_script_test_harness_failure.json
+++ b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_isolated_script_test_harness_failure.json
@@ -550,6 +550,44 @@
     ]
   },
   {
+    "cmd": [],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -575,7 +613,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -591,6 +629,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests",
     "~followup_annotations": [
       "step returned non-zero exit code: 1",
diff --git a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_isolated_script_test_missing_shard.json b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_isolated_script_test_missing_shard.json
index 5ade280..8de994a 100644
--- a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_isolated_script_test_missing_shard.json
+++ b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_isolated_script_test_missing_shard.json
@@ -550,6 +550,44 @@
     ]
   },
   {
+    "cmd": [],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -575,7 +613,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -591,6 +629,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests",
     "~followup_annotations": [
       "step returned non-zero exit code: 1",
diff --git a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_passed_isolated_script_test.json b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_passed_isolated_script_test.json
index 51bce47..c39d699 100644
--- a/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_passed_isolated_script_test.json
+++ b/scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_passed_isolated_script_test.json
@@ -550,6 +550,44 @@
     ]
   },
   {
+    "cmd": [],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -575,7 +613,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -591,6 +629,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/chromium.expected/gtest_custom_merge_script.json b/scripts/slave/recipes/chromium.expected/gtest_custom_merge_script.json
index 1130613..f947602 100644
--- a/scripts/slave/recipes/chromium.expected/gtest_custom_merge_script.json
+++ b/scripts/slave/recipes/chromium.expected/gtest_custom_merge_script.json
@@ -26,7 +26,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -42,6 +42,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "browser_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/chromium.expected/isolated_script_test_custom_merge_script.json b/scripts/slave/recipes/chromium.expected/isolated_script_test_custom_merge_script.json
index b8505e0..60c47b0 100644
--- a/scripts/slave/recipes/chromium.expected/isolated_script_test_custom_merge_script.json
+++ b/scripts/slave/recipes/chromium.expected/isolated_script_test_custom_merge_script.json
@@ -25,7 +25,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -41,6 +41,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: n/a<br/>@@@",
diff --git a/scripts/slave/recipes/chromium.expected/isolated_script_test_custom_merge_script_with_args.json b/scripts/slave/recipes/chromium.expected/isolated_script_test_custom_merge_script_with_args.json
index a004a4d..2b12a68 100644
--- a/scripts/slave/recipes/chromium.expected/isolated_script_test_custom_merge_script_with_args.json
+++ b/scripts/slave/recipes/chromium.expected/isolated_script_test_custom_merge_script_with_args.json
@@ -25,7 +25,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -41,6 +41,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: n/a<br/>@@@",
diff --git a/scripts/slave/recipes/chromium.expected/isolated_script_test_custom_results_handler.json b/scripts/slave/recipes/chromium.expected/isolated_script_test_custom_results_handler.json
index faf522f..ffcd927 100644
--- a/scripts/slave/recipes/chromium.expected/isolated_script_test_custom_results_handler.json
+++ b/scripts/slave/recipes/chromium.expected/isolated_script_test_custom_results_handler.json
@@ -25,7 +25,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[START_DIR]/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -41,6 +41,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/chromium_trybot.expected/dynamic_isolated_script_test_on_trybot_failing.json b/scripts/slave/recipes/chromium_trybot.expected/dynamic_isolated_script_test_on_trybot_failing.json
index e37dbee..656b227 100644
--- a/scripts/slave/recipes/chromium_trybot.expected/dynamic_isolated_script_test_on_trybot_failing.json
+++ b/scripts/slave/recipes/chromium_trybot.expected/dynamic_isolated_script_test_on_trybot_failing.json
@@ -1056,6 +1056,46 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/linux",
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/linux",
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -1081,7 +1121,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/linux/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -1097,6 +1137,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests (with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>0 passed, 2 failed (2 total)<br/><br/>Unexpected Failures:<br/>* test1.Test1<br/>* test2.Test2<br/>@@@",
@@ -1923,7 +1968,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/linux/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -1939,6 +1984,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests (without patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>2 passed, 0 failed (2 total)<br/>@@@",
@@ -2818,7 +2868,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/linux/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2834,6 +2884,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests (retry with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/chromium_trybot.expected/dynamic_isolated_script_test_on_trybot_passing.json b/scripts/slave/recipes/chromium_trybot.expected/dynamic_isolated_script_test_on_trybot_passing.json
index aa482c5..78b5554 100644
--- a/scripts/slave/recipes/chromium_trybot.expected/dynamic_isolated_script_test_on_trybot_passing.json
+++ b/scripts/slave/recipes/chromium_trybot.expected/dynamic_isolated_script_test_on_trybot_passing.json
@@ -1056,6 +1056,46 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/linux",
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/linux",
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -1081,7 +1121,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/linux/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -1097,6 +1137,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests (with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>2 passed, 0 failed (2 total)<br/>@@@",
diff --git a/scripts/slave/recipes/chromium_trybot.expected/dynamic_isolated_script_test_with_args_on_trybot.json b/scripts/slave/recipes/chromium_trybot.expected/dynamic_isolated_script_test_with_args_on_trybot.json
index 3215f13..de9d352 100644
--- a/scripts/slave/recipes/chromium_trybot.expected/dynamic_isolated_script_test_with_args_on_trybot.json
+++ b/scripts/slave/recipes/chromium_trybot.expected/dynamic_isolated_script_test_with_args_on_trybot.json
@@ -1071,6 +1071,46 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/linux",
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/linux",
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -1096,7 +1136,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/linux/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -1112,6 +1152,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests (with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>2 passed, 0 failed (2 total)<br/>@@@",
diff --git a/scripts/slave/recipes/chromium_trybot.expected/dynamic_swarmed_isolated_script_test_failure_no_result_json.json b/scripts/slave/recipes/chromium_trybot.expected/dynamic_swarmed_isolated_script_test_failure_no_result_json.json
index 4312d18..ffa93e2 100644
--- a/scripts/slave/recipes/chromium_trybot.expected/dynamic_swarmed_isolated_script_test_failure_no_result_json.json
+++ b/scripts/slave/recipes/chromium_trybot.expected/dynamic_swarmed_isolated_script_test_failure_no_result_json.json
@@ -1056,6 +1056,46 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/linux",
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/linux",
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -1081,7 +1121,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/linux/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -1097,6 +1137,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests (with patch)",
     "~followup_annotations": [
       "step returned non-zero exit code: 1",
@@ -1925,7 +1970,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/linux/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -1941,6 +1986,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests (without patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2868,7 +2918,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/linux/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2884,6 +2934,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "telemetry_gpu_unittests (retry with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/chromium_trybot.expected/swarmed_layout_tests_too_many_failures_for_retcode.json b/scripts/slave/recipes/chromium_trybot.expected/swarmed_layout_tests_too_many_failures_for_retcode.json
index 93804e0..6288aa9 100644
--- a/scripts/slave/recipes/chromium_trybot.expected/swarmed_layout_tests_too_many_failures_for_retcode.json
+++ b/scripts/slave/recipes/chromium_trybot.expected/swarmed_layout_tests_too_many_failures_for_retcode.json
@@ -1057,6 +1057,46 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/linux",
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/linux",
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -1082,7 +1122,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/linux/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -1098,6 +1138,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "blink_web_tests (with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>0 passed, 2 failed (2 total)<br/><br/>Unexpected Failures:<br/>* test1.Test1<br/>* test2.Test2<br/>@@@",
@@ -1963,7 +2008,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/linux/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -1979,6 +2024,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "blink_web_tests (without patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>2 passed, 0 failed (2 total)<br/>@@@",
@@ -2923,7 +2973,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/linux/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2939,6 +2989,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "blink_web_tests (retry with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/chromium_trybot.expected/swarmed_webkit_tests_interrupted.json b/scripts/slave/recipes/chromium_trybot.expected/swarmed_webkit_tests_interrupted.json
index f4a916b..6bc9514 100644
--- a/scripts/slave/recipes/chromium_trybot.expected/swarmed_webkit_tests_interrupted.json
+++ b/scripts/slave/recipes/chromium_trybot.expected/swarmed_webkit_tests_interrupted.json
@@ -1057,6 +1057,46 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/linux",
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/linux",
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -1082,7 +1122,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/linux/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -1098,6 +1138,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "blink_web_tests (with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>0 passed, 2 failed (2 total)<br/><br/>Unexpected Failures:<br/>* test1.Test1<br/>* test2.Test2<br/>@@@",
@@ -1963,7 +2008,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/linux/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -1979,6 +2024,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "blink_web_tests (without patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2975,7 +3025,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/linux/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2991,6 +3041,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "blink_web_tests (retry with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/chromium_trybot.expected/swarmed_webkit_tests_unexpected_error.json b/scripts/slave/recipes/chromium_trybot.expected/swarmed_webkit_tests_unexpected_error.json
index c73b343..c68c031 100644
--- a/scripts/slave/recipes/chromium_trybot.expected/swarmed_webkit_tests_unexpected_error.json
+++ b/scripts/slave/recipes/chromium_trybot.expected/swarmed_webkit_tests_unexpected_error.json
@@ -1057,6 +1057,46 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/linux",
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/linux",
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -1082,7 +1122,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/linux/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -1098,6 +1138,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "blink_web_tests (with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>0 passed, 2 failed (2 total)<br/><br/>Unexpected Failures:<br/>* test1.Test1<br/>* test2.Test2<br/>@@@",
@@ -1963,7 +2008,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/linux/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -1979,6 +2024,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "blink_web_tests (without patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2975,7 +3025,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/linux/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2991,6 +3041,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "blink_web_tests (retry with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/chromium_trybot.expected/swarming_test_failure.json b/scripts/slave/recipes/chromium_trybot.expected/swarming_test_failure.json
index db10963..5d51252 100644
--- a/scripts/slave/recipes/chromium_trybot.expected/swarming_test_failure.json
+++ b/scripts/slave/recipes/chromium_trybot.expected/swarming_test_failure.json
@@ -1054,6 +1054,46 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/linux",
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/linux",
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -1080,7 +1120,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/linux/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -1096,6 +1136,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "gl_tests (with patch)",
     "~followup_annotations": [
       "step returned non-zero exit code: 1",
@@ -1946,7 +1991,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/linux/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -1962,6 +2007,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "gl_tests (without patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2854,7 +2904,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/linux/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2870,6 +2920,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "gl_tests (retry with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/chromium_trybot.expected/swarming_test_failure_no_patch_deapplication.json b/scripts/slave/recipes/chromium_trybot.expected/swarming_test_failure_no_patch_deapplication.json
index 6b05475..25ea2b6 100644
--- a/scripts/slave/recipes/chromium_trybot.expected/swarming_test_failure_no_patch_deapplication.json
+++ b/scripts/slave/recipes/chromium_trybot.expected/swarming_test_failure_no_patch_deapplication.json
@@ -26,7 +26,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/linux/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -42,6 +42,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "gl_tests (retry with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/chromium_trybot.expected/swarming_test_with_priority_expiration_and_timeout.json b/scripts/slave/recipes/chromium_trybot.expected/swarming_test_with_priority_expiration_and_timeout.json
index 2a31180..3bee188 100644
--- a/scripts/slave/recipes/chromium_trybot.expected/swarming_test_with_priority_expiration_and_timeout.json
+++ b/scripts/slave/recipes/chromium_trybot.expected/swarming_test_with_priority_expiration_and_timeout.json
@@ -1057,6 +1057,46 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/linux",
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/linux",
+    "env": {
+      "CHROME_HEADLESS": "1"
+    },
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -1083,7 +1123,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/linux/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -1099,6 +1139,11 @@
     "env": {
       "CHROME_HEADLESS": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "gl_tests (with patch)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/findit/chromium/flake.expected/flakiness_blink_web_tests.json b/scripts/slave/recipes/findit/chromium/flake.expected/flakiness_blink_web_tests.json
index e527eab..d1ef7b2 100644
--- a/scripts/slave/recipes/findit/chromium/flake.expected/flakiness_blink_web_tests.json
+++ b/scripts/slave/recipes/findit/chromium/flake.expected/flakiness_blink_web_tests.json
@@ -1256,6 +1256,49 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "name": "test r0.ensure swarming",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "infra_step": true,
+    "name": "test r0.ensure 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-git_revision:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -1294,6 +1337,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r0.blink_web_tests (r0)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
diff --git a/scripts/slave/recipes/findit/chromium/flake.expected/flakiness_swarming_tests.json b/scripts/slave/recipes/findit/chromium/flake.expected/flakiness_swarming_tests.json
index 0724954..f525955 100644
--- a/scripts/slave/recipes/findit/chromium/flake.expected/flakiness_swarming_tests.json
+++ b/scripts/slave/recipes/findit/chromium/flake.expected/flakiness_swarming_tests.json
@@ -1308,6 +1308,49 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "name": "test r0.ensure swarming",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "infra_step": true,
+    "name": "test r0.ensure 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-git_revision:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -1347,6 +1390,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r0.browser_tests (r0)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
diff --git a/scripts/slave/recipes/findit/chromium/flake.expected/use_build_parameter_for_tests.json b/scripts/slave/recipes/findit/chromium/flake.expected/use_build_parameter_for_tests.json
index 43a174e..c3cb4b8 100644
--- a/scripts/slave/recipes/findit/chromium/flake.expected/use_build_parameter_for_tests.json
+++ b/scripts/slave/recipes/findit/chromium/flake.expected/use_build_parameter_for_tests.json
@@ -1275,6 +1275,49 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "name": "test r0.ensure swarming",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "infra_step": true,
+    "name": "test r0.ensure 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-git_revision:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -1314,6 +1357,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r0.gl_tests (r0)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
diff --git a/scripts/slave/recipes/findit/chromium/test.expected/all_test_failed.json b/scripts/slave/recipes/findit/chromium/test.expected/all_test_failed.json
index bac16a3..a7ad68a 100644
--- a/scripts/slave/recipes/findit/chromium/test.expected/all_test_failed.json
+++ b/scripts/slave/recipes/findit/chromium/test.expected/all_test_failed.json
@@ -1165,6 +1165,43 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]\\win",
+    "name": "test r1.ensure swarming",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]\\win",
+    "infra_step": true,
+    "name": "test r1.ensure 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-git_revision:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -1201,6 +1238,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "test r1.gl_tests (r1)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
diff --git a/scripts/slave/recipes/findit/chromium/test.expected/all_test_passed.json b/scripts/slave/recipes/findit/chromium/test.expected/all_test_passed.json
index 4e9e881..b584d3a 100644
--- a/scripts/slave/recipes/findit/chromium/test.expected/all_test_passed.json
+++ b/scripts/slave/recipes/findit/chromium/test.expected/all_test_passed.json
@@ -1165,6 +1165,43 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]\\win",
+    "name": "test r1.ensure swarming",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]\\win",
+    "infra_step": true,
+    "name": "test r1.ensure 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-git_revision:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -1201,6 +1238,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "test r1.gl_tests (r1)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
diff --git a/scripts/slave/recipes/findit/chromium/test.expected/blink_web_tests.json b/scripts/slave/recipes/findit/chromium/test.expected/blink_web_tests.json
index e4f0aa8..3ad5434 100644
--- a/scripts/slave/recipes/findit/chromium/test.expected/blink_web_tests.json
+++ b/scripts/slave/recipes/findit/chromium/test.expected/blink_web_tests.json
@@ -1272,6 +1272,49 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "name": "test r1.ensure swarming",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "infra_step": true,
+    "name": "test r1.ensure 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-git_revision:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -1310,6 +1353,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r1.blink_web_tests (r1)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -2382,6 +2430,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r0.blink_web_tests (r0)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
diff --git a/scripts/slave/recipes/findit/chromium/test.expected/builder_as_tester.json b/scripts/slave/recipes/findit/chromium/test.expected/builder_as_tester.json
index 998f6a4..b9e3b27 100644
--- a/scripts/slave/recipes/findit/chromium/test.expected/builder_as_tester.json
+++ b/scripts/slave/recipes/findit/chromium/test.expected/builder_as_tester.json
@@ -1133,6 +1133,43 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/linux",
+    "name": "test r1.ensure swarming",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/linux",
+    "infra_step": true,
+    "name": "test r1.ensure 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-git_revision:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -1169,6 +1206,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r1.services_unittests (r1)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
diff --git a/scripts/slave/recipes/findit/chromium/test.expected/findit_consecutive_culprits.json b/scripts/slave/recipes/findit/chromium/test.expected/findit_consecutive_culprits.json
index 9a539e5..0f8d7b0 100644
--- a/scripts/slave/recipes/findit/chromium/test.expected/findit_consecutive_culprits.json
+++ b/scripts/slave/recipes/findit/chromium/test.expected/findit_consecutive_culprits.json
@@ -1274,6 +1274,49 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "name": "test r2.ensure swarming",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "infra_step": true,
+    "name": "test r2.ensure 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-git_revision:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -1313,6 +1356,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r2.gl_tests (r2)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -2349,6 +2397,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r3.gl_tests (r3)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -3385,6 +3438,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r4.gl_tests (r4)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
diff --git a/scripts/slave/recipes/findit/chromium/test.expected/findit_culprit_in_first_sub_range.json b/scripts/slave/recipes/findit/chromium/test.expected/findit_culprit_in_first_sub_range.json
index 7eda426..b786b79 100644
--- a/scripts/slave/recipes/findit/chromium/test.expected/findit_culprit_in_first_sub_range.json
+++ b/scripts/slave/recipes/findit/chromium/test.expected/findit_culprit_in_first_sub_range.json
@@ -1274,6 +1274,49 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "name": "test r5.ensure swarming",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "infra_step": true,
+    "name": "test r5.ensure 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-git_revision:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -1313,6 +1356,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r5.gl_tests (r5)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -2349,6 +2397,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r6.gl_tests (r6)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -3385,6 +3438,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r1.gl_tests (r1)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
diff --git a/scripts/slave/recipes/findit/chromium/test.expected/findit_culprit_in_last_sub_range.json b/scripts/slave/recipes/findit/chromium/test.expected/findit_culprit_in_last_sub_range.json
index c4734c5..8f0dad2 100644
--- a/scripts/slave/recipes/findit/chromium/test.expected/findit_culprit_in_last_sub_range.json
+++ b/scripts/slave/recipes/findit/chromium/test.expected/findit_culprit_in_last_sub_range.json
@@ -1274,6 +1274,49 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "name": "test r2.ensure swarming",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "infra_step": true,
+    "name": "test r2.ensure 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-git_revision:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -1313,6 +1356,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r2.gl_tests (r2)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -2349,6 +2397,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r3.gl_tests (r3)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
diff --git a/scripts/slave/recipes/findit/chromium/test.expected/findit_culprit_in_middle_sub_range.json b/scripts/slave/recipes/findit/chromium/test.expected/findit_culprit_in_middle_sub_range.json
index 8b607c8..d0333ac 100644
--- a/scripts/slave/recipes/findit/chromium/test.expected/findit_culprit_in_middle_sub_range.json
+++ b/scripts/slave/recipes/findit/chromium/test.expected/findit_culprit_in_middle_sub_range.json
@@ -1274,6 +1274,49 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "name": "test r5.ensure swarming",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "infra_step": true,
+    "name": "test r5.ensure 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-git_revision:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -1313,6 +1356,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r5.gl_tests (r5)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -2349,6 +2397,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r6.gl_tests (r6)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -3385,6 +3438,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r2.gl_tests (r2)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -4421,6 +4479,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r3.gl_tests (r3)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
diff --git a/scripts/slave/recipes/findit/chromium/test.expected/findit_steps_multiple_culprits.json b/scripts/slave/recipes/findit/chromium/test.expected/findit_steps_multiple_culprits.json
index 3e80c09..b7ffd2a 100644
--- a/scripts/slave/recipes/findit/chromium/test.expected/findit_steps_multiple_culprits.json
+++ b/scripts/slave/recipes/findit/chromium/test.expected/findit_steps_multiple_culprits.json
@@ -1434,6 +1434,49 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "name": "test r5.ensure swarming",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "infra_step": true,
+    "name": "test r5.ensure 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-git_revision:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -1473,6 +1516,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r5.browser_tests (r5)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -1596,6 +1644,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r5.gl_tests (r5)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -2650,6 +2703,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r6.browser_tests (r6)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -3704,6 +3762,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r2.gl_tests (r2)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -4746,6 +4809,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r3.gl_tests (r3)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
diff --git a/scripts/slave/recipes/findit/chromium/test.expected/findit_tests_multiple_culprits.json b/scripts/slave/recipes/findit/chromium/test.expected/findit_tests_multiple_culprits.json
index d2b8a03..8f5bebb 100644
--- a/scripts/slave/recipes/findit/chromium/test.expected/findit_tests_multiple_culprits.json
+++ b/scripts/slave/recipes/findit/chromium/test.expected/findit_tests_multiple_culprits.json
@@ -1274,6 +1274,49 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "name": "test r4.ensure swarming",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "infra_step": true,
+    "name": "test r4.ensure 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-git_revision:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -1313,6 +1356,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r4.gl_tests (r4)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -2361,6 +2409,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r5.gl_tests (r5)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -3409,6 +3462,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r6.gl_tests (r6)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -4457,6 +4515,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r2.gl_tests (r2)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -5493,6 +5556,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r3.gl_tests (r3)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
diff --git a/scripts/slave/recipes/findit/chromium/test.expected/flaky_tests.json b/scripts/slave/recipes/findit/chromium/test.expected/flaky_tests.json
index 72eb367..d20d357 100644
--- a/scripts/slave/recipes/findit/chromium/test.expected/flaky_tests.json
+++ b/scripts/slave/recipes/findit/chromium/test.expected/flaky_tests.json
@@ -1165,6 +1165,43 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]\\win",
+    "name": "test r1.ensure swarming",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]\\win",
+    "infra_step": true,
+    "name": "test r1.ensure 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-git_revision:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -1201,6 +1238,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "test r1.gl_tests (r1)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -2202,6 +2244,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "test r0.gl_tests (r0)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
diff --git a/scripts/slave/recipes/findit/chromium/test.expected/only_one_test_passed.json b/scripts/slave/recipes/findit/chromium/test.expected/only_one_test_passed.json
index 4e61a15..42fc7ce 100644
--- a/scripts/slave/recipes/findit/chromium/test.expected/only_one_test_passed.json
+++ b/scripts/slave/recipes/findit/chromium/test.expected/only_one_test_passed.json
@@ -1165,6 +1165,43 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]\\win",
+    "name": "test r1.ensure swarming",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]\\win",
+    "infra_step": true,
+    "name": "test r1.ensure 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-git_revision:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -1201,6 +1238,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "test r1.gl_tests (r1)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -2202,6 +2244,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "test r0.gl_tests (r0)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
diff --git a/scripts/slave/recipes/findit/chromium/test.expected/remove_culprits_for_flaky_failures.json b/scripts/slave/recipes/findit/chromium/test.expected/remove_culprits_for_flaky_failures.json
index daee277..ffb9294 100644
--- a/scripts/slave/recipes/findit/chromium/test.expected/remove_culprits_for_flaky_failures.json
+++ b/scripts/slave/recipes/findit/chromium/test.expected/remove_culprits_for_flaky_failures.json
@@ -1274,6 +1274,49 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "name": "test r3.ensure swarming",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "infra_step": true,
+    "name": "test r3.ensure 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-git_revision:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -1313,6 +1356,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r3.gl_tests (r3)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -2349,6 +2397,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r4.gl_tests (r4)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
diff --git a/scripts/slave/recipes/findit/chromium/test.expected/swarming_tests.json b/scripts/slave/recipes/findit/chromium/test.expected/swarming_tests.json
index 334dddd..00d5211 100644
--- a/scripts/slave/recipes/findit/chromium/test.expected/swarming_tests.json
+++ b/scripts/slave/recipes/findit/chromium/test.expected/swarming_tests.json
@@ -1269,6 +1269,49 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "name": "test r1.ensure swarming",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "infra_step": true,
+    "name": "test r1.ensure 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-git_revision:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -1308,6 +1351,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r1.gl_tests (r1)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
diff --git a/scripts/slave/recipes/findit/chromium/test.expected/unaffected_test_skipped_by_analyze.json b/scripts/slave/recipes/findit/chromium/test.expected/unaffected_test_skipped_by_analyze.json
index be45cb4..3522e20 100644
--- a/scripts/slave/recipes/findit/chromium/test.expected/unaffected_test_skipped_by_analyze.json
+++ b/scripts/slave/recipes/findit/chromium/test.expected/unaffected_test_skipped_by_analyze.json
@@ -1272,6 +1272,43 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]\\win",
+    "name": "test r1.ensure swarming",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]\\win",
+    "infra_step": true,
+    "name": "test r1.ensure 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-git_revision:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -1308,6 +1345,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "test r1.affected_tests (r1)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
diff --git a/scripts/slave/recipes/findit/chromium/test.expected/use_abbreviated_revision_in_step_name.json b/scripts/slave/recipes/findit/chromium/test.expected/use_abbreviated_revision_in_step_name.json
index b99f7cf..b618197 100644
--- a/scripts/slave/recipes/findit/chromium/test.expected/use_abbreviated_revision_in_step_name.json
+++ b/scripts/slave/recipes/findit/chromium/test.expected/use_abbreviated_revision_in_step_name.json
@@ -1269,6 +1269,49 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "name": "test gfedcba.ensure swarming",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "infra_step": true,
+    "name": "test gfedcba.ensure 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-git_revision:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -1308,6 +1351,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test gfedcba.gl_tests (gfedcba)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
diff --git a/scripts/slave/recipes/findit/chromium/test.expected/use_analyze_set_to_False_for_non_linear_try_job.json b/scripts/slave/recipes/findit/chromium/test.expected/use_analyze_set_to_False_for_non_linear_try_job.json
index bced409..85ccec7 100644
--- a/scripts/slave/recipes/findit/chromium/test.expected/use_analyze_set_to_False_for_non_linear_try_job.json
+++ b/scripts/slave/recipes/findit/chromium/test.expected/use_analyze_set_to_False_for_non_linear_try_job.json
@@ -1274,6 +1274,49 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "name": "test r2.ensure swarming",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "infra_step": true,
+    "name": "test r2.ensure 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-git_revision:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -1313,6 +1356,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r2.gl_tests (r2)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -2349,6 +2397,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r3.gl_tests (r3)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
diff --git a/scripts/slave/recipes/findit/chromium/test.expected/use_build_parameter_for_tests.json b/scripts/slave/recipes/findit/chromium/test.expected/use_build_parameter_for_tests.json
index 5eb5882..3c8ce09 100644
--- a/scripts/slave/recipes/findit/chromium/test.expected/use_build_parameter_for_tests.json
+++ b/scripts/slave/recipes/findit/chromium/test.expected/use_build_parameter_for_tests.json
@@ -1296,6 +1296,49 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "name": "test r2.ensure swarming",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "infra_step": true,
+    "name": "test r2.ensure 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-git_revision:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -1335,6 +1378,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r2.gl_tests (r2)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -2375,6 +2423,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r3.gl_tests (r3)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -3415,6 +3468,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r4.gl_tests (r4)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
diff --git a/scripts/slave/recipes/findit/chromium/test.expected/use_build_parameter_for_tests_non_json_buildbucket.json b/scripts/slave/recipes/findit/chromium/test.expected/use_build_parameter_for_tests_non_json_buildbucket.json
index 1718735..20d4b17 100644
--- a/scripts/slave/recipes/findit/chromium/test.expected/use_build_parameter_for_tests_non_json_buildbucket.json
+++ b/scripts/slave/recipes/findit/chromium/test.expected/use_build_parameter_for_tests_non_json_buildbucket.json
@@ -1296,6 +1296,49 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "name": "test r2.ensure swarming",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/mac",
+    "env": {
+      "FORCE_MAC_TOOLCHAIN": "1"
+    },
+    "infra_step": true,
+    "name": "test r2.ensure 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-git_revision:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -1335,6 +1378,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r2.gl_tests (r2)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -2375,6 +2423,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r3.gl_tests (r3)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -3415,6 +3468,11 @@
     "env": {
       "FORCE_MAC_TOOLCHAIN": "1"
     },
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test r4.gl_tests (r4)",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
diff --git a/scripts/slave/recipes/ios/try.expected/basic.json b/scripts/slave/recipes/ios/try.expected/basic.json
index d8e99bc..aef0b8b 100644
--- a/scripts/slave/recipes/ios/try.expected/basic.json
+++ b/scripts/slave/recipes/ios/try.expected/basic.json
@@ -818,6 +818,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/linux/src",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/linux/src",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -851,6 +885,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake tests (fake device iOS 8.1)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/ios/try.expected/gn.json b/scripts/slave/recipes/ios/try.expected/gn.json
index ca48cd8..fcdfbed 100644
--- a/scripts/slave/recipes/ios/try.expected/gn.json
+++ b/scripts/slave/recipes/ios/try.expected/gn.json
@@ -1087,6 +1087,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/linux/src",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/linux/src",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -1120,6 +1154,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake tests (fake device iOS 8.1)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/ios/try.expected/parent.json b/scripts/slave/recipes/ios/try.expected/parent.json
index 094a2d6..79ba791 100644
--- a/scripts/slave/recipes/ios/try.expected/parent.json
+++ b/scripts/slave/recipes/ios/try.expected/parent.json
@@ -833,6 +833,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/linux/src",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/linux/src",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -866,6 +900,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake tests (fake device iOS 8.1)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/ios/unified_builder_tester.expected/basic.json b/scripts/slave/recipes/ios/unified_builder_tester.expected/basic.json
index b0f80e6..cc4cc6b 100644
--- a/scripts/slave/recipes/ios/unified_builder_tester.expected/basic.json
+++ b/scripts/slave/recipes/ios/unified_builder_tester.expected/basic.json
@@ -1134,6 +1134,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/ios/src",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/ios/src",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -1167,6 +1201,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake tests 1 (fake device iOS 8.0)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -1238,6 +1277,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake tests 2 (fake device iOS 7.1)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -1309,6 +1353,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake_eg_test_host (fake device 3 iOS 9.3)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/ios/unified_builder_tester.expected/basic_experimental.json b/scripts/slave/recipes/ios/unified_builder_tester.expected/basic_experimental.json
index ae99e7d..0774a63 100644
--- a/scripts/slave/recipes/ios/unified_builder_tester.expected/basic_experimental.json
+++ b/scripts/slave/recipes/ios/unified_builder_tester.expected/basic_experimental.json
@@ -1065,6 +1065,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder/src",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} latest",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder/src",
+    "infra_step": true,
+    "name": "ensure swarming.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-latest----------\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -1098,6 +1132,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake tests 1 (fake device iOS 8.0)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -1169,6 +1208,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake tests 2 (fake device iOS 7.1)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -1240,6 +1284,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake_eg_test_host (fake device 3 iOS 9.3)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/swarming/staging.expected/one_fails.json b/scripts/slave/recipes/swarming/staging.expected/one_fails.json
index 08eddfa..426b405 100644
--- a/scripts/slave/recipes/swarming/staging.expected/one_fails.json
+++ b/scripts/slave/recipes/swarming/staging.expected/one_fails.json
@@ -825,6 +825,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/Linux_Swarm",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/Linux_Swarm",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -862,6 +896,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "browser_tests on Ubuntu",
     "~followup_annotations": [
       "step returned non-zero exit code: 1",
diff --git a/scripts/slave/recipes/swarming/staging.expected/windows.json b/scripts/slave/recipes/swarming/staging.expected/windows.json
index bfc1e59..9a96974 100644
--- a/scripts/slave/recipes/swarming/staging.expected/windows.json
+++ b/scripts/slave/recipes/swarming/staging.expected/windows.json
@@ -839,6 +839,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]\\Windows_Swarm",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]\\Windows_Swarm",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -876,6 +910,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "browser_tests on Windows-10",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-10'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
diff --git a/scripts/slave/recipes/v8.expected/full_client_v8_V8_Foobar_fuzz_archive.json b/scripts/slave/recipes/v8.expected/full_client_v8_V8_Foobar_fuzz_archive.json
index 0b299ad..bfd7a42 100644
--- a/scripts/slave/recipes/v8.expected/full_client_v8_V8_Foobar_fuzz_archive.json
+++ b/scripts/slave/recipes/v8.expected/full_client_v8_V8_Foobar_fuzz_archive.json
@@ -99,6 +99,38 @@
     "name": "trigger tests.[trigger] Fuzz"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -132,6 +164,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "Fuzz",
     "~followup_annotations": [
       "step returned non-zero exit code: 1",
diff --git a/scripts/slave/recipes/v8.expected/full_client_v8_V8_Foobar_gcmole.json b/scripts/slave/recipes/v8.expected/full_client_v8_V8_Foobar_gcmole.json
index 7ebc654..b368f97 100644
--- a/scripts/slave/recipes/v8.expected/full_client_v8_V8_Foobar_gcmole.json
+++ b/scripts/slave/recipes/v8.expected/full_client_v8_V8_Foobar_gcmole.json
@@ -368,6 +368,38 @@
     "name": "trigger tests.[trigger] GCMole arm64"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -401,6 +433,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "GCMole ia32",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -471,6 +508,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "GCMole x64",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -541,6 +583,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "GCMole arm",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -611,6 +658,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "GCMole arm64",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/v8.expected/full_client_v8_V8_Foobar_generic_swarming_task.json b/scripts/slave/recipes/v8.expected/full_client_v8_V8_Foobar_generic_swarming_task.json
index 5f009ca..e0d3f77 100644
--- a/scripts/slave/recipes/v8.expected/full_client_v8_V8_Foobar_generic_swarming_task.json
+++ b/scripts/slave/recipes/v8.expected/full_client_v8_V8_Foobar_generic_swarming_task.json
@@ -99,6 +99,38 @@
     "name": "trigger tests.[trigger] Fuzz"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -132,6 +164,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "Fuzz",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/v8.expected/full_client_v8_V8_Foobar_initializers.json b/scripts/slave/recipes/v8.expected/full_client_v8_V8_Foobar_initializers.json
index 6ba9214..c549797 100644
--- a/scripts/slave/recipes/v8.expected/full_client_v8_V8_Foobar_initializers.json
+++ b/scripts/slave/recipes/v8.expected/full_client_v8_V8_Foobar_initializers.json
@@ -98,6 +98,38 @@
     "name": "trigger tests.[trigger] Static-Initializers"
   },
   {
+    "cmd": [],
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -131,6 +163,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "Static-Initializers",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/v8/flako.expected/full_bisect.json b/scripts/slave/recipes/v8/flako.expected/full_bisect.json
index 64f3ef8..176aac5 100644
--- a/scripts/slave/recipes/v8/flako.expected/full_bisect.json
+++ b/scripts/slave/recipes/v8/flako.expected/full_bisect.json
@@ -400,6 +400,41 @@
     ]
   },
   {
+    "cmd": [],
+    "name": "calibration attempt 1.check mjsunit/foobar at #1.ensure swarming",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "calibration attempt 1.check mjsunit/foobar at #1.ensure swarming.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-git_revision:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -433,6 +468,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "calibration attempt 1.check mjsunit/foobar at #1.check mjsunit/foobar at #1 - shard 0",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@2@@@",
@@ -504,6 +544,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "calibration attempt 1.check mjsunit/foobar at #1.check mjsunit/foobar at #1 - shard 1",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@2@@@",
@@ -1022,6 +1067,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "calibration attempt 2.check mjsunit/foobar at #1.check mjsunit/foobar at #1 - shard 0",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@2@@@",
@@ -1095,6 +1145,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "calibration attempt 2.check mjsunit/foobar at #1.check mjsunit/foobar at #1 - shard 1",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@2@@@",
@@ -1168,6 +1223,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "calibration attempt 2.check mjsunit/foobar at #1.check mjsunit/foobar at #1 - shard 2",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@2@@@",
@@ -1727,6 +1787,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "check mjsunit/foobar at #2.check mjsunit/foobar at #2 - shard 0",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -1800,6 +1865,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "check mjsunit/foobar at #2.check mjsunit/foobar at #2 - shard 1",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -1871,6 +1941,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "check mjsunit/foobar at #2.check mjsunit/foobar at #2 - shard 2",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -1942,6 +2017,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "check mjsunit/foobar at #2.check mjsunit/foobar at #2 - shard 3",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -2544,6 +2624,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "check mjsunit/foobar at #5.check mjsunit/foobar at #5 - shard 0",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -2615,6 +2700,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "check mjsunit/foobar at #5.check mjsunit/foobar at #5 - shard 1",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -2686,6 +2776,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "check mjsunit/foobar at #5.check mjsunit/foobar at #5 - shard 2",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -2757,6 +2852,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "check mjsunit/foobar at #5.check mjsunit/foobar at #5 - shard 3",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -3318,6 +3418,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "check mjsunit/foobar at #3.check mjsunit/foobar at #3 - shard 0",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -3391,6 +3496,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "check mjsunit/foobar at #3.check mjsunit/foobar at #3 - shard 1",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -3462,6 +3572,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "check mjsunit/foobar at #3.check mjsunit/foobar at #3 - shard 2",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
@@ -3533,6 +3648,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "check mjsunit/foobar at #3.check mjsunit/foobar at #3 - shard 3",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
diff --git a/scripts/slave/recipes/webrtc/chromium_ios.expected/basic_goma_build.json b/scripts/slave/recipes/webrtc/chromium_ios.expected/basic_goma_build.json
index 53597dd..c07b72c 100644
--- a/scripts/slave/recipes/webrtc/chromium_ios.expected/basic_goma_build.json
+++ b/scripts/slave/recipes/webrtc/chromium_ios.expected/basic_goma_build.json
@@ -943,6 +943,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/ios/src",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/ios/src",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -976,6 +1010,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake test (iPhone X iOS 8.0) on iOS-8.0",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'iOS-8.0'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/webrtc/ios.expected/basic.json b/scripts/slave/recipes/webrtc/ios.expected/basic.json
index 54dc970..5af78c9 100644
--- a/scripts/slave/recipes/webrtc/ios.expected/basic.json
+++ b/scripts/slave/recipes/webrtc/ios.expected/basic.json
@@ -780,6 +780,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/ios_debug/src",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/ios_debug/src",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -813,6 +847,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake tests 1 (fake device iOS 8.0)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -884,6 +923,11 @@
       "--task-summary-json",
       "/path/to/tmp/json"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "fake tests 2 (fake device iOS 7.1)",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/webrtc/more_configs.expected/luci_webrtc_ci_linux__more_configs_.json b/scripts/slave/recipes/webrtc/more_configs.expected/luci_webrtc_ci_linux__more_configs_.json
index 8f1a361..cc15879 100644
--- a/scripts/slave/recipes/webrtc/more_configs.expected/luci_webrtc_ci_linux__more_configs_.json
+++ b/scripts/slave/recipes/webrtc/more_configs.expected/luci_webrtc_ci_linux__more_configs_.json
@@ -620,6 +620,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -643,7 +677,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -656,6 +690,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "bwe_simulations_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -1657,7 +1696,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -1670,6 +1709,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/more_configs.expected/luci_webrtc_ci_win__more_configs_.json b/scripts/slave/recipes/webrtc/more_configs.expected/luci_webrtc_ci_win__more_configs_.json
index a28e713..ebe659a 100644
--- a/scripts/slave/recipes/webrtc/more_configs.expected/luci_webrtc_ci_win__more_configs_.json
+++ b/scripts/slave/recipes/webrtc/more_configs.expected/luci_webrtc_ci_win__more_configs_.json
@@ -620,6 +620,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]\\builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]\\builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -643,7 +677,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -656,6 +690,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "bwe_simulations_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -1657,7 +1696,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -1670,6 +1709,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/more_configs.expected/luci_webrtc_try_linux_more_configs.json b/scripts/slave/recipes/webrtc/more_configs.expected/luci_webrtc_try_linux_more_configs.json
index 645c182..e16147d 100644
--- a/scripts/slave/recipes/webrtc/more_configs.expected/luci_webrtc_try_linux_more_configs.json
+++ b/scripts/slave/recipes/webrtc/more_configs.expected/luci_webrtc_try_linux_more_configs.json
@@ -666,6 +666,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -689,7 +723,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -702,6 +736,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "bwe_simulations_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -1705,7 +1744,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -1718,6 +1757,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/more_configs.expected/luci_webrtc_try_win_x86_more_configs.json b/scripts/slave/recipes/webrtc/more_configs.expected/luci_webrtc_try_win_x86_more_configs.json
index d947343..b71d84f 100644
--- a/scripts/slave/recipes/webrtc/more_configs.expected/luci_webrtc_try_win_x86_more_configs.json
+++ b/scripts/slave/recipes/webrtc/more_configs.expected/luci_webrtc_try_win_x86_more_configs.json
@@ -666,6 +666,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]\\builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]\\builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -689,7 +723,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -702,6 +736,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "bwe_simulations_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -1705,7 +1744,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -1718,6 +1757,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_branches_linux__beta_.json b/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_branches_linux__beta_.json
index b2fb0cd..aaaaca5 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_branches_linux__beta_.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_branches_linux__beta_.json
@@ -2539,6 +2539,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/Linux__beta_",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/Linux__beta_",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2562,7 +2596,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2575,6 +2609,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2716,7 +2755,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2729,6 +2768,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2870,7 +2914,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2883,6 +2927,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3024,7 +3073,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3037,6 +3086,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3178,7 +3232,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3191,6 +3245,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3357,7 +3416,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3370,6 +3429,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3636,7 +3700,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3649,6 +3713,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3865,7 +3934,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3878,6 +3947,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4019,7 +4093,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4032,6 +4106,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4173,7 +4252,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4186,6 +4265,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4327,7 +4411,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4340,6 +4424,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4606,7 +4695,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4619,6 +4708,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4760,7 +4854,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4773,6 +4867,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4914,7 +5013,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4927,6 +5026,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5068,7 +5172,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5081,6 +5185,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5222,7 +5331,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5235,6 +5344,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5451,7 +5565,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5464,6 +5578,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_branches_linux__stable_.json b/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_branches_linux__stable_.json
index d66ef5c..0db73e5 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_branches_linux__stable_.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_branches_linux__stable_.json
@@ -2539,6 +2539,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/Linux__stable_",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/Linux__stable_",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2562,7 +2596,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2575,6 +2609,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2716,7 +2755,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2729,6 +2768,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2870,7 +2914,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2883,6 +2927,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3024,7 +3073,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3037,6 +3086,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3178,7 +3232,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3191,6 +3245,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3357,7 +3416,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3370,6 +3429,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3636,7 +3700,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3649,6 +3713,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3865,7 +3934,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3878,6 +3947,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4019,7 +4093,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4032,6 +4106,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4173,7 +4252,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4186,6 +4265,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4327,7 +4411,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4340,6 +4424,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4606,7 +4695,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4619,6 +4708,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4760,7 +4854,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4773,6 +4867,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4914,7 +5013,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4927,6 +5026,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5068,7 +5172,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5081,6 +5185,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5222,7 +5331,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5235,6 +5344,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5451,7 +5565,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5464,6 +5578,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_branches_mac__beta_.json b/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_branches_mac__beta_.json
index 25a2a13..29120ea 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_branches_mac__beta_.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_branches_mac__beta_.json
@@ -2604,6 +2604,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/Mac__beta_",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/Mac__beta_",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2627,7 +2661,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2640,6 +2674,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2781,7 +2820,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2794,6 +2833,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2935,7 +2979,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2948,6 +2992,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3089,7 +3138,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3102,6 +3151,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3243,7 +3297,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3256,6 +3310,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3422,7 +3481,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3435,6 +3494,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3701,7 +3765,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3714,6 +3778,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3930,7 +3999,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3943,6 +4012,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4084,7 +4158,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4097,6 +4171,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4238,7 +4317,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4251,6 +4330,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4392,7 +4476,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4405,6 +4489,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4671,7 +4760,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4684,6 +4773,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4825,7 +4919,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4838,6 +4932,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4979,7 +5078,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4992,6 +5091,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5133,7 +5237,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5146,6 +5250,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5287,7 +5396,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5300,6 +5409,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5516,7 +5630,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__beta_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5529,6 +5643,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_branches_mac__stable_.json b/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_branches_mac__stable_.json
index 573cab1..1301eef 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_branches_mac__stable_.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_branches_mac__stable_.json
@@ -2604,6 +2604,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/Mac__stable_",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/Mac__stable_",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2627,7 +2661,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2640,6 +2674,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2781,7 +2820,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2794,6 +2833,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2935,7 +2979,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2948,6 +2992,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3089,7 +3138,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3102,6 +3151,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3243,7 +3297,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3256,6 +3310,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3422,7 +3481,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3435,6 +3494,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3701,7 +3765,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3714,6 +3778,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3930,7 +3999,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3943,6 +4012,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4084,7 +4158,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4097,6 +4171,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4238,7 +4317,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4251,6 +4330,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4392,7 +4476,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4405,6 +4489,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4671,7 +4760,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4684,6 +4773,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4825,7 +4919,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4838,6 +4932,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4979,7 +5078,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4992,6 +5091,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5133,7 +5237,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5146,6 +5250,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5287,7 +5396,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5300,6 +5409,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5516,7 +5630,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac__stable_/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5529,6 +5643,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_branches_win__beta_.json b/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_branches_win__beta_.json
index 823e173..b187dd9 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_branches_win__beta_.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_branches_win__beta_.json
@@ -2553,6 +2553,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]\\Win__beta_",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]\\Win__beta_",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2576,7 +2610,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__beta_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2589,6 +2623,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2730,7 +2769,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__beta_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2743,6 +2782,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2884,7 +2928,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__beta_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2897,6 +2941,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3038,7 +3087,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__beta_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3051,6 +3100,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3192,7 +3246,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__beta_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3205,6 +3259,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3371,7 +3430,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__beta_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3384,6 +3443,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3650,7 +3714,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__beta_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3663,6 +3727,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3879,7 +3948,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__beta_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3892,6 +3961,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4033,7 +4107,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__beta_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4046,6 +4120,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4187,7 +4266,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__beta_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4200,6 +4279,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4341,7 +4425,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__beta_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4354,6 +4438,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4620,7 +4709,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__beta_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4633,6 +4722,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4774,7 +4868,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__beta_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4787,6 +4881,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4928,7 +5027,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__beta_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4941,6 +5040,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5082,7 +5186,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__beta_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5095,6 +5199,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5236,7 +5345,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__beta_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5249,6 +5358,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5465,7 +5579,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__beta_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5478,6 +5592,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_branches_win__stable_.json b/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_branches_win__stable_.json
index 7803b72..ced7f70 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_branches_win__stable_.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_branches_win__stable_.json
@@ -2553,6 +2553,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]\\Win__stable_",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]\\Win__stable_",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2576,7 +2610,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__stable_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2589,6 +2623,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2730,7 +2769,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__stable_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2743,6 +2782,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2884,7 +2928,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__stable_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2897,6 +2941,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3038,7 +3087,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__stable_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3051,6 +3100,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3192,7 +3246,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__stable_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3205,6 +3259,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3371,7 +3430,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__stable_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3384,6 +3443,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3650,7 +3714,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__stable_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3663,6 +3727,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3879,7 +3948,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__stable_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3892,6 +3961,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4033,7 +4107,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__stable_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4046,6 +4120,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4187,7 +4266,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__stable_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4200,6 +4279,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4341,7 +4425,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__stable_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4354,6 +4438,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4620,7 +4709,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__stable_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4633,6 +4722,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4774,7 +4868,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__stable_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4787,6 +4881,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4928,7 +5027,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__stable_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4941,6 +5040,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5082,7 +5186,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__stable_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5095,6 +5199,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5236,7 +5345,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__stable_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5249,6 +5358,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5465,7 +5579,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win__stable_\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5478,6 +5592,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_perf_linux_trusty.json b/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_perf_linux_trusty.json
index 8ca9827..a9791ec 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_perf_linux_trusty.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_perf_linux_trusty.json
@@ -897,6 +897,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/Linux_Trusty",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/Linux_Trusty",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -920,7 +954,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux_Trusty/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -933,6 +967,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "isac_fix_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Bot id: 'build17-m3'<br/>Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -1113,7 +1152,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux_Trusty/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -1126,6 +1165,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_perf_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Bot id: 'build17-m3'<br/>Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -1306,7 +1350,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Linux_Trusty/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -1319,6 +1363,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_perf_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Bot id: 'build17-m3'<br/>Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_perf_mac_10_11.json b/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_perf_mac_10_11.json
index 6b11ed2..1dc43dd 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_perf_mac_10_11.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_perf_mac_10_11.json
@@ -962,6 +962,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]/Mac_10_11",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]/Mac_10_11",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -985,7 +1019,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac_10_11/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -998,6 +1032,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "isac_fix_test on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Bot id: 'build16-m3'<br/>Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -1178,7 +1217,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac_10_11/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -1191,6 +1230,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_perf_test on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Bot id: 'build16-m3'<br/>Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -1371,7 +1415,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]/Mac_10_11/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -1384,6 +1428,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_perf_tests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Bot id: 'build16-m3'<br/>Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_perf_win7.json b/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_perf_win7.json
index 8ef91de..3ceb7a6 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_perf_win7.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/client_webrtc_perf_win7.json
@@ -911,6 +911,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[BUILDER_CACHE]\\Win7",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[BUILDER_CACHE]\\Win7",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -934,7 +968,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win7\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -947,6 +981,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "isac_fix_test on Windows",
     "~followup_annotations": [
       "@@@STEP_TEXT@Bot id: 'build18-m3'<br/>Run on OS: 'Windows'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -1127,7 +1166,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win7\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -1140,6 +1179,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_perf_test on Windows",
     "~followup_annotations": [
       "@@@STEP_TEXT@Bot id: 'build18-m3'<br/>Run on OS: 'Windows'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -1320,7 +1364,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[BUILDER_CACHE]\\Win7\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -1333,6 +1377,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "webrtc_perf_tests on Windows",
     "~followup_annotations": [
       "@@@STEP_TEXT@Bot id: 'build18-m3'<br/>Run on OS: 'Windows'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_android32__m_nexus5x_.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_android32__m_nexus5x_.json
index 732cd3f..bb45bac 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_android32__m_nexus5x_.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_android32__m_nexus5x_.json
@@ -2755,6 +2755,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -2779,7 +2813,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2792,6 +2826,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "AppRTCMobile_test_apk on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2897,7 +2936,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2910,6 +2949,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "android_instrumentation_test_apk on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3015,7 +3059,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3028,6 +3072,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3133,7 +3182,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3146,6 +3195,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3251,7 +3305,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3264,6 +3318,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3369,7 +3428,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3382,6 +3441,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"150000\"}, {\"task_id\": \"150100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3511,7 +3575,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3524,6 +3588,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"170000\"}, {\"task_id\": \"170100\"}, {\"task_id\": \"170200\"}, {\"task_id\": \"170300\"}, {\"task_id\": \"170400\"}, {\"task_id\": \"170500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3749,7 +3818,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3762,6 +3831,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1130000\"}, {\"task_id\": \"1130100\"}, {\"task_id\": \"1130200\"}, {\"task_id\": \"1130300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3939,7 +4013,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3952,6 +4026,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4057,7 +4136,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4070,6 +4149,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}, {\"task_id\": \"1180100\"}, {\"task_id\": \"1180200\"}, {\"task_id\": \"1180300\"}, {\"task_id\": \"1180400\"}, {\"task_id\": \"1180500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -4295,7 +4379,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4308,6 +4392,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1240000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4413,7 +4502,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4426,6 +4515,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4531,7 +4625,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4544,6 +4638,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4649,7 +4748,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4662,6 +4761,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}, {\"task_id\": \"1270100\"}, {\"task_id\": \"1270200\"}, {\"task_id\": \"1270300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -4839,7 +4943,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4852,6 +4956,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1310000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_android32__m_nexus5x__dbg_.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_android32__m_nexus5x__dbg_.json
index 236ec2b..2a48caa 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_android32__m_nexus5x__dbg_.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_android32__m_nexus5x__dbg_.json
@@ -2454,6 +2454,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -2478,7 +2512,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2491,6 +2525,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "AppRTCMobile_test_apk on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2596,7 +2635,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2609,6 +2648,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "android_instrumentation_test_apk on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2714,7 +2758,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2727,6 +2771,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2832,7 +2881,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2845,6 +2894,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2950,7 +3004,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2963,6 +3017,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3068,7 +3127,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3081,6 +3140,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"150000\"}, {\"task_id\": \"150100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3210,7 +3274,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3223,6 +3287,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"170000\"}, {\"task_id\": \"170100\"}, {\"task_id\": \"170200\"}, {\"task_id\": \"170300\"}, {\"task_id\": \"170400\"}, {\"task_id\": \"170500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3448,7 +3517,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3461,6 +3530,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1130000\"}, {\"task_id\": \"1130100\"}, {\"task_id\": \"1130200\"}, {\"task_id\": \"1130300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3638,7 +3712,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3651,6 +3725,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3756,7 +3835,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3769,6 +3848,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}, {\"task_id\": \"1180100\"}, {\"task_id\": \"1180200\"}, {\"task_id\": \"1180300\"}, {\"task_id\": \"1180400\"}, {\"task_id\": \"1180500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3994,7 +4078,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4007,6 +4091,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1240000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4112,7 +4201,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4125,6 +4214,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4230,7 +4324,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4243,6 +4337,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4348,7 +4447,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4361,6 +4460,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}, {\"task_id\": \"1270100\"}, {\"task_id\": \"1270200\"}, {\"task_id\": \"1270300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -4538,7 +4642,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4551,6 +4655,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1310000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_android32__m_nexus5x__failing_archive.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_android32__m_nexus5x__failing_archive.json
index 2919f34..0a1b1cd 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_android32__m_nexus5x__failing_archive.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_android32__m_nexus5x__failing_archive.json
@@ -2738,6 +2738,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -2762,7 +2796,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2775,6 +2809,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "AppRTCMobile_test_apk on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2880,7 +2919,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2893,6 +2932,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "android_instrumentation_test_apk on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2998,7 +3042,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3011,6 +3055,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3116,7 +3165,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3129,6 +3178,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3234,7 +3288,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3247,6 +3301,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3352,7 +3411,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3365,6 +3424,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"150000\"}, {\"task_id\": \"150100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3494,7 +3558,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3507,6 +3571,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"170000\"}, {\"task_id\": \"170100\"}, {\"task_id\": \"170200\"}, {\"task_id\": \"170300\"}, {\"task_id\": \"170400\"}, {\"task_id\": \"170500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3732,7 +3801,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3745,6 +3814,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1130000\"}, {\"task_id\": \"1130100\"}, {\"task_id\": \"1130200\"}, {\"task_id\": \"1130300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3922,7 +3996,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3935,6 +4009,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4040,7 +4119,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4053,6 +4132,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}, {\"task_id\": \"1180100\"}, {\"task_id\": \"1180200\"}, {\"task_id\": \"1180300\"}, {\"task_id\": \"1180400\"}, {\"task_id\": \"1180500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -4278,7 +4362,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4291,6 +4375,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1240000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4396,7 +4485,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4409,6 +4498,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4514,7 +4608,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4527,6 +4621,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4632,7 +4731,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4645,6 +4744,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}, {\"task_id\": \"1270100\"}, {\"task_id\": \"1270200\"}, {\"task_id\": \"1270300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -4822,7 +4926,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4835,6 +4939,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1310000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_android64__m_nexus5x_.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_android64__m_nexus5x_.json
index 43d1d39..08c0dbf 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_android64__m_nexus5x_.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_android64__m_nexus5x_.json
@@ -2454,6 +2454,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -2478,7 +2512,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2491,6 +2525,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "AppRTCMobile_test_apk on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2596,7 +2635,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2609,6 +2648,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "android_instrumentation_test_apk on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2714,7 +2758,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2727,6 +2771,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2832,7 +2881,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2845,6 +2894,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2950,7 +3004,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2963,6 +3017,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3068,7 +3127,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3081,6 +3140,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"150000\"}, {\"task_id\": \"150100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3210,7 +3274,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3223,6 +3287,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"170000\"}, {\"task_id\": \"170100\"}, {\"task_id\": \"170200\"}, {\"task_id\": \"170300\"}, {\"task_id\": \"170400\"}, {\"task_id\": \"170500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3448,7 +3517,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3461,6 +3530,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1130000\"}, {\"task_id\": \"1130100\"}, {\"task_id\": \"1130200\"}, {\"task_id\": \"1130300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3638,7 +3712,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3651,6 +3725,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3756,7 +3835,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3769,6 +3848,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}, {\"task_id\": \"1180100\"}, {\"task_id\": \"1180200\"}, {\"task_id\": \"1180300\"}, {\"task_id\": \"1180400\"}, {\"task_id\": \"1180500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3994,7 +4078,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4007,6 +4091,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1240000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4112,7 +4201,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4125,6 +4214,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4230,7 +4324,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4243,6 +4337,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4348,7 +4447,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4361,6 +4460,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}, {\"task_id\": \"1270100\"}, {\"task_id\": \"1270200\"}, {\"task_id\": \"1270300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -4538,7 +4642,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4551,6 +4655,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1310000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_android64__m_nexus5x__dbg_.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_android64__m_nexus5x__dbg_.json
index 8244e35..e8a3154 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_android64__m_nexus5x__dbg_.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_android64__m_nexus5x__dbg_.json
@@ -2454,6 +2454,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -2478,7 +2512,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2491,6 +2525,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "AppRTCMobile_test_apk on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2596,7 +2635,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2609,6 +2648,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "android_instrumentation_test_apk on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2714,7 +2758,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2727,6 +2771,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2832,7 +2881,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2845,6 +2894,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2950,7 +3004,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2963,6 +3017,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3068,7 +3127,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3081,6 +3140,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"150000\"}, {\"task_id\": \"150100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3210,7 +3274,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3223,6 +3287,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"170000\"}, {\"task_id\": \"170100\"}, {\"task_id\": \"170200\"}, {\"task_id\": \"170300\"}, {\"task_id\": \"170400\"}, {\"task_id\": \"170500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3448,7 +3517,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3461,6 +3530,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1130000\"}, {\"task_id\": \"1130100\"}, {\"task_id\": \"1130200\"}, {\"task_id\": \"1130300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3638,7 +3712,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3651,6 +3725,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3756,7 +3835,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3769,6 +3848,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}, {\"task_id\": \"1180100\"}, {\"task_id\": \"1180200\"}, {\"task_id\": \"1180300\"}, {\"task_id\": \"1180400\"}, {\"task_id\": \"1180500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3994,7 +4078,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4007,6 +4091,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1240000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4112,7 +4201,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4125,6 +4214,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4230,7 +4324,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4243,6 +4337,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4348,7 +4447,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4361,6 +4460,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}, {\"task_id\": \"1270100\"}, {\"task_id\": \"1270200\"}, {\"task_id\": \"1270300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -4538,7 +4642,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4551,6 +4655,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1310000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux32_debug.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux32_debug.json
index 650e5fa..c924ca7 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux32_debug.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux32_debug.json
@@ -2559,6 +2559,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2582,7 +2616,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2595,6 +2629,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2736,7 +2775,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2749,6 +2788,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2890,7 +2934,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2903,6 +2947,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3044,7 +3093,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3057,6 +3106,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3198,7 +3252,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3211,6 +3265,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3377,7 +3436,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3390,6 +3449,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3656,7 +3720,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3669,6 +3733,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3885,7 +3954,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3898,6 +3967,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4039,7 +4113,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4052,6 +4126,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4193,7 +4272,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4206,6 +4285,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4347,7 +4431,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4360,6 +4444,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4626,7 +4715,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4639,6 +4728,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4780,7 +4874,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4793,6 +4887,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4934,7 +5033,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4947,6 +5046,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5088,7 +5192,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5101,6 +5205,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5242,7 +5351,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5255,6 +5364,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5471,7 +5585,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5484,6 +5598,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux64_debug.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux64_debug.json
index c8d303c..f28f897 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux64_debug.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux64_debug.json
@@ -2559,6 +2559,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2582,7 +2616,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2595,6 +2629,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2736,7 +2775,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2749,6 +2788,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2890,7 +2934,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2903,6 +2947,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3044,7 +3093,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3057,6 +3106,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3198,7 +3252,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3211,6 +3265,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3377,7 +3436,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3390,6 +3449,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3656,7 +3720,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3669,6 +3733,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3885,7 +3954,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3898,6 +3967,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4039,7 +4113,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4052,6 +4126,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4193,7 +4272,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4206,6 +4285,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4347,7 +4431,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4360,6 +4444,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4626,7 +4715,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4639,6 +4728,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4780,7 +4874,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4793,6 +4887,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4934,7 +5033,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4947,6 +5046,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5088,7 +5192,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5101,6 +5205,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5242,7 +5351,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5255,6 +5364,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5471,7 +5585,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5484,6 +5598,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux64_debug_failing_test.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux64_debug_failing_test.json
index 8de6246..015daef 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux64_debug_failing_test.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux64_debug_failing_test.json
@@ -2559,6 +2559,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2582,7 +2616,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2595,6 +2629,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2736,7 +2775,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2749,6 +2788,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2890,7 +2934,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2903,6 +2947,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3044,7 +3093,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3057,6 +3106,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3198,7 +3252,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3211,6 +3265,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3377,7 +3436,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3390,6 +3449,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3656,7 +3720,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3669,6 +3733,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3885,7 +3954,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3898,6 +3967,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4039,7 +4113,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4052,6 +4126,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4193,7 +4272,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4206,6 +4285,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4347,7 +4431,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4360,6 +4444,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "step returned non-zero exit code: 1",
@@ -4628,7 +4717,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4641,6 +4730,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4782,7 +4876,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4795,6 +4889,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4936,7 +5035,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4949,6 +5048,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5090,7 +5194,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5103,6 +5207,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5244,7 +5353,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5257,6 +5366,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5473,7 +5587,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5486,6 +5600,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux64_debug_forced.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux64_debug_forced.json
index c8d303c..f28f897 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux64_debug_forced.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux64_debug_forced.json
@@ -2559,6 +2559,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2582,7 +2616,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2595,6 +2629,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2736,7 +2775,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2749,6 +2788,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2890,7 +2934,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2903,6 +2947,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3044,7 +3093,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3057,6 +3106,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3198,7 +3252,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3211,6 +3265,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3377,7 +3436,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3390,6 +3449,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3656,7 +3720,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3669,6 +3733,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3885,7 +3954,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3898,6 +3967,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4039,7 +4113,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4052,6 +4126,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4193,7 +4272,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4206,6 +4285,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4347,7 +4431,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4360,6 +4444,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4626,7 +4715,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4639,6 +4728,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4780,7 +4874,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4793,6 +4887,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4934,7 +5033,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4947,6 +5046,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5088,7 +5192,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5101,6 +5205,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5242,7 +5351,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5255,6 +5364,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5471,7 +5585,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5484,6 +5598,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux64_release.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux64_release.json
index 108d6b0..0bee7a8 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux64_release.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux64_release.json
@@ -2669,6 +2669,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2692,7 +2726,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2705,6 +2739,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2846,7 +2885,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2859,6 +2898,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3000,7 +3044,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3013,6 +3057,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3154,7 +3203,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3167,6 +3216,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3308,7 +3362,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3321,6 +3375,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3487,7 +3546,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3500,6 +3559,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3766,7 +3830,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3779,6 +3843,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3995,7 +4064,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4008,6 +4077,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4149,7 +4223,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4162,6 +4236,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4303,7 +4382,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4316,6 +4395,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4457,7 +4541,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4470,6 +4554,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4736,7 +4825,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4749,6 +4838,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4890,7 +4984,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4903,6 +4997,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5044,7 +5143,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5057,6 +5156,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5198,7 +5302,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5211,6 +5315,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5352,7 +5461,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5365,6 +5474,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5581,7 +5695,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5594,6 +5708,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5735,7 +5854,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5748,6 +5867,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1340000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_capture_tests on Ubuntu",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux_asan.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux_asan.json
index 1ecb474..914727b 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux_asan.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux_asan.json
@@ -2586,6 +2586,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2609,7 +2643,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2622,6 +2656,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2763,7 +2802,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2776,6 +2815,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2917,7 +2961,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2930,6 +2974,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3071,7 +3120,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3084,6 +3133,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3225,7 +3279,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3238,6 +3292,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3404,7 +3463,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3417,6 +3476,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3683,7 +3747,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3696,6 +3760,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3912,7 +3981,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3925,6 +3994,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4066,7 +4140,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4079,6 +4153,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4220,7 +4299,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4233,6 +4312,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4374,7 +4458,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4387,6 +4471,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4653,7 +4742,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4666,6 +4755,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4807,7 +4901,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4820,6 +4914,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4961,7 +5060,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4974,6 +5073,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5115,7 +5219,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5128,6 +5232,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5269,7 +5378,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5282,6 +5391,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5498,7 +5612,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5511,6 +5625,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux_msan.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux_msan.json
index 52860ba..dd8b41e 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux_msan.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux_msan.json
@@ -2586,6 +2586,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2609,7 +2643,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2622,6 +2656,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2763,7 +2802,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2776,6 +2815,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2917,7 +2961,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2930,6 +2974,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3071,7 +3120,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3084,6 +3133,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3225,7 +3279,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3238,6 +3292,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3404,7 +3463,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3417,6 +3476,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3683,7 +3747,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3696,6 +3760,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3912,7 +3981,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3925,6 +3994,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4066,7 +4140,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4079,6 +4153,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4220,7 +4299,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4233,6 +4312,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4374,7 +4458,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4387,6 +4471,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4653,7 +4742,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4666,6 +4755,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4807,7 +4901,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4820,6 +4914,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4961,7 +5060,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4974,6 +5073,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5115,7 +5219,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5128,6 +5232,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5269,7 +5378,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5282,6 +5391,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5498,7 +5612,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5511,6 +5625,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux_tsan_v2.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux_tsan_v2.json
index 287585c..c7293e6 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux_tsan_v2.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux_tsan_v2.json
@@ -2586,6 +2586,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2609,7 +2643,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2622,6 +2656,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2763,7 +2802,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2776,6 +2815,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2917,7 +2961,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2930,6 +2974,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3071,7 +3120,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3084,6 +3133,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3225,7 +3279,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3238,6 +3292,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3404,7 +3463,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3417,6 +3476,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3683,7 +3747,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3696,6 +3760,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3912,7 +3981,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3925,6 +3994,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4066,7 +4140,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4079,6 +4153,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4220,7 +4299,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4233,6 +4312,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4374,7 +4458,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4387,6 +4471,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4653,7 +4742,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4666,6 +4755,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4807,7 +4901,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4820,6 +4914,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4961,7 +5060,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4974,6 +5073,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5115,7 +5219,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5128,6 +5232,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5269,7 +5378,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5282,6 +5391,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5498,7 +5612,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5511,6 +5625,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux_ubsan.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux_ubsan.json
index a965f4e..fa9f5cb 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux_ubsan.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux_ubsan.json
@@ -2586,6 +2586,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2609,7 +2643,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2622,6 +2656,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2763,7 +2802,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2776,6 +2815,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2917,7 +2961,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2930,6 +2974,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3071,7 +3120,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3084,6 +3133,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3225,7 +3279,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3238,6 +3292,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3404,7 +3463,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3417,6 +3476,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3683,7 +3747,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3696,6 +3760,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3912,7 +3981,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3925,6 +3994,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4066,7 +4140,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4079,6 +4153,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4220,7 +4299,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4233,6 +4312,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4374,7 +4458,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4387,6 +4471,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4653,7 +4742,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4666,6 +4755,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4807,7 +4901,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4820,6 +4914,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4961,7 +5060,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4974,6 +5073,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5115,7 +5219,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5128,6 +5232,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5269,7 +5378,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5282,6 +5391,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5498,7 +5612,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5511,6 +5625,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux_ubsan_vptr.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux_ubsan_vptr.json
index 2c231d8..e2b42b3 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux_ubsan_vptr.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_linux_ubsan_vptr.json
@@ -2586,6 +2586,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2609,7 +2643,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2622,6 +2656,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2763,7 +2802,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2776,6 +2815,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2917,7 +2961,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2930,6 +2974,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3071,7 +3120,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3084,6 +3133,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3225,7 +3279,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3238,6 +3292,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3404,7 +3463,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3417,6 +3476,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3683,7 +3747,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3696,6 +3760,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3912,7 +3981,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3925,6 +3994,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4066,7 +4140,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4079,6 +4153,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4220,7 +4299,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4233,6 +4312,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4374,7 +4458,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4387,6 +4471,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4653,7 +4742,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4666,6 +4755,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4807,7 +4901,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4820,6 +4914,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4961,7 +5060,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4974,6 +5073,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5115,7 +5219,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5128,6 +5232,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5269,7 +5378,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5282,6 +5391,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5498,7 +5612,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5511,6 +5625,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_mac64_debug.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_mac64_debug.json
index 9e4434b..af5dac0 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_mac64_debug.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_mac64_debug.json
@@ -2623,6 +2623,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2646,7 +2680,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2659,6 +2693,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2800,7 +2839,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2813,6 +2852,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2954,7 +2998,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2967,6 +3011,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3108,7 +3157,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3121,6 +3170,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3262,7 +3316,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3275,6 +3329,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3441,7 +3500,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3454,6 +3513,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3720,7 +3784,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3733,6 +3797,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3949,7 +4018,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3962,6 +4031,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4103,7 +4177,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4116,6 +4190,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4257,7 +4336,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4270,6 +4349,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4411,7 +4495,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4424,6 +4508,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4690,7 +4779,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4703,6 +4792,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4844,7 +4938,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4857,6 +4951,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4998,7 +5097,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5011,6 +5110,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5152,7 +5256,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5165,6 +5269,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5306,7 +5415,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5319,6 +5428,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5535,7 +5649,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5548,6 +5662,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_mac64_release.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_mac64_release.json
index 4a0858e..d7fe81c 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_mac64_release.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_mac64_release.json
@@ -2733,6 +2733,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2756,7 +2790,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2769,6 +2803,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2910,7 +2949,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2923,6 +2962,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3064,7 +3108,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3077,6 +3121,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3218,7 +3267,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3231,6 +3280,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3372,7 +3426,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3385,6 +3439,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3551,7 +3610,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3564,6 +3623,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3830,7 +3894,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3843,6 +3907,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4059,7 +4128,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4072,6 +4141,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4213,7 +4287,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4226,6 +4300,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4367,7 +4446,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4380,6 +4459,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4521,7 +4605,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4534,6 +4618,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4800,7 +4889,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4813,6 +4902,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4954,7 +5048,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4967,6 +5061,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5108,7 +5207,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5121,6 +5220,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5262,7 +5366,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5275,6 +5379,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5416,7 +5525,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5429,6 +5538,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5645,7 +5759,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5658,6 +5772,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5799,7 +5918,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5812,6 +5931,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1340000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_capture_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_mac_asan.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_mac_asan.json
index ca95ace..023eb91 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_mac_asan.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_mac_asan.json
@@ -2623,6 +2623,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2646,7 +2680,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2659,6 +2693,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2800,7 +2839,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2813,6 +2852,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2954,7 +2998,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2967,6 +3011,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3108,7 +3157,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3121,6 +3170,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3262,7 +3316,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3275,6 +3329,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3441,7 +3500,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3454,6 +3513,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3720,7 +3784,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3733,6 +3797,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3949,7 +4018,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3962,6 +4031,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4103,7 +4177,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4116,6 +4190,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4257,7 +4336,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4270,6 +4349,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4411,7 +4495,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4424,6 +4508,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4690,7 +4779,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4703,6 +4792,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4844,7 +4938,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4857,6 +4951,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4998,7 +5097,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5011,6 +5110,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5152,7 +5256,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5165,6 +5269,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5306,7 +5415,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5319,6 +5428,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5535,7 +5649,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5548,6 +5662,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_win32_asan.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_win32_asan.json
index 4b512bf..29139ef 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_win32_asan.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_win32_asan.json
@@ -2600,6 +2600,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]\\builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]\\builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2623,7 +2657,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2636,6 +2670,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2777,7 +2816,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2790,6 +2829,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2931,7 +2975,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2944,6 +2988,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3085,7 +3134,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3098,6 +3147,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3239,7 +3293,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3252,6 +3306,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3418,7 +3477,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3431,6 +3490,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3697,7 +3761,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3710,6 +3774,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3926,7 +3995,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3939,6 +4008,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4080,7 +4154,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4093,6 +4167,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4234,7 +4313,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4247,6 +4326,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4388,7 +4472,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4401,6 +4485,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4667,7 +4756,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4680,6 +4769,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4821,7 +4915,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4834,6 +4928,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4975,7 +5074,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4988,6 +5087,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5129,7 +5233,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5142,6 +5246,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5283,7 +5392,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5296,6 +5405,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5512,7 +5626,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5525,6 +5639,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_win32_debug.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_win32_debug.json
index 3dd81b9..1ed7962 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_win32_debug.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_win32_debug.json
@@ -2573,6 +2573,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]\\builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]\\builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2596,7 +2630,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2609,6 +2643,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2750,7 +2789,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2763,6 +2802,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2904,7 +2948,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2917,6 +2961,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3058,7 +3107,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3071,6 +3120,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3212,7 +3266,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3225,6 +3279,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3391,7 +3450,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3404,6 +3463,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3670,7 +3734,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3683,6 +3747,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3899,7 +3968,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3912,6 +3981,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4053,7 +4127,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4066,6 +4140,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4207,7 +4286,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4220,6 +4299,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4361,7 +4445,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4374,6 +4458,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4640,7 +4729,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4653,6 +4742,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4794,7 +4888,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4807,6 +4901,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4948,7 +5047,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4961,6 +5060,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5102,7 +5206,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5115,6 +5219,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5256,7 +5365,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5269,6 +5378,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5485,7 +5599,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5498,6 +5612,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_win32_release.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_win32_release.json
index 0f7bb55..d3974c0 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_win32_release.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_win32_release.json
@@ -2683,6 +2683,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]\\builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]\\builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2706,7 +2740,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2719,6 +2753,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2860,7 +2899,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2873,6 +2912,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3014,7 +3058,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3027,6 +3071,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3168,7 +3217,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3181,6 +3230,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3322,7 +3376,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3335,6 +3389,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3501,7 +3560,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3514,6 +3573,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3780,7 +3844,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3793,6 +3857,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4009,7 +4078,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4022,6 +4091,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4163,7 +4237,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4176,6 +4250,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4317,7 +4396,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4330,6 +4409,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4471,7 +4555,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4484,6 +4568,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4750,7 +4839,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4763,6 +4852,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4904,7 +4998,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4917,6 +5011,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5058,7 +5157,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5071,6 +5170,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5212,7 +5316,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5225,6 +5329,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5366,7 +5475,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5379,6 +5488,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5595,7 +5709,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5608,6 +5722,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5749,7 +5868,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5762,6 +5881,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1340000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "video_capture_tests on Windows",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_win32_release__clang_.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_win32_release__clang_.json
index 484bc9a..1e90011 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_win32_release__clang_.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_win32_release__clang_.json
@@ -2710,6 +2710,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]\\builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]\\builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2733,7 +2767,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2746,6 +2780,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2887,7 +2926,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2900,6 +2939,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3041,7 +3085,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3054,6 +3098,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3195,7 +3244,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3208,6 +3257,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3349,7 +3403,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3362,6 +3416,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3528,7 +3587,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3541,6 +3600,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3807,7 +3871,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3820,6 +3884,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4036,7 +4105,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4049,6 +4118,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4190,7 +4264,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4203,6 +4277,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4344,7 +4423,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4357,6 +4436,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4498,7 +4582,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4511,6 +4595,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4777,7 +4866,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4790,6 +4879,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4931,7 +5025,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4944,6 +5038,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5085,7 +5184,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5098,6 +5197,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5239,7 +5343,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5252,6 +5356,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5393,7 +5502,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5406,6 +5515,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5622,7 +5736,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5635,6 +5749,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5776,7 +5895,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5789,6 +5908,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1340000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "video_capture_tests on Windows",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_win64_debug.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_win64_debug.json
index eb3633d..539044b 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_win64_debug.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_win64_debug.json
@@ -2573,6 +2573,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]\\builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]\\builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2596,7 +2630,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2609,6 +2643,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2750,7 +2789,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2763,6 +2802,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2904,7 +2948,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2917,6 +2961,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3058,7 +3107,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3071,6 +3120,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3212,7 +3266,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3225,6 +3279,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3391,7 +3450,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3404,6 +3463,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3670,7 +3734,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3683,6 +3747,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3899,7 +3968,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3912,6 +3981,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4053,7 +4127,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4066,6 +4140,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4207,7 +4286,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4220,6 +4299,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4361,7 +4445,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4374,6 +4458,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4640,7 +4729,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4653,6 +4742,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4794,7 +4888,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4807,6 +4901,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4948,7 +5047,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4961,6 +5060,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5102,7 +5206,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5115,6 +5219,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5256,7 +5365,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5269,6 +5378,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5485,7 +5599,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5498,6 +5612,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_win64_release.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_win64_release.json
index 607e379..5f607c1 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_win64_release.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_ci_win64_release.json
@@ -2573,6 +2573,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]\\builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]\\builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2596,7 +2630,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2609,6 +2643,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2750,7 +2789,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2763,6 +2802,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2904,7 +2948,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2917,6 +2961,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3058,7 +3107,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3071,6 +3120,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3212,7 +3266,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3225,6 +3279,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3391,7 +3450,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3404,6 +3463,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3670,7 +3734,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3683,6 +3747,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3899,7 +3968,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3912,6 +3981,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4053,7 +4127,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4066,6 +4140,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4207,7 +4286,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4220,6 +4299,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4361,7 +4445,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4374,6 +4458,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4640,7 +4729,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4653,6 +4742,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4794,7 +4888,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4807,6 +4901,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4948,7 +5047,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4961,6 +5060,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5102,7 +5206,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5115,6 +5219,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5256,7 +5365,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5269,6 +5378,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5485,7 +5599,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5498,6 +5612,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android32__k_nexus5_.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android32__k_nexus5_.json
index 0d2f886..6a983a3 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android32__k_nexus5_.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android32__k_nexus5_.json
@@ -354,6 +354,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} latest",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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-latest----------\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -377,7 +411,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -390,6 +424,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_perf_test on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -513,7 +552,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -526,6 +565,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_perf_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android32__l_nexus4_.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android32__l_nexus4_.json
index 6090c09..8bc3a32 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android32__l_nexus4_.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android32__l_nexus4_.json
@@ -468,6 +468,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} latest",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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-latest----------\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -491,7 +525,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -504,6 +538,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_perf_test on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -627,7 +666,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -640,6 +679,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_quality_loopback_test on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -763,7 +807,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -776,6 +820,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_perf_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android32__l_nexus5_.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android32__l_nexus5_.json
index 3c1e2e3..f7f24a6 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android32__l_nexus5_.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android32__l_nexus5_.json
@@ -468,6 +468,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} latest",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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-latest----------\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -491,7 +525,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -504,6 +538,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_perf_test on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -627,7 +666,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -640,6 +679,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_quality_loopback_test on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -763,7 +807,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -776,6 +820,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_perf_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android32__l_nexus6_.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android32__l_nexus6_.json
index 50e4aec..124f0fe 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android32__l_nexus6_.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android32__l_nexus6_.json
@@ -468,6 +468,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} latest",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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-latest----------\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -491,7 +525,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -504,6 +538,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_perf_test on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -627,7 +666,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -640,6 +679,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_quality_loopback_test on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -763,7 +807,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -776,6 +820,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_perf_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android32__l_nexus7_2_.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android32__l_nexus7_2_.json
index 75d31c5..c3b5324 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android32__l_nexus7_2_.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android32__l_nexus7_2_.json
@@ -468,6 +468,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} latest",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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-latest----------\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -491,7 +525,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -504,6 +538,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_perf_test on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -627,7 +666,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -640,6 +679,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_quality_loopback_test on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -763,7 +807,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -776,6 +820,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_perf_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android32__n_nexus6_.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android32__n_nexus6_.json
index 1bc8076..6dfbd6c 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android32__n_nexus6_.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android32__n_nexus6_.json
@@ -468,6 +468,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} latest",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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-latest----------\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -491,7 +525,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -504,6 +538,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_perf_test on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -627,7 +666,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -640,6 +679,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_quality_loopback_test on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -763,7 +807,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -776,6 +820,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_perf_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android64__l_nexus9_.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android64__l_nexus9_.json
index 8d0b796..3d0132e 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android64__l_nexus9_.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android64__l_nexus9_.json
@@ -468,6 +468,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} latest",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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-latest----------\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -491,7 +525,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -504,6 +538,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_perf_test on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -627,7 +666,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -640,6 +679,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_quality_loopback_test on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -763,7 +807,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -776,6 +820,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_perf_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android64__n_pixel_.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android64__n_pixel_.json
index 966570c..90c6f4d 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android64__n_pixel_.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_android64__n_pixel_.json
@@ -468,6 +468,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} latest",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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-latest----------\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -491,7 +525,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -504,6 +538,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_perf_test on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -627,7 +666,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -640,6 +679,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_quality_loopback_test on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -763,7 +807,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -776,6 +820,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_perf_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_linux_trusty.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_linux_trusty.json
index 3bf3215..ab396d9 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_linux_trusty.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_linux_trusty.json
@@ -417,6 +417,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} latest",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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-latest----------\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -440,7 +474,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -453,6 +487,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "isac_fix_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -635,7 +674,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -648,6 +687,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_perf_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -830,7 +874,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -843,6 +887,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_perf_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_mac_10_11.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_mac_10_11.json
index fd05416..3cc5c04 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_mac_10_11.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_mac_10_11.json
@@ -417,6 +417,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} latest",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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-latest----------\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -440,7 +474,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -453,6 +487,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "isac_fix_test on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -635,7 +674,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -648,6 +687,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_perf_test on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -830,7 +874,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -843,6 +887,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_perf_tests on Mac-10.12",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.12'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_win7.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_win7.json
index 4f72f9e..414abb4 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_win7.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_perf_perf_win7.json
@@ -431,6 +431,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]\\builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} latest",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]\\builder",
+    "infra_step": true,
+    "name": "ensure swarming.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-latest----------\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -454,7 +488,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -467,6 +501,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "isac_fix_test on Windows",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -649,7 +688,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -662,6 +701,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_perf_test on Windows",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -844,7 +888,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -857,6 +901,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "webrtc_perf_tests on Windows",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_android_arm64_dbg.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_android_arm64_dbg.json
index d0704e8..a784ddb 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_android_arm64_dbg.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_android_arm64_dbg.json
@@ -2617,6 +2617,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -2641,7 +2675,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2654,6 +2688,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "AppRTCMobile_test_apk on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2759,7 +2798,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2772,6 +2811,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "android_instrumentation_test_apk on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2877,7 +2921,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2890,6 +2934,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2995,7 +3044,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3008,6 +3057,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3113,7 +3167,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3126,6 +3180,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3231,7 +3290,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3244,6 +3303,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"150000\"}, {\"task_id\": \"150100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3373,7 +3437,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3386,6 +3450,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"170000\"}, {\"task_id\": \"170100\"}, {\"task_id\": \"170200\"}, {\"task_id\": \"170300\"}, {\"task_id\": \"170400\"}, {\"task_id\": \"170500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3611,7 +3680,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3624,6 +3693,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1130000\"}, {\"task_id\": \"1130100\"}, {\"task_id\": \"1130200\"}, {\"task_id\": \"1130300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3801,7 +3875,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3814,6 +3888,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3919,7 +3998,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3932,6 +4011,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}, {\"task_id\": \"1180100\"}, {\"task_id\": \"1180200\"}, {\"task_id\": \"1180300\"}, {\"task_id\": \"1180400\"}, {\"task_id\": \"1180500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -4157,7 +4241,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4170,6 +4254,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1240000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4275,7 +4364,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4288,6 +4377,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4393,7 +4487,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4406,6 +4500,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4511,7 +4610,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4524,6 +4623,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}, {\"task_id\": \"1270100\"}, {\"task_id\": \"1270200\"}, {\"task_id\": \"1270300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -4701,7 +4805,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4714,6 +4818,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1310000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4832,7 +4941,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4845,6 +4954,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1320000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_perf_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_android_arm64_rel.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_android_arm64_rel.json
index 29c1349..6287acd 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_android_arm64_rel.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_android_arm64_rel.json
@@ -2617,6 +2617,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -2641,7 +2675,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2654,6 +2688,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "AppRTCMobile_test_apk on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2759,7 +2798,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2772,6 +2811,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "android_instrumentation_test_apk on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2877,7 +2921,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2890,6 +2934,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2995,7 +3044,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3008,6 +3057,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3113,7 +3167,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3126,6 +3180,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3231,7 +3290,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3244,6 +3303,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"150000\"}, {\"task_id\": \"150100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3373,7 +3437,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3386,6 +3450,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"170000\"}, {\"task_id\": \"170100\"}, {\"task_id\": \"170200\"}, {\"task_id\": \"170300\"}, {\"task_id\": \"170400\"}, {\"task_id\": \"170500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3611,7 +3680,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3624,6 +3693,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1130000\"}, {\"task_id\": \"1130100\"}, {\"task_id\": \"1130200\"}, {\"task_id\": \"1130300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3801,7 +3875,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3814,6 +3888,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3919,7 +3998,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3932,6 +4011,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}, {\"task_id\": \"1180100\"}, {\"task_id\": \"1180200\"}, {\"task_id\": \"1180300\"}, {\"task_id\": \"1180400\"}, {\"task_id\": \"1180500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -4157,7 +4241,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4170,6 +4254,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1240000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4275,7 +4364,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4288,6 +4377,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4393,7 +4487,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4406,6 +4500,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4511,7 +4610,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4524,6 +4623,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}, {\"task_id\": \"1270100\"}, {\"task_id\": \"1270200\"}, {\"task_id\": \"1270300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -4701,7 +4805,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4714,6 +4818,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1310000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4833,7 +4942,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4846,6 +4955,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1320000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_perf_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_android_arm_dbg.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_android_arm_dbg.json
index 3772691..bc63eb9 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_android_arm_dbg.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_android_arm_dbg.json
@@ -2617,6 +2617,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -2641,7 +2675,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2654,6 +2688,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "AppRTCMobile_test_apk on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2759,7 +2798,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2772,6 +2811,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "android_instrumentation_test_apk on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2877,7 +2921,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2890,6 +2934,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2995,7 +3044,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3008,6 +3057,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3113,7 +3167,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3126,6 +3180,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3231,7 +3290,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3244,6 +3303,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"150000\"}, {\"task_id\": \"150100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3373,7 +3437,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3386,6 +3450,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"170000\"}, {\"task_id\": \"170100\"}, {\"task_id\": \"170200\"}, {\"task_id\": \"170300\"}, {\"task_id\": \"170400\"}, {\"task_id\": \"170500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3611,7 +3680,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3624,6 +3693,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1130000\"}, {\"task_id\": \"1130100\"}, {\"task_id\": \"1130200\"}, {\"task_id\": \"1130300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3801,7 +3875,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3814,6 +3888,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3919,7 +3998,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3932,6 +4011,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}, {\"task_id\": \"1180100\"}, {\"task_id\": \"1180200\"}, {\"task_id\": \"1180300\"}, {\"task_id\": \"1180400\"}, {\"task_id\": \"1180500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -4157,7 +4241,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4170,6 +4254,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1240000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4275,7 +4364,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4288,6 +4377,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4393,7 +4487,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4406,6 +4500,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4511,7 +4610,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4524,6 +4623,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}, {\"task_id\": \"1270100\"}, {\"task_id\": \"1270200\"}, {\"task_id\": \"1270300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -4701,7 +4805,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4714,6 +4818,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1310000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4832,7 +4941,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4845,6 +4954,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1320000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_perf_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_android_arm_rel.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_android_arm_rel.json
index f3f2906..f2fd2d2 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_android_arm_rel.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_android_arm_rel.json
@@ -2898,6 +2898,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -2922,7 +2956,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2935,6 +2969,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "AppRTCMobile_test_apk on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3040,7 +3079,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3053,6 +3092,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "android_instrumentation_test_apk on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3158,7 +3202,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3171,6 +3215,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3276,7 +3325,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3289,6 +3338,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3394,7 +3448,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3407,6 +3461,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3512,7 +3571,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3525,6 +3584,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"150000\"}, {\"task_id\": \"150100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3654,7 +3718,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3667,6 +3731,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"170000\"}, {\"task_id\": \"170100\"}, {\"task_id\": \"170200\"}, {\"task_id\": \"170300\"}, {\"task_id\": \"170400\"}, {\"task_id\": \"170500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3892,7 +3961,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3905,6 +3974,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1130000\"}, {\"task_id\": \"1130100\"}, {\"task_id\": \"1130200\"}, {\"task_id\": \"1130300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -4082,7 +4156,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4095,6 +4169,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4200,7 +4279,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4213,6 +4292,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}, {\"task_id\": \"1180100\"}, {\"task_id\": \"1180200\"}, {\"task_id\": \"1180300\"}, {\"task_id\": \"1180400\"}, {\"task_id\": \"1180500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -4438,7 +4522,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4451,6 +4535,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1240000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4556,7 +4645,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4569,6 +4658,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4674,7 +4768,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4687,6 +4781,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4792,7 +4891,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4805,6 +4904,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}, {\"task_id\": \"1270100\"}, {\"task_id\": \"1270200\"}, {\"task_id\": \"1270300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -4982,7 +5086,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4995,6 +5099,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1310000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -5114,7 +5223,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5127,6 +5236,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1320000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_perf_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_android_experimental.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_android_experimental.json
index 41c8d18..6f3e17b 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_android_experimental.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_android_experimental.json
@@ -2617,6 +2617,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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@@@"
+    ]
+  },
+  {
     "allow_subannotations": true,
     "cmd": [
       "python",
@@ -2641,7 +2675,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2654,6 +2688,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "AppRTCMobile_test_apk on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2759,7 +2798,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2772,6 +2811,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "android_instrumentation_test_apk on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2877,7 +2921,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2890,6 +2934,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -2995,7 +3044,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3008,6 +3057,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3113,7 +3167,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3126,6 +3180,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3231,7 +3290,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3244,6 +3303,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"150000\"}, {\"task_id\": \"150100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3373,7 +3437,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3386,6 +3450,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"170000\"}, {\"task_id\": \"170100\"}, {\"task_id\": \"170200\"}, {\"task_id\": \"170300\"}, {\"task_id\": \"170400\"}, {\"task_id\": \"170500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3611,7 +3680,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3624,6 +3693,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1130000\"}, {\"task_id\": \"1130100\"}, {\"task_id\": \"1130200\"}, {\"task_id\": \"1130300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -3801,7 +3875,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3814,6 +3888,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -3919,7 +3998,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3932,6 +4011,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}, {\"task_id\": \"1180100\"}, {\"task_id\": \"1180200\"}, {\"task_id\": \"1180300\"}, {\"task_id\": \"1180400\"}, {\"task_id\": \"1180500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -4157,7 +4241,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4170,6 +4254,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1240000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4275,7 +4364,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4288,6 +4377,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4393,7 +4487,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4406,6 +4500,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4511,7 +4610,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4524,6 +4623,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}, {\"task_id\": \"1270100\"}, {\"task_id\": \"1270200\"}, {\"task_id\": \"1270300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)@@@",
@@ -4701,7 +4805,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4714,6 +4818,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1310000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
@@ -4851,7 +4960,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4864,6 +4973,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1320000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_perf_tests on Android",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Android'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_asan.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_asan.json
index 83699db..65436a2 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_asan.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_asan.json
@@ -2664,6 +2664,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2687,7 +2721,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2700,6 +2734,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2841,7 +2880,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2854,6 +2893,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2995,7 +3039,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3008,6 +3052,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3149,7 +3198,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3162,6 +3211,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3303,7 +3357,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3316,6 +3370,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3482,7 +3541,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3495,6 +3554,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3761,7 +3825,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3774,6 +3838,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3990,7 +4059,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4003,6 +4072,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4144,7 +4218,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4157,6 +4231,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4298,7 +4377,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4311,6 +4390,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4452,7 +4536,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4465,6 +4549,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4731,7 +4820,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4744,6 +4833,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4885,7 +4979,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4898,6 +4992,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5039,7 +5138,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5052,6 +5151,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5193,7 +5297,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5206,6 +5310,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5347,7 +5456,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5360,6 +5469,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5576,7 +5690,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5589,6 +5703,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_dbg.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_dbg.json
index 621b432..347fbd7 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_dbg.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_dbg.json
@@ -2637,6 +2637,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2660,7 +2694,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2673,6 +2707,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2814,7 +2853,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2827,6 +2866,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2968,7 +3012,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2981,6 +3025,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3122,7 +3171,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3135,6 +3184,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3276,7 +3330,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3289,6 +3343,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3455,7 +3514,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3468,6 +3527,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3734,7 +3798,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3747,6 +3811,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3963,7 +4032,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3976,6 +4045,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4117,7 +4191,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4130,6 +4204,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4271,7 +4350,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4284,6 +4363,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4425,7 +4509,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4438,6 +4522,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4704,7 +4793,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4717,6 +4806,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4858,7 +4952,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4871,6 +4965,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5012,7 +5111,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5025,6 +5124,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5166,7 +5270,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5179,6 +5283,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5320,7 +5429,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5333,6 +5442,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5549,7 +5663,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5562,6 +5676,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_memcheck.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_memcheck.json
index 9b99ecc..444b657 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_memcheck.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_memcheck.json
@@ -2637,6 +2637,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2660,7 +2694,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2673,6 +2707,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2814,7 +2853,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2827,6 +2866,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2968,7 +3012,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2981,6 +3025,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3122,7 +3171,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3135,6 +3184,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3276,7 +3330,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3289,6 +3343,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3455,7 +3514,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3468,6 +3527,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3734,7 +3798,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3747,6 +3811,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3963,7 +4032,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3976,6 +4045,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4117,7 +4191,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4130,6 +4204,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4271,7 +4350,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4284,6 +4363,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4425,7 +4509,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4438,6 +4522,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4704,7 +4793,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4717,6 +4806,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4858,7 +4952,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4871,6 +4965,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5012,7 +5111,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5025,6 +5124,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5166,7 +5270,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5179,6 +5283,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5320,7 +5429,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5333,6 +5442,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5549,7 +5663,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5562,6 +5676,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_msan.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_msan.json
index 87bd035..b495f27 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_msan.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_msan.json
@@ -2664,6 +2664,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2687,7 +2721,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2700,6 +2734,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2841,7 +2880,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2854,6 +2893,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2995,7 +3039,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3008,6 +3052,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3149,7 +3198,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3162,6 +3211,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3303,7 +3357,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3316,6 +3370,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3482,7 +3541,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3495,6 +3554,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3761,7 +3825,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3774,6 +3838,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3990,7 +4059,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4003,6 +4072,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4144,7 +4218,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4157,6 +4231,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4298,7 +4377,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4311,6 +4390,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4452,7 +4536,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4465,6 +4549,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4731,7 +4820,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4744,6 +4833,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4885,7 +4979,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4898,6 +4992,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5039,7 +5138,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5052,6 +5151,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5193,7 +5297,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5206,6 +5310,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5347,7 +5456,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5360,6 +5469,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5576,7 +5690,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5589,6 +5703,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_rel.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_rel.json
index a40d560..ff70c6e 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_rel.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_rel.json
@@ -2974,6 +2974,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2997,7 +3031,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3010,6 +3044,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3151,7 +3190,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3164,6 +3203,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3305,7 +3349,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3318,6 +3362,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3459,7 +3508,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3472,6 +3521,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3613,7 +3667,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3626,6 +3680,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3792,7 +3851,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3805,6 +3864,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4071,7 +4135,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4084,6 +4148,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4300,7 +4369,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4313,6 +4382,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4454,7 +4528,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4467,6 +4541,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4608,7 +4687,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4621,6 +4700,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4762,7 +4846,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4775,6 +4859,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5041,7 +5130,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5054,6 +5143,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5195,7 +5289,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5208,6 +5302,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5349,7 +5448,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5362,6 +5461,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5503,7 +5607,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5516,6 +5620,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5657,7 +5766,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5670,6 +5779,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5886,7 +6000,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5899,6 +6013,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -6040,7 +6159,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -6053,6 +6172,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1340000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_capture_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Linux'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -6193,7 +6317,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -6206,6 +6330,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1350000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "isac_fix_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Linux'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -6346,7 +6475,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -6359,6 +6488,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1360000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_perf_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Linux'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_tsan2.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_tsan2.json
index 1a5d6f3..b15771a 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_tsan2.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_tsan2.json
@@ -2664,6 +2664,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2687,7 +2721,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2700,6 +2734,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2841,7 +2880,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2854,6 +2893,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2995,7 +3039,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3008,6 +3052,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3149,7 +3198,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3162,6 +3211,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3303,7 +3357,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3316,6 +3370,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3482,7 +3541,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3495,6 +3554,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3761,7 +3825,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3774,6 +3838,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3990,7 +4059,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4003,6 +4072,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4144,7 +4218,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4157,6 +4231,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4298,7 +4377,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4311,6 +4390,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4452,7 +4536,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4465,6 +4549,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4731,7 +4820,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4744,6 +4833,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4885,7 +4979,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4898,6 +4992,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5039,7 +5138,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5052,6 +5151,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5193,7 +5297,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5206,6 +5310,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5347,7 +5456,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5360,6 +5469,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5576,7 +5690,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5589,6 +5703,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_ubsan.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_ubsan.json
index a6280d2..1d18774 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_ubsan.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_ubsan.json
@@ -2664,6 +2664,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2687,7 +2721,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2700,6 +2734,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2841,7 +2880,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2854,6 +2893,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2995,7 +3039,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3008,6 +3052,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3149,7 +3198,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3162,6 +3211,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3303,7 +3357,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3316,6 +3370,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3482,7 +3541,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3495,6 +3554,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3761,7 +3825,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3774,6 +3838,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3990,7 +4059,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4003,6 +4072,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4144,7 +4218,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4157,6 +4231,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4298,7 +4377,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4311,6 +4390,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4452,7 +4536,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4465,6 +4549,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4731,7 +4820,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4744,6 +4833,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4885,7 +4979,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4898,6 +4992,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5039,7 +5138,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5052,6 +5151,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5193,7 +5297,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5206,6 +5310,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5347,7 +5456,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5360,6 +5469,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5576,7 +5690,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5589,6 +5703,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_ubsan_vptr.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_ubsan_vptr.json
index 9350cb7..cace7f2 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_ubsan_vptr.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_ubsan_vptr.json
@@ -2664,6 +2664,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2687,7 +2721,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2700,6 +2734,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2841,7 +2880,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2854,6 +2893,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2995,7 +3039,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3008,6 +3052,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3149,7 +3198,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3162,6 +3211,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3303,7 +3357,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3316,6 +3370,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3482,7 +3541,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3495,6 +3554,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3761,7 +3825,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3774,6 +3838,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3990,7 +4059,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4003,6 +4072,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4144,7 +4218,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4157,6 +4231,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4298,7 +4377,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4311,6 +4390,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4452,7 +4536,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4465,6 +4549,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4731,7 +4820,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4744,6 +4833,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4885,7 +4979,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4898,6 +4992,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5039,7 +5138,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5052,6 +5151,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5193,7 +5297,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5206,6 +5310,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5347,7 +5456,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5360,6 +5469,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5576,7 +5690,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5589,6 +5703,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_x86_dbg.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_x86_dbg.json
index ec0ee03..f80954d 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_x86_dbg.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_x86_dbg.json
@@ -2637,6 +2637,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2660,7 +2694,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2673,6 +2707,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2814,7 +2853,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2827,6 +2866,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2968,7 +3012,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2981,6 +3025,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3122,7 +3171,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3135,6 +3184,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3276,7 +3330,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3289,6 +3343,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3455,7 +3514,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3468,6 +3527,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3734,7 +3798,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3747,6 +3811,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3963,7 +4032,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3976,6 +4045,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4117,7 +4191,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4130,6 +4204,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4271,7 +4350,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4284,6 +4363,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4425,7 +4509,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4438,6 +4522,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4704,7 +4793,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4717,6 +4806,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4858,7 +4952,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4871,6 +4965,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5012,7 +5111,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5025,6 +5124,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5166,7 +5270,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5179,6 +5283,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5320,7 +5429,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5333,6 +5442,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5549,7 +5663,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5562,6 +5676,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_x86_rel.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_x86_rel.json
index d6ed74d..b8fb18c 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_x86_rel.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_linux_x86_rel.json
@@ -2637,6 +2637,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2660,7 +2694,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2673,6 +2707,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2814,7 +2853,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2827,6 +2866,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2968,7 +3012,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2981,6 +3025,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3122,7 +3171,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3135,6 +3184,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3276,7 +3330,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3289,6 +3343,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3455,7 +3514,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3468,6 +3527,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3734,7 +3798,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3747,6 +3811,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3963,7 +4032,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3976,6 +4045,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4117,7 +4191,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4130,6 +4204,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4271,7 +4350,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4284,6 +4363,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4425,7 +4509,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4438,6 +4522,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4704,7 +4793,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4717,6 +4806,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4858,7 +4952,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4871,6 +4965,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5012,7 +5111,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5025,6 +5124,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5166,7 +5270,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5179,6 +5283,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5320,7 +5429,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5333,6 +5442,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5549,7 +5663,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5562,6 +5676,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Ubuntu-14.04'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_mac_asan.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_mac_asan.json
index cf7e7f3..c233db5 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_mac_asan.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_mac_asan.json
@@ -2701,6 +2701,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2724,7 +2758,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2737,6 +2771,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2878,7 +2917,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2891,6 +2930,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3032,7 +3076,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3045,6 +3089,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3186,7 +3235,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3199,6 +3248,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3340,7 +3394,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3353,6 +3407,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3519,7 +3578,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3532,6 +3591,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3798,7 +3862,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3811,6 +3875,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4027,7 +4096,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4040,6 +4109,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4181,7 +4255,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4194,6 +4268,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4335,7 +4414,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4348,6 +4427,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4489,7 +4573,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4502,6 +4586,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4768,7 +4857,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4781,6 +4870,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4922,7 +5016,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4935,6 +5029,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5076,7 +5175,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5089,6 +5188,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5230,7 +5334,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5243,6 +5347,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5384,7 +5493,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5397,6 +5506,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5613,7 +5727,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5626,6 +5740,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_mac_dbg.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_mac_dbg.json
index 51e17b3..5acace3 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_mac_dbg.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_mac_dbg.json
@@ -2701,6 +2701,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2724,7 +2758,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2737,6 +2771,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2878,7 +2917,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2891,6 +2930,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3032,7 +3076,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3045,6 +3089,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3186,7 +3235,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3199,6 +3248,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3340,7 +3394,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3353,6 +3407,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3519,7 +3578,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3532,6 +3591,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3798,7 +3862,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3811,6 +3875,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4027,7 +4096,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4040,6 +4109,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4181,7 +4255,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4194,6 +4268,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4335,7 +4414,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4348,6 +4427,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4489,7 +4573,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4502,6 +4586,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4768,7 +4857,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4781,6 +4870,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4922,7 +5016,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4935,6 +5029,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5076,7 +5175,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5089,6 +5188,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5230,7 +5334,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5243,6 +5347,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5384,7 +5493,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5397,6 +5506,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5613,7 +5727,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5626,6 +5740,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_mac_experimental.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_mac_experimental.json
index 6e262af..9a2ac55 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_mac_experimental.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_mac_experimental.json
@@ -2701,6 +2701,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2724,7 +2758,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2737,6 +2771,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2878,7 +2917,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2891,6 +2930,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3032,7 +3076,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3045,6 +3089,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3186,7 +3235,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3199,6 +3248,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3340,7 +3394,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3353,6 +3407,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3519,7 +3578,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3532,6 +3591,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3798,7 +3862,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3811,6 +3875,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4027,7 +4096,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4040,6 +4109,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4181,7 +4255,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4194,6 +4268,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4335,7 +4414,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4348,6 +4427,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4489,7 +4573,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4502,6 +4586,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4768,7 +4857,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4781,6 +4870,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4922,7 +5016,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4935,6 +5029,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5076,7 +5175,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5089,6 +5188,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5230,7 +5334,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5243,6 +5347,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5384,7 +5493,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5397,6 +5506,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5613,7 +5727,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5626,6 +5740,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_mac_rel.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_mac_rel.json
index fd663c2..441f510 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_mac_rel.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_mac_rel.json
@@ -2813,6 +2813,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]/builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[CACHE]/swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]/builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2836,7 +2870,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2849,6 +2883,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2990,7 +3029,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3003,6 +3042,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_audio_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3144,7 +3188,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3157,6 +3201,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "common_video_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3298,7 +3347,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3311,6 +3360,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3452,7 +3506,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3465,6 +3519,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_tests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3631,7 +3690,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3644,6 +3703,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "modules_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3910,7 +3974,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3923,6 +3987,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4139,7 +4208,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4152,6 +4221,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4293,7 +4367,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4306,6 +4380,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4447,7 +4526,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4460,6 +4539,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4601,7 +4685,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4614,6 +4698,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "rtc_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4880,7 +4969,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4893,6 +4982,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "slow_tests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5034,7 +5128,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5047,6 +5141,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5188,7 +5287,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5201,6 +5300,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "test_support_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5342,7 +5446,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5355,6 +5459,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "tools_unittests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5496,7 +5605,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5509,6 +5618,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_engine_tests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5725,7 +5839,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5738,6 +5852,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests on Mac-10.11",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac-10.11'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5879,7 +5998,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]/builder/src/tools/luci-go/swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5892,6 +6011,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1340000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]/swarming_client"
+      ]
+    },
     "name": "video_capture_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Mac'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_asan.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_asan.json
index c3f6ad9..6f86f8a 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_asan.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_asan.json
@@ -2678,6 +2678,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]\\builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]\\builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2701,7 +2735,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2714,6 +2748,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2855,7 +2894,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2868,6 +2907,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3009,7 +3053,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3022,6 +3066,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3163,7 +3212,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3176,6 +3225,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3317,7 +3371,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3330,6 +3384,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3496,7 +3555,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3509,6 +3568,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3775,7 +3839,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3788,6 +3852,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4004,7 +4073,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4017,6 +4086,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4158,7 +4232,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4171,6 +4245,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4312,7 +4391,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4325,6 +4404,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4466,7 +4550,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4479,6 +4563,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4745,7 +4834,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4758,6 +4847,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4899,7 +4993,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4912,6 +5006,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5053,7 +5152,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5066,6 +5165,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5207,7 +5311,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5220,6 +5324,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5361,7 +5470,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5374,6 +5483,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5590,7 +5704,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5603,6 +5717,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_experimental.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_experimental.json
index e22c502..c253f7c 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_experimental.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_experimental.json
@@ -2651,6 +2651,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]\\builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]\\builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2674,7 +2708,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2687,6 +2721,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2828,7 +2867,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2841,6 +2880,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2982,7 +3026,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2995,6 +3039,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3136,7 +3185,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3149,6 +3198,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3290,7 +3344,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3303,6 +3357,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3469,7 +3528,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3482,6 +3541,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3748,7 +3812,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3761,6 +3825,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3977,7 +4046,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3990,6 +4059,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4131,7 +4205,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4144,6 +4218,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4285,7 +4364,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4298,6 +4377,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4439,7 +4523,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4452,6 +4536,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4718,7 +4807,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4731,6 +4820,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4872,7 +4966,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4885,6 +4979,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5026,7 +5125,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5039,6 +5138,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5180,7 +5284,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5193,6 +5297,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5334,7 +5443,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5347,6 +5456,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5563,7 +5677,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5576,6 +5690,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x64_clang_dbg.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x64_clang_dbg.json
index 006e2dc..91172f6 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x64_clang_dbg.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x64_clang_dbg.json
@@ -2678,6 +2678,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]\\builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]\\builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2701,7 +2735,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2714,6 +2748,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2855,7 +2894,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2868,6 +2907,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3009,7 +3053,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3022,6 +3066,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3163,7 +3212,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3176,6 +3225,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3317,7 +3371,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3330,6 +3384,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3496,7 +3555,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3509,6 +3568,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3775,7 +3839,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3788,6 +3852,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4004,7 +4073,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4017,6 +4086,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4158,7 +4232,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4171,6 +4245,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4312,7 +4391,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4325,6 +4404,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4466,7 +4550,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4479,6 +4563,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4745,7 +4834,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4758,6 +4847,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4899,7 +4993,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4912,6 +5006,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5053,7 +5152,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5066,6 +5165,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5207,7 +5311,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5220,6 +5324,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5361,7 +5470,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5374,6 +5483,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5590,7 +5704,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5603,6 +5717,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x64_clang_dbg_win10.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x64_clang_dbg_win10.json
index 2473c03..50a0d82 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x64_clang_dbg_win10.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x64_clang_dbg_win10.json
@@ -2651,6 +2651,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]\\builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]\\builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2674,7 +2708,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2687,6 +2721,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests on Windows-10",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-10'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2828,7 +2867,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2841,6 +2880,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_audio_unittests on Windows-10",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-10'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2982,7 +3026,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2995,6 +3039,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_video_unittests on Windows-10",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-10'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3136,7 +3185,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3149,6 +3198,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test on Windows-10",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-10'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3290,7 +3344,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3303,6 +3357,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_tests on Windows-10",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-10'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3469,7 +3528,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3482,6 +3541,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_unittests on Windows-10",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-10'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3748,7 +3812,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3761,6 +3825,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests on Windows-10",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-10'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3977,7 +4046,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3990,6 +4059,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests on Windows-10",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-10'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4131,7 +4205,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4144,6 +4218,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests on Windows-10",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-10'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4285,7 +4364,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4298,6 +4377,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests on Windows-10",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-10'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4439,7 +4523,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4452,6 +4536,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_unittests on Windows-10",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-10'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4718,7 +4807,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4731,6 +4820,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "slow_tests on Windows-10",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-10'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4872,7 +4966,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4885,6 +4979,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests on Windows-10",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-10'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5026,7 +5125,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5039,6 +5138,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "test_support_unittests on Windows-10",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-10'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5180,7 +5284,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5193,6 +5297,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "tools_unittests on Windows-10",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-10'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5334,7 +5443,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5347,6 +5456,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "video_engine_tests on Windows-10",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-10'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5563,7 +5677,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5576,6 +5690,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests on Windows-10",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-10'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x64_clang_dbg_win8.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x64_clang_dbg_win8.json
index 91a68ed..064dc06 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x64_clang_dbg_win8.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x64_clang_dbg_win8.json
@@ -2651,6 +2651,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]\\builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]\\builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2674,7 +2708,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2687,6 +2721,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests on Windows-8.1-SP0",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-8.1-SP0'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2828,7 +2867,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2841,6 +2880,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_audio_unittests on Windows-8.1-SP0",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-8.1-SP0'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2982,7 +3026,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2995,6 +3039,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_video_unittests on Windows-8.1-SP0",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-8.1-SP0'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3136,7 +3185,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3149,6 +3198,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test on Windows-8.1-SP0",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-8.1-SP0'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3290,7 +3344,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3303,6 +3357,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_tests on Windows-8.1-SP0",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-8.1-SP0'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3469,7 +3528,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3482,6 +3541,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_unittests on Windows-8.1-SP0",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-8.1-SP0'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3748,7 +3812,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3761,6 +3825,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests on Windows-8.1-SP0",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-8.1-SP0'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3977,7 +4046,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3990,6 +4059,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests on Windows-8.1-SP0",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-8.1-SP0'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4131,7 +4205,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4144,6 +4218,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests on Windows-8.1-SP0",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-8.1-SP0'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4285,7 +4364,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4298,6 +4377,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests on Windows-8.1-SP0",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-8.1-SP0'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4439,7 +4523,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4452,6 +4536,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_unittests on Windows-8.1-SP0",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-8.1-SP0'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4718,7 +4807,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4731,6 +4820,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "slow_tests on Windows-8.1-SP0",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-8.1-SP0'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4872,7 +4966,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4885,6 +4979,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests on Windows-8.1-SP0",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-8.1-SP0'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5026,7 +5125,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5039,6 +5138,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "test_support_unittests on Windows-8.1-SP0",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-8.1-SP0'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5180,7 +5284,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5193,6 +5297,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "tools_unittests on Windows-8.1-SP0",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-8.1-SP0'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5334,7 +5443,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5347,6 +5456,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "video_engine_tests on Windows-8.1-SP0",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-8.1-SP0'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5563,7 +5677,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5576,6 +5690,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests on Windows-8.1-SP0",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-8.1-SP0'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x64_clang_rel.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x64_clang_rel.json
index 1426b7e..f7318ef 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x64_clang_rel.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x64_clang_rel.json
@@ -2678,6 +2678,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]\\builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]\\builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2701,7 +2735,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2714,6 +2748,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2855,7 +2894,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2868,6 +2907,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3009,7 +3053,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3022,6 +3066,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3163,7 +3212,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3176,6 +3225,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3317,7 +3371,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3330,6 +3384,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3496,7 +3555,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3509,6 +3568,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3775,7 +3839,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3788,6 +3852,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4004,7 +4073,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4017,6 +4086,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4158,7 +4232,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4171,6 +4245,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4312,7 +4391,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4325,6 +4404,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4466,7 +4550,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4479,6 +4563,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4745,7 +4834,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4758,6 +4847,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4899,7 +4993,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4912,6 +5006,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5053,7 +5152,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5066,6 +5165,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5207,7 +5311,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5220,6 +5324,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5361,7 +5470,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5374,6 +5483,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5590,7 +5704,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5603,6 +5717,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x64_msvc_dbg.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x64_msvc_dbg.json
index af44e1c..4abee7a 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x64_msvc_dbg.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x64_msvc_dbg.json
@@ -2651,6 +2651,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]\\builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]\\builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2674,7 +2708,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2687,6 +2721,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2828,7 +2867,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2841,6 +2880,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2982,7 +3026,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2995,6 +3039,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3136,7 +3185,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3149,6 +3198,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3290,7 +3344,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3303,6 +3357,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3469,7 +3528,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3482,6 +3541,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3748,7 +3812,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3761,6 +3825,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3977,7 +4046,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3990,6 +4059,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4131,7 +4205,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4144,6 +4218,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4285,7 +4364,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4298,6 +4377,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4439,7 +4523,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4452,6 +4536,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4718,7 +4807,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4731,6 +4820,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4872,7 +4966,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4885,6 +4979,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5026,7 +5125,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5039,6 +5138,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5180,7 +5284,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5193,6 +5297,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5334,7 +5443,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5347,6 +5456,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5563,7 +5677,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5576,6 +5690,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x64_msvc_rel.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x64_msvc_rel.json
index 098de50..ff4723c 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x64_msvc_rel.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x64_msvc_rel.json
@@ -2651,6 +2651,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]\\builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]\\builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2674,7 +2708,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2687,6 +2721,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2828,7 +2867,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2841,6 +2880,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2982,7 +3026,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2995,6 +3039,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3136,7 +3185,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3149,6 +3198,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3290,7 +3344,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3303,6 +3357,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3469,7 +3528,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3482,6 +3541,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3748,7 +3812,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3761,6 +3825,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3977,7 +4046,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3990,6 +4059,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4131,7 +4205,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4144,6 +4218,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4285,7 +4364,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4298,6 +4377,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4439,7 +4523,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4452,6 +4536,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4718,7 +4807,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4731,6 +4820,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4872,7 +4966,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4885,6 +4979,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5026,7 +5125,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5039,6 +5138,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5180,7 +5284,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5193,6 +5297,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5334,7 +5443,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5347,6 +5456,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5563,7 +5677,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5576,6 +5690,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x86_clang_dbg.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x86_clang_dbg.json
index 142bbd4..ceac81f 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x86_clang_dbg.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x86_clang_dbg.json
@@ -2678,6 +2678,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]\\builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]\\builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2701,7 +2735,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2714,6 +2748,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2855,7 +2894,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2868,6 +2907,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3009,7 +3053,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3022,6 +3066,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3163,7 +3212,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3176,6 +3225,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3317,7 +3371,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3330,6 +3384,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3496,7 +3555,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3509,6 +3568,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3775,7 +3839,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3788,6 +3852,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4004,7 +4073,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4017,6 +4086,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4158,7 +4232,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4171,6 +4245,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4312,7 +4391,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4325,6 +4404,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4466,7 +4550,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4479,6 +4563,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4745,7 +4834,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4758,6 +4847,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4899,7 +4993,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4912,6 +5006,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5053,7 +5152,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5066,6 +5165,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5207,7 +5311,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5220,6 +5324,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5361,7 +5470,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5374,6 +5483,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5590,7 +5704,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5603,6 +5717,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x86_clang_rel.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x86_clang_rel.json
index 021e430..a88979f 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x86_clang_rel.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x86_clang_rel.json
@@ -2903,6 +2903,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]\\builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]\\builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2926,7 +2960,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2939,6 +2973,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3080,7 +3119,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3093,6 +3132,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3234,7 +3278,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3247,6 +3291,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3388,7 +3437,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3401,6 +3450,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3542,7 +3596,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3555,6 +3609,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3721,7 +3780,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3734,6 +3793,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4000,7 +4064,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4013,6 +4077,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4229,7 +4298,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4242,6 +4311,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4383,7 +4457,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4396,6 +4470,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4537,7 +4616,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4550,6 +4629,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4691,7 +4775,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4704,6 +4788,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4970,7 +5059,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4983,6 +5072,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5124,7 +5218,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5137,6 +5231,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5278,7 +5377,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5291,6 +5390,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5432,7 +5536,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5445,6 +5549,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5586,7 +5695,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5599,6 +5708,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5815,7 +5929,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5828,6 +5942,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5969,7 +6088,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5982,6 +6101,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1340000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "video_capture_tests on Windows",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -6122,7 +6246,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -6135,6 +6259,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1350000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "webrtc_perf_tests on Windows",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x86_msvc_dbg.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x86_msvc_dbg.json
index e20d18a..9fd29e5 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x86_msvc_dbg.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x86_msvc_dbg.json
@@ -2651,6 +2651,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]\\builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]\\builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2674,7 +2708,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2687,6 +2721,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2828,7 +2867,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2841,6 +2880,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2982,7 +3026,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2995,6 +3039,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3136,7 +3185,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3149,6 +3198,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3290,7 +3344,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3303,6 +3357,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3469,7 +3528,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3482,6 +3541,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3748,7 +3812,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3761,6 +3825,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3977,7 +4046,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3990,6 +4059,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4131,7 +4205,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4144,6 +4218,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4285,7 +4364,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4298,6 +4377,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4439,7 +4523,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4452,6 +4536,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4718,7 +4807,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4731,6 +4820,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4872,7 +4966,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4885,6 +4979,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5026,7 +5125,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5039,6 +5138,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5180,7 +5284,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5193,6 +5297,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5334,7 +5443,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5347,6 +5456,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5563,7 +5677,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5576,6 +5690,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
diff --git a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x86_msvc_rel.json b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x86_msvc_rel.json
index 6bb61be..dfe6178 100644
--- a/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x86_msvc_rel.json
+++ b/scripts/slave/recipes/webrtc/standalone.expected/luci_webrtc_try_win_x86_msvc_rel.json
@@ -2763,6 +2763,40 @@
     ]
   },
   {
+    "cmd": [],
+    "cwd": "[CACHE]\\builder",
+    "name": "ensure swarming"
+  },
+  {
+    "cmd": [
+      "cipd.bat",
+      "ensure",
+      "-root",
+      "[CACHE]\\swarming_client",
+      "-ensure-file",
+      "infra/tools/luci/swarming/${platform} git_revision:25958d48e89e980e2a97daeddc977fb5e2e1fb8c",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[CACHE]\\builder",
+    "infra_step": true,
+    "name": "ensure swarming.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:259\", @@@",
+      "@@@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": [
       "python",
       "-u",
@@ -2786,7 +2820,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2799,6 +2833,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"10000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "audio_decoder_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -2940,7 +2979,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -2953,6 +2992,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"110000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_audio_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3094,7 +3138,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3107,6 +3151,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"120000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "common_video_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3248,7 +3297,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3261,6 +3310,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"130000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "low_bandwidth_audio_test",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3402,7 +3456,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3415,6 +3469,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"140000\"}, {\"task_id\": \"140100\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3581,7 +3640,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3594,6 +3653,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"160000\"}, {\"task_id\": \"160100\"}, {\"task_id\": \"160200\"}, {\"task_id\": \"160300\"}, {\"task_id\": \"160400\"}, {\"task_id\": \"160500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "modules_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -3860,7 +3924,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -3873,6 +3937,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1120000\"}, {\"task_id\": \"1120100\"}, {\"task_id\": \"1120200\"}, {\"task_id\": \"1120300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "peerconnection_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4089,7 +4158,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4102,6 +4171,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1160000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_media_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4243,7 +4317,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4256,6 +4330,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1170000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_pc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4397,7 +4476,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4410,6 +4489,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1180000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_stats_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4551,7 +4635,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4564,6 +4648,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1190000\"}, {\"task_id\": \"1190100\"}, {\"task_id\": \"1190200\"}, {\"task_id\": \"1190300\"}, {\"task_id\": \"1190400\"}, {\"task_id\": \"1190500\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "rtc_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4830,7 +4919,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4843,6 +4932,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1250000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "slow_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -4984,7 +5078,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -4997,6 +5091,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1260000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "system_wrappers_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5138,7 +5237,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5151,6 +5250,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1270000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "test_support_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5292,7 +5396,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5305,6 +5409,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1280000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "tools_unittests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5446,7 +5555,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5459,6 +5568,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1290000\"}, {\"task_id\": \"1290100\"}, {\"task_id\": \"1290200\"}, {\"task_id\": \"1290300\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "video_engine_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Max pending time: 0:01:11 (shard #0)<br>Max shard duration: 0:01:00 (shard #0)<br>Min shard duration: 0:01:00 (shard #0)<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5675,7 +5789,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5688,6 +5802,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1330000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "webrtc_nonparallel_tests",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows-7-SP1'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",
@@ -5829,7 +5948,7 @@
       "--summary-json-file",
       "/path/to/tmp/json",
       "--",
-      "[CACHE]\\builder\\src\\tools\\luci-go\\swarming",
+      "swarming",
       "collect",
       "-server",
       "https://chromium-swarm.appspot.com",
@@ -5842,6 +5961,11 @@
       "-requests-json",
       "{\"tasks\": [{\"task_id\": \"1340000\"}]}"
     ],
+    "env_prefixes": {
+      "PATH": [
+        "[CACHE]\\swarming_client"
+      ]
+    },
     "name": "video_capture_tests on Windows",
     "~followup_annotations": [
       "@@@STEP_TEXT@Run on OS: 'Windows'<br>Pending time: 0:01:11<br>Shard duration: 0:01:00<br/>Total tests: 4<br/>* Passed: 1 (1 expected, 0 unexpected)<br/>* Skipped: 1 (1 expected, 0 unexpected)<br/>* Failed: 1 (1 expected, 0 unexpected)<br/>* Flaky: 1 (1 expected, 0 unexpected)<br/>@@@",