1 [ 2 { 3 "cmd": [ 4 "python", 5 "-u", 6 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 7 "--json-output", 8 "/path/to/tmp/json", 9 "ensure-directory", 10 "--mode", 11 "0777", 12 "[CUSTOM_/_B_WORK]/flutter" 13 ], 14 "infra_step": true, 15 "name": "makedirs checkout_path" 16 }, 17 { 18 "cmd": [ 19 "python", 20 "-u", 21 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 22 "--json-output", 23 "/path/to/tmp/json", 24 "remove", 25 "[CUSTOM_/_B_WORK]/flutter/.gclient_entries" 26 ], 27 "infra_step": true, 28 "name": "remove [CUSTOM_/_B_WORK]/flutter/.gclient_entries" 29 }, 30 { 31 "cmd": [ 32 "python", 33 "-u", 34 "RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py", 35 "--spec-path", 36 "cache_dir = '[CUSTOM_/_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': True, 'name': 'src/flutter', 'url': 'https://github.com/flutter/engine.git'}]\ntarget_os = ['android']", 37 "--patch_root", 38 "src/third_party/skia", 39 "--revision_mapping_file", 40 "{\"got_flutter_revision\": \"src/flutter\", \"got_revision\": \"src/third_party/skia\"}", 41 "--git-cache-dir", 42 "[CUSTOM_/_B_CACHE]", 43 "--cleanup-dir", 44 "[CLEANUP]/bot_update", 45 "--output_json", 46 "/path/to/tmp/json", 47 "--revision", 48 "src/flutter@origin/master", 49 "--revision", 50 "src/third_party/skia@abc123" 51 ], 52 "cwd": "[CUSTOM_/_B_WORK]/flutter", 53 "env_prefixes": { 54 "PATH": [ 55 "RECIPE_PACKAGE_REPO[depot_tools]" 56 ] 57 }, 58 "infra_step": true, 59 "name": "bot_update", 60 "~followup_annotations": [ 61 "@@@STEP_TEXT@Some step text@@@", 62 "@@@STEP_LOG_LINE (a] json.output@{@@@", 63 "@@@STEP_LOG_LINE (a] json.output@ \"did_run\": true, @@@", 64 "@@@STEP_LOG_LINE (a] json.output@ \"fixed_revisions\": {@@@", 65 "@@@STEP_LOG_LINE (a] json.output@ \"src/flutter\": \"origin/master\", @@@", 66 "@@@STEP_LOG_LINE (a] json.output@ \"src/third_party/skia\": \"abc123\"@@@", 67 "@@@STEP_LOG_LINE (a] json.output@ }, @@@", 68 "@@@STEP_LOG_LINE (a] json.output@ \"manifest\": {@@@", 69 "@@@STEP_LOG_LINE (a] json.output@ \"src/flutter\": {@@@", 70 "@@@STEP_LOG_LINE (a] json.output@ \"repository\": \"https://fake.org/src/flutter.git\", @@@", 71 "@@@STEP_LOG_LINE (a] json.output@ \"revision\": \"9221bca00ddbd888260084def81f09543281b952\"@@@", 72 "@@@STEP_LOG_LINE (a] json.output@ }, @@@", 73 "@@@STEP_LOG_LINE (a] json.output@ \"src/third_party/skia\": {@@@", 74 "@@@STEP_LOG_LINE (a] json.output@ \"repository\": \"https://fake.org/src/third_party/skia.git\", @@@", 75 "@@@STEP_LOG_LINE (a] json.output@ \"revision\": \"d9c4a4d173a97ef2832b65636b4200bb93ea8ee1\"@@@", 76 "@@@STEP_LOG_LINE (a] json.output@ }@@@", 77 "@@@STEP_LOG_LINE (a] json.output@ }, @@@", 78 "@@@STEP_LOG_LINE (a] json.output@ \"patch_failure\": false, @@@", 79 "@@@STEP_LOG_LINE (a] json.output@ \"patch_root\": \"src/third_party/skia\", @@@", 80 "@@@STEP_LOG_LINE (a] json.output@ \"properties\": {@@@", 81 "@@@STEP_LOG_LINE (a] json.output@ \"got_flutter_revision\": \"9221bca00ddbd888260084def81f09543281b952\", @@@", 82 "@@@STEP_LOG_LINE (a] json.output@ \"got_flutter_revision_cp\": \"refs/heads/master@{#84512}\", @@@", 83 "@@@STEP_LOG_LINE (a] json.output@ \"got_revision\": \"d9c4a4d173a97ef2832b65636b4200bb93ea8ee1\", @@@", 84 "@@@STEP_LOG_LINE (a] json.output@ \"got_revision_cp\": \"refs/heads/master@{#143121}\"@@@", 85 "@@@STEP_LOG_LINE (a] json.output@ }, @@@", 86 "@@@STEP_LOG_LINE (a] json.output@ \"root\": \"src/flutter\", @@@", 87 "@@@STEP_LOG_LINE (a] json.output@ \"source_manifest\": {@@@", 88 "@@@STEP_LOG_LINE (a] json.output@ \"directories\": {@@@", 89 "@@@STEP_LOG_LINE (a] json.output@ \"src/flutter\": {@@@", 90 "@@@STEP_LOG_LINE (a] json.output@ \"git_checkout\": {@@@", 91 "@@@STEP_LOG_LINE (a] json.output@ \"repo_url\": \"https://fake.org/src/flutter.git\", @@@", 92 "@@@STEP_LOG_LINE (a] json.output@ \"revision\": \"9221bca00ddbd888260084def81f09543281b952\"@@@", 93 "@@@STEP_LOG_LINE (a] json.output@ }@@@", 94 "@@@STEP_LOG_LINE (a] json.output@ }, @@@", 95 "@@@STEP_LOG_LINE (a] json.output@ \"src/third_party/skia\": {@@@", 96 "@@@STEP_LOG_LINE (a] json.output@ \"git_checkout\": {@@@", 97 "@@@STEP_LOG_LINE (a] json.output@ \"repo_url\": \"https://fake.org/src/third_party/skia.git\", @@@", 98 "@@@STEP_LOG_LINE (a] json.output@ \"revision\": \"d9c4a4d173a97ef2832b65636b4200bb93ea8ee1\"@@@", 99 "@@@STEP_LOG_LINE (a] json.output@ }@@@", 100 "@@@STEP_LOG_LINE (a] json.output@ }@@@", 101 "@@@STEP_LOG_LINE (a] json.output@ }, @@@", 102 "@@@STEP_LOG_LINE (a] json.output@ \"version\": 0@@@", 103 "@@@STEP_LOG_LINE (a] json.output@ }, @@@", 104 "@@@STEP_LOG_LINE (a] json.output@ \"step_text\": \"Some step text\"@@@", 105 "@@@STEP_LOG_LINE (a] json.output@}@@@", 106 "@@@STEP_LOG_END (a] json.output@@@", 107 "@@@SET_BUILD_PROPERTY@got_flutter_revision@\"9221bca00ddbd888260084def81f09543281b952\"@@@", 108 "@@@SET_BUILD_PROPERTY@got_flutter_revision_cp@\"refs/heads/master@{#84512}\"@@@", 109 "@@@SET_BUILD_PROPERTY@got_revision@\"d9c4a4d173a97ef2832b65636b4200bb93ea8ee1\"@@@", 110 "@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#143121}\"@@@" 111 ] 112 }, 113 { 114 "cmd": [ 115 "python", 116 "-u", 117 "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py", 118 "--path", 119 "[CUSTOM_/_B_WORK]/flutter/depot_tools", 120 "--url", 121 "https://chromium.googlesource.com/chromium/tools/depot_tools.git" 122 ], 123 "cwd": "[CUSTOM_/_B_WORK]/flutter/src", 124 "name": "git setup" 125 }, 126 { 127 "cmd": [ 128 "git", 129 "retry", 130 "fetch", 131 "origin", 132 "master", 133 "--progress" 134 ], 135 "cwd": "[CUSTOM_/_B_WORK]/flutter/depot_tools", 136 "env": { 137 "PATH": "RECIPE_PACKAGE_REPO[depot_tools]:<PATH>" 138 }, 139 "infra_step": true, 140 "name": "git fetch" 141 }, 142 { 143 "cmd": [ 144 "git", 145 "checkout", 146 "-f", 147 "FETCH_HEAD" 148 ], 149 "cwd": "[CUSTOM_/_B_WORK]/flutter/depot_tools", 150 "infra_step": true, 151 "name": "git checkout" 152 }, 153 { 154 "cmd": [ 155 "git", 156 "rev-parse", 157 "HEAD" 158 ], 159 "cwd": "[CUSTOM_/_B_WORK]/flutter/depot_tools", 160 "infra_step": true, 161 "name": "read revision", 162 "stdout": "/path/to/tmp/", 163 "~followup_annotations": [ 164 "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@" 165 ] 166 }, 167 { 168 "cmd": [ 169 "git", 170 "clean", 171 "-f", 172 "-d", 173 "-x" 174 ], 175 "cwd": "[CUSTOM_/_B_WORK]/flutter/depot_tools", 176 "infra_step": true, 177 "name": "git clean" 178 }, 179 { 180 "cmd": [ 181 "git", 182 "submodule", 183 "sync" 184 ], 185 "cwd": "[CUSTOM_/_B_WORK]/flutter/depot_tools", 186 "infra_step": true, 187 "name": "submodule sync" 188 }, 189 { 190 "cmd": [ 191 "git", 192 "submodule", 193 "update", 194 "--init", 195 "--recursive" 196 ], 197 "cwd": "[CUSTOM_/_B_WORK]/flutter/depot_tools", 198 "infra_step": true, 199 "name": "submodule update" 200 }, 201 { 202 "cmd": [ 203 "[CUSTOM_/_B_WORK]/flutter/depot_tools/gclient", 204 "runhooks" 205 ], 206 "cwd": "[CUSTOM_/_B_WORK]/flutter/src", 207 "env": { 208 "BUILDTYPE": "Release", 209 "CHROME_HEADLESS": "1", 210 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 211 "SKIA_OUT": "[CUSTOM_/_B_WORK]/flutter/src/third_party/skia/out/Build-Debian9-GCC-x86_64-Release-Flutter_Android" 212 }, 213 "name": "runhook" 214 }, 215 { 216 "cmd": [ 217 "python", 218 "-u", 219 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", 220 "--json-output", 221 "/path/to/tmp/json", 222 "rmtree", 223 "[CUSTOM_/_B_WORK]/flutter/src/out/android_release" 224 ], 225 "cwd": "[CUSTOM_/_B_WORK]/flutter/src", 226 "infra_step": true, 227 "name": "rmtree android_release" 228 }, 229 { 230 "cmd": [ 231 "flutter/tools/gn", 232 "--runtime-mode=release", 233 "--android" 234 ], 235 "cwd": "[CUSTOM_/_B_WORK]/flutter/src", 236 "env": { 237 "BUILDTYPE": "Release", 238 "CHROME_HEADLESS": "1", 239 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 240 "SKIA_OUT": "[CUSTOM_/_B_WORK]/flutter/src/third_party/skia/out/Build-Debian9-GCC-x86_64-Release-Flutter_Android" 241 }, 242 "name": "gn_gen" 243 }, 244 { 245 "cmd": [ 246 "ninja", 247 "-C", 248 "out/android_release", 249 "-j100" 250 ], 251 "cwd": "[CUSTOM_/_B_WORK]/flutter/src", 252 "env": { 253 "BUILDTYPE": "Release", 254 "CHROME_HEADLESS": "1", 255 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]", 256 "SKIA_OUT": "[CUSTOM_/_B_WORK]/flutter/src/third_party/skia/out/Build-Debian9-GCC-x86_64-Release-Flutter_Android" 257 }, 258 "name": "build_flutter" 259 }, 260 { 261 "cmd": [ 262 "python", 263 "-u", 264 "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products_whitelist:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n", 265 "[CUSTOM_/_B_WORK]/flutter/src/third_party/skia/out/Build-Debian9-GCC-x86_64-Release-Flutter_Android/Release", 266 "[CUSTOM_[SWARM_OUT_DIR]]/out/Release" 267 ], 268 "infra_step": true, 269 "name": "copy build products", 270 "~followup_annotations": [ 271 "@@@STEP_LOG_LINE (a] python.inline@import errno@@@", 272 "@@@STEP_LOG_LINE (a] python.inline@import glob@@@", 273 "@@@STEP_LOG_LINE (a] python.inline@import os@@@", 274 "@@@STEP_LOG_LINE (a] python.inline@import shutil@@@", 275 "@@@STEP_LOG_LINE (a] python.inline@import sys@@@", 276 "@@@STEP_LOG_LINE (a] python.inline@@@@", 277 "@@@STEP_LOG_LINE (a] python.inline@src = sys.argv[1]@@@", 278 "@@@STEP_LOG_LINE (a] python.inline@dst = sys.argv[2]@@@", 279 "@@@STEP_LOG_LINE (a] python.inline@build_products_whitelist = ['bookmaker', 'dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'lib/*.so']@@@", 280 "@@@STEP_LOG_LINE (a] python.inline@@@@", 281 "@@@STEP_LOG_LINE (a] python.inline@try:@@@", 282 "@@@STEP_LOG_LINE (a] python.inline@ os.makedirs(dst)@@@", 283 "@@@STEP_LOG_LINE (a] python.inline@except OSError as e:@@@", 284 "@@@STEP_LOG_LINE (a] python.inline@ if e.errno != errno.EEXIST:@@@", 285 "@@@STEP_LOG_LINE (a] python.inline@ raise@@@", 286 "@@@STEP_LOG_LINE (a] python.inline@@@@", 287 "@@@STEP_LOG_LINE (a] python.inline@for pattern in build_products_whitelist:@@@", 288 "@@@STEP_LOG_LINE (a] python.inline@ path = os.path.join(src, pattern)@@@", 289 "@@@STEP_LOG_LINE (a] python.inline@ for f in glob.glob(path):@@@", 290 "@@@STEP_LOG_LINE (a] python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@", 291 "@@@STEP_LOG_LINE (a] python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@", 292 "@@@STEP_LOG_LINE (a] python.inline@ os.makedirs(os.path.dirname(dst_path))@@@", 293 "@@@STEP_LOG_LINE (a] python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@", 294 "@@@STEP_LOG_LINE (a] python.inline@ shutil.move(f, dst_path)@@@", 295 "@@@STEP_LOG_END (a] python.inline@@@" 296 ] 297 }, 298 { 299 "name": "$result", 300 "recipe_result": null, 301 "status_code": 0 302 } 303 ]