Use cipd jazzy instead of gems install

This cipd was created locally using an intel mac, and is with earlier workable version: 0.14.1.

Change-Id: If52f910e59a15a2b30a04ee61c7f33fe33eaea11
Bug: https://github.com/flutter/flutter/issues/111193
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/33681
Commit-Queue: Keyong Han <keyonghan@google.com>
Reviewed-by: Godofredo Contreras <godofredoc@google.com>
diff --git a/recipes/engine/engine.expected/mac.json b/recipes/engine/engine.expected/mac.json
index f54b4ad..cd391c5 100644
--- a/recipes/engine/engine.expected/mac.json
+++ b/recipes/engine/engine.expected/mac.json
@@ -11228,13 +11228,18 @@
   },
   {
     "cmd": [
-      "gem",
-      "install",
-      "jazzy:0.8.4",
-      "--install-dir",
-      "."
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/gems",
+      "-ensure-file",
+      "flutter/jazzy/${platform} version:0.14.1",
+      "-max-threads",
+      "0",
+      "-json-output",
+      "/path/to/tmp/json"
     ],
-    "cwd": "[START_DIR]/gems",
+    "cwd": "[CACHE]/builder",
     "env": {
       "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
       "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
@@ -11267,7 +11272,20 @@
         "hostname": "rdbhost"
       }
     },
-    "name": "install jazzy"
+    "name": "ensure_installed (2)",
+    "~followup_annotations": [
+      "@@@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-version:0.14.1--\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter/jazzy/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": [
diff --git a/recipes/engine/engine.expected/mac_font_subset.json b/recipes/engine/engine.expected/mac_font_subset.json
index f54b4ad..cd391c5 100644
--- a/recipes/engine/engine.expected/mac_font_subset.json
+++ b/recipes/engine/engine.expected/mac_font_subset.json
@@ -11228,13 +11228,18 @@
   },
   {
     "cmd": [
-      "gem",
-      "install",
-      "jazzy:0.8.4",
-      "--install-dir",
-      "."
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/gems",
+      "-ensure-file",
+      "flutter/jazzy/${platform} version:0.14.1",
+      "-max-threads",
+      "0",
+      "-json-output",
+      "/path/to/tmp/json"
     ],
-    "cwd": "[START_DIR]/gems",
+    "cwd": "[CACHE]/builder",
     "env": {
       "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
       "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
@@ -11267,7 +11272,20 @@
         "hostname": "rdbhost"
       }
     },
-    "name": "install jazzy"
+    "name": "ensure_installed (2)",
+    "~followup_annotations": [
+      "@@@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-version:0.14.1--\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter/jazzy/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": [
diff --git a/recipes/engine/engine.expected/mac_no_lto.json b/recipes/engine/engine.expected/mac_no_lto.json
index ef744f2..182e3b8 100644
--- a/recipes/engine/engine.expected/mac_no_lto.json
+++ b/recipes/engine/engine.expected/mac_no_lto.json
@@ -11236,13 +11236,18 @@
   },
   {
     "cmd": [
-      "gem",
-      "install",
-      "jazzy:0.8.4",
-      "--install-dir",
-      "."
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/gems",
+      "-ensure-file",
+      "flutter/jazzy/${platform} version:0.14.1",
+      "-max-threads",
+      "0",
+      "-json-output",
+      "/path/to/tmp/json"
     ],
-    "cwd": "[START_DIR]/gems",
+    "cwd": "[CACHE]/builder",
     "env": {
       "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
       "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
@@ -11275,7 +11280,20 @@
         "hostname": "rdbhost"
       }
     },
-    "name": "install jazzy"
+    "name": "ensure_installed (2)",
+    "~followup_annotations": [
+      "@@@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-version:0.14.1--\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter/jazzy/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": [
diff --git a/recipes/engine/engine.expected/mac_no_lto_font_subset.json b/recipes/engine/engine.expected/mac_no_lto_font_subset.json
index ef744f2..182e3b8 100644
--- a/recipes/engine/engine.expected/mac_no_lto_font_subset.json
+++ b/recipes/engine/engine.expected/mac_no_lto_font_subset.json
@@ -11236,13 +11236,18 @@
   },
   {
     "cmd": [
-      "gem",
-      "install",
-      "jazzy:0.8.4",
-      "--install-dir",
-      "."
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/gems",
+      "-ensure-file",
+      "flutter/jazzy/${platform} version:0.14.1",
+      "-max-threads",
+      "0",
+      "-json-output",
+      "/path/to/tmp/json"
     ],
-    "cwd": "[START_DIR]/gems",
+    "cwd": "[CACHE]/builder",
     "env": {
       "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
       "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
@@ -11275,7 +11280,20 @@
         "hostname": "rdbhost"
       }
     },
-    "name": "install jazzy"
+    "name": "ensure_installed (2)",
+    "~followup_annotations": [
+      "@@@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-version:0.14.1--\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter/jazzy/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": [
diff --git a/recipes/engine/engine.expected/mac_publish_cipd.json b/recipes/engine/engine.expected/mac_publish_cipd.json
index f54b4ad..cd391c5 100644
--- a/recipes/engine/engine.expected/mac_publish_cipd.json
+++ b/recipes/engine/engine.expected/mac_publish_cipd.json
@@ -11228,13 +11228,18 @@
   },
   {
     "cmd": [
-      "gem",
-      "install",
-      "jazzy:0.8.4",
-      "--install-dir",
-      "."
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/gems",
+      "-ensure-file",
+      "flutter/jazzy/${platform} version:0.14.1",
+      "-max-threads",
+      "0",
+      "-json-output",
+      "/path/to/tmp/json"
     ],
-    "cwd": "[START_DIR]/gems",
+    "cwd": "[CACHE]/builder",
     "env": {
       "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
       "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
@@ -11267,7 +11272,20 @@
         "hostname": "rdbhost"
       }
     },
-    "name": "install jazzy"
+    "name": "ensure_installed (2)",
+    "~followup_annotations": [
+      "@@@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-version:0.14.1--\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter/jazzy/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": [
diff --git a/recipes/engine/engine.expected/mac_publish_cipd_font_subset.json b/recipes/engine/engine.expected/mac_publish_cipd_font_subset.json
index f54b4ad..cd391c5 100644
--- a/recipes/engine/engine.expected/mac_publish_cipd_font_subset.json
+++ b/recipes/engine/engine.expected/mac_publish_cipd_font_subset.json
@@ -11228,13 +11228,18 @@
   },
   {
     "cmd": [
-      "gem",
-      "install",
-      "jazzy:0.8.4",
-      "--install-dir",
-      "."
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/gems",
+      "-ensure-file",
+      "flutter/jazzy/${platform} version:0.14.1",
+      "-max-threads",
+      "0",
+      "-json-output",
+      "/path/to/tmp/json"
     ],
-    "cwd": "[START_DIR]/gems",
+    "cwd": "[CACHE]/builder",
     "env": {
       "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
       "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
@@ -11267,7 +11272,20 @@
         "hostname": "rdbhost"
       }
     },
-    "name": "install jazzy"
+    "name": "ensure_installed (2)",
+    "~followup_annotations": [
+      "@@@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-version:0.14.1--\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter/jazzy/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": [
diff --git a/recipes/engine/engine.expected/mac_publish_cipd_no_lto.json b/recipes/engine/engine.expected/mac_publish_cipd_no_lto.json
index ef744f2..182e3b8 100644
--- a/recipes/engine/engine.expected/mac_publish_cipd_no_lto.json
+++ b/recipes/engine/engine.expected/mac_publish_cipd_no_lto.json
@@ -11236,13 +11236,18 @@
   },
   {
     "cmd": [
-      "gem",
-      "install",
-      "jazzy:0.8.4",
-      "--install-dir",
-      "."
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/gems",
+      "-ensure-file",
+      "flutter/jazzy/${platform} version:0.14.1",
+      "-max-threads",
+      "0",
+      "-json-output",
+      "/path/to/tmp/json"
     ],
-    "cwd": "[START_DIR]/gems",
+    "cwd": "[CACHE]/builder",
     "env": {
       "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
       "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
@@ -11275,7 +11280,20 @@
         "hostname": "rdbhost"
       }
     },
-    "name": "install jazzy"
+    "name": "ensure_installed (2)",
+    "~followup_annotations": [
+      "@@@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-version:0.14.1--\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter/jazzy/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": [
diff --git a/recipes/engine/engine.expected/mac_publish_cipd_no_lto_font_subset.json b/recipes/engine/engine.expected/mac_publish_cipd_no_lto_font_subset.json
index ef744f2..182e3b8 100644
--- a/recipes/engine/engine.expected/mac_publish_cipd_no_lto_font_subset.json
+++ b/recipes/engine/engine.expected/mac_publish_cipd_no_lto_font_subset.json
@@ -11236,13 +11236,18 @@
   },
   {
     "cmd": [
-      "gem",
-      "install",
-      "jazzy:0.8.4",
-      "--install-dir",
-      "."
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/gems",
+      "-ensure-file",
+      "flutter/jazzy/${platform} version:0.14.1",
+      "-max-threads",
+      "0",
+      "-json-output",
+      "/path/to/tmp/json"
     ],
-    "cwd": "[START_DIR]/gems",
+    "cwd": "[CACHE]/builder",
     "env": {
       "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
       "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
@@ -11275,7 +11280,20 @@
         "hostname": "rdbhost"
       }
     },
-    "name": "install jazzy"
+    "name": "ensure_installed (2)",
+    "~followup_annotations": [
+      "@@@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-version:0.14.1--\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter/jazzy/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": [
diff --git a/recipes/engine/engine.expected/mac_upload.json b/recipes/engine/engine.expected/mac_upload.json
index bf9f7f8..e42ec19 100644
--- a/recipes/engine/engine.expected/mac_upload.json
+++ b/recipes/engine/engine.expected/mac_upload.json
@@ -12401,13 +12401,18 @@
   },
   {
     "cmd": [
-      "gem",
-      "install",
-      "jazzy:0.8.4",
-      "--install-dir",
-      "."
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/gems",
+      "-ensure-file",
+      "flutter/jazzy/${platform} version:0.14.1",
+      "-max-threads",
+      "0",
+      "-json-output",
+      "/path/to/tmp/json"
     ],
-    "cwd": "[START_DIR]/gems",
+    "cwd": "[CACHE]/builder",
     "env": {
       "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
       "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
@@ -12440,7 +12445,20 @@
         "hostname": "rdbhost"
       }
     },
-    "name": "install jazzy"
+    "name": "ensure_installed (2)",
+    "~followup_annotations": [
+      "@@@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-version:0.14.1--\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter/jazzy/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": [
diff --git a/recipes/engine/engine.expected/mac_upload_font_subset.json b/recipes/engine/engine.expected/mac_upload_font_subset.json
index 10195c2..cfa8f1e 100644
--- a/recipes/engine/engine.expected/mac_upload_font_subset.json
+++ b/recipes/engine/engine.expected/mac_upload_font_subset.json
@@ -12503,13 +12503,18 @@
   },
   {
     "cmd": [
-      "gem",
-      "install",
-      "jazzy:0.8.4",
-      "--install-dir",
-      "."
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/gems",
+      "-ensure-file",
+      "flutter/jazzy/${platform} version:0.14.1",
+      "-max-threads",
+      "0",
+      "-json-output",
+      "/path/to/tmp/json"
     ],
-    "cwd": "[START_DIR]/gems",
+    "cwd": "[CACHE]/builder",
     "env": {
       "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
       "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
@@ -12542,7 +12547,20 @@
         "hostname": "rdbhost"
       }
     },
-    "name": "install jazzy"
+    "name": "ensure_installed (2)",
+    "~followup_annotations": [
+      "@@@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-version:0.14.1--\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter/jazzy/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": [
diff --git a/recipes/engine/engine.expected/mac_upload_no_lto.json b/recipes/engine/engine.expected/mac_upload_no_lto.json
index ce7d4f1..cd86163 100644
--- a/recipes/engine/engine.expected/mac_upload_no_lto.json
+++ b/recipes/engine/engine.expected/mac_upload_no_lto.json
@@ -12409,13 +12409,18 @@
   },
   {
     "cmd": [
-      "gem",
-      "install",
-      "jazzy:0.8.4",
-      "--install-dir",
-      "."
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/gems",
+      "-ensure-file",
+      "flutter/jazzy/${platform} version:0.14.1",
+      "-max-threads",
+      "0",
+      "-json-output",
+      "/path/to/tmp/json"
     ],
-    "cwd": "[START_DIR]/gems",
+    "cwd": "[CACHE]/builder",
     "env": {
       "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
       "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
@@ -12448,7 +12453,20 @@
         "hostname": "rdbhost"
       }
     },
-    "name": "install jazzy"
+    "name": "ensure_installed (2)",
+    "~followup_annotations": [
+      "@@@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-version:0.14.1--\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter/jazzy/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": [
diff --git a/recipes/engine/engine.expected/mac_upload_no_lto_font_subset.json b/recipes/engine/engine.expected/mac_upload_no_lto_font_subset.json
index 3a26654..4f5b21c 100644
--- a/recipes/engine/engine.expected/mac_upload_no_lto_font_subset.json
+++ b/recipes/engine/engine.expected/mac_upload_no_lto_font_subset.json
@@ -12511,13 +12511,18 @@
   },
   {
     "cmd": [
-      "gem",
-      "install",
-      "jazzy:0.8.4",
-      "--install-dir",
-      "."
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/gems",
+      "-ensure-file",
+      "flutter/jazzy/${platform} version:0.14.1",
+      "-max-threads",
+      "0",
+      "-json-output",
+      "/path/to/tmp/json"
     ],
-    "cwd": "[START_DIR]/gems",
+    "cwd": "[CACHE]/builder",
     "env": {
       "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
       "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
@@ -12550,7 +12555,20 @@
         "hostname": "rdbhost"
       }
     },
-    "name": "install jazzy"
+    "name": "ensure_installed (2)",
+    "~followup_annotations": [
+      "@@@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-version:0.14.1--\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter/jazzy/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": [
diff --git a/recipes/engine/engine.expected/mac_upload_publish_cipd.json b/recipes/engine/engine.expected/mac_upload_publish_cipd.json
index bf9f7f8..e42ec19 100644
--- a/recipes/engine/engine.expected/mac_upload_publish_cipd.json
+++ b/recipes/engine/engine.expected/mac_upload_publish_cipd.json
@@ -12401,13 +12401,18 @@
   },
   {
     "cmd": [
-      "gem",
-      "install",
-      "jazzy:0.8.4",
-      "--install-dir",
-      "."
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/gems",
+      "-ensure-file",
+      "flutter/jazzy/${platform} version:0.14.1",
+      "-max-threads",
+      "0",
+      "-json-output",
+      "/path/to/tmp/json"
     ],
-    "cwd": "[START_DIR]/gems",
+    "cwd": "[CACHE]/builder",
     "env": {
       "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
       "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
@@ -12440,7 +12445,20 @@
         "hostname": "rdbhost"
       }
     },
-    "name": "install jazzy"
+    "name": "ensure_installed (2)",
+    "~followup_annotations": [
+      "@@@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-version:0.14.1--\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter/jazzy/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": [
diff --git a/recipes/engine/engine.expected/mac_upload_publish_cipd_font_subset.json b/recipes/engine/engine.expected/mac_upload_publish_cipd_font_subset.json
index 10195c2..cfa8f1e 100644
--- a/recipes/engine/engine.expected/mac_upload_publish_cipd_font_subset.json
+++ b/recipes/engine/engine.expected/mac_upload_publish_cipd_font_subset.json
@@ -12503,13 +12503,18 @@
   },
   {
     "cmd": [
-      "gem",
-      "install",
-      "jazzy:0.8.4",
-      "--install-dir",
-      "."
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/gems",
+      "-ensure-file",
+      "flutter/jazzy/${platform} version:0.14.1",
+      "-max-threads",
+      "0",
+      "-json-output",
+      "/path/to/tmp/json"
     ],
-    "cwd": "[START_DIR]/gems",
+    "cwd": "[CACHE]/builder",
     "env": {
       "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
       "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
@@ -12542,7 +12547,20 @@
         "hostname": "rdbhost"
       }
     },
-    "name": "install jazzy"
+    "name": "ensure_installed (2)",
+    "~followup_annotations": [
+      "@@@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-version:0.14.1--\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter/jazzy/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": [
diff --git a/recipes/engine/engine.expected/mac_upload_publish_cipd_no_lto.json b/recipes/engine/engine.expected/mac_upload_publish_cipd_no_lto.json
index ce7d4f1..cd86163 100644
--- a/recipes/engine/engine.expected/mac_upload_publish_cipd_no_lto.json
+++ b/recipes/engine/engine.expected/mac_upload_publish_cipd_no_lto.json
@@ -12409,13 +12409,18 @@
   },
   {
     "cmd": [
-      "gem",
-      "install",
-      "jazzy:0.8.4",
-      "--install-dir",
-      "."
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/gems",
+      "-ensure-file",
+      "flutter/jazzy/${platform} version:0.14.1",
+      "-max-threads",
+      "0",
+      "-json-output",
+      "/path/to/tmp/json"
     ],
-    "cwd": "[START_DIR]/gems",
+    "cwd": "[CACHE]/builder",
     "env": {
       "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
       "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
@@ -12448,7 +12453,20 @@
         "hostname": "rdbhost"
       }
     },
-    "name": "install jazzy"
+    "name": "ensure_installed (2)",
+    "~followup_annotations": [
+      "@@@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-version:0.14.1--\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter/jazzy/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": [
diff --git a/recipes/engine/engine.expected/mac_upload_publish_cipd_no_lto_font_subset.json b/recipes/engine/engine.expected/mac_upload_publish_cipd_no_lto_font_subset.json
index 3a26654..4f5b21c 100644
--- a/recipes/engine/engine.expected/mac_upload_publish_cipd_no_lto_font_subset.json
+++ b/recipes/engine/engine.expected/mac_upload_publish_cipd_no_lto_font_subset.json
@@ -12511,13 +12511,18 @@
   },
   {
     "cmd": [
-      "gem",
-      "install",
-      "jazzy:0.8.4",
-      "--install-dir",
-      "."
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/gems",
+      "-ensure-file",
+      "flutter/jazzy/${platform} version:0.14.1",
+      "-max-threads",
+      "0",
+      "-json-output",
+      "/path/to/tmp/json"
     ],
-    "cwd": "[START_DIR]/gems",
+    "cwd": "[CACHE]/builder",
     "env": {
       "ANDROID_HOME": "[CACHE]/builder/src/third_party/android_tools/sdk",
       "FLUTTER_LOGS_DIR": "[CLEANUP]/flutter_logs_dir",
@@ -12550,7 +12555,20 @@
         "hostname": "rdbhost"
       }
     },
-    "name": "install jazzy"
+    "name": "ensure_installed (2)",
+    "~followup_annotations": [
+      "@@@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-version:0.14.1--\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"flutter/jazzy/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": [
diff --git a/recipes/engine/engine.py b/recipes/engine/engine.py
index 41de632..ca7a344 100644
--- a/recipes/engine/engine.py
+++ b/recipes/engine/engine.py
@@ -1644,13 +1644,12 @@
   gem_dir = api.path['start_dir'].join('gems')
   api.file.ensure_directory('mkdir gems', gem_dir)
 
-  with api.context(cwd=gem_dir):
-    api.step(
-        'install jazzy', [
-            'gem', 'install', 'jazzy:' + api.properties['jazzy_version'],
-            '--install-dir', '.'
-        ]
-    )
+  api.cipd.ensure(
+      gem_dir,
+      api.cipd.EnsureFile().add_package(
+          'flutter/jazzy/${platform}', 'version:0.14.1'
+      )
+  )
   with api.context(env={"GEM_HOME": gem_dir},
                    env_prefixes={'PATH': [gem_dir.join('bin')]}):
     yield