blob: 1ef47e08c407e27c9c110f50022ff801bd671c43 [file] [log] [blame]
Eric Borenb82fdc72017-04-19 13:36:00 -04001[
2 {
3 "cmd": [
4 "python",
5 "-u",
6 "[START_DIR]/skia/bin/fetch-gn"
7 ],
8 "cwd": "[START_DIR]/skia",
9 "env": {
10 "BUILDTYPE": "Debug",
11 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -070012 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -040013 "SKIA_OUT": "[START_DIR]/out"
14 },
15 "infra_step": true,
16 "name": "fetch-gn"
17 },
18 {
19 "cmd": [
20 "[START_DIR]/skia/bin/gn",
21 "gen",
22 "[START_DIR]/out/Debug",
23 "--args=extra_cflags=[\"-O1\"] ndk=\"[START_DIR]/android_ndk_linux\" target_cpu=\"None\""
24 ],
25 "cwd": "[START_DIR]/skia",
26 "env": {
27 "BUILDTYPE": "Debug",
28 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -070029 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -040030 "SKIA_OUT": "[START_DIR]/out"
31 },
32 "name": "gn gen"
33 },
34 {
35 "cmd": [
36 "ninja",
37 "-C",
38 "[START_DIR]/out/Debug"
39 ],
40 "cwd": "[START_DIR]/skia",
41 "env": {
42 "BUILDTYPE": "Debug",
43 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -070044 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -040045 "SKIA_OUT": "[START_DIR]/out"
46 },
47 "name": "ninja"
48 },
49 {
50 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -040051 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -040052 "push",
53 "file.txt",
54 "file.txt"
55 ],
56 "cwd": "[START_DIR]/skia",
57 "env": {
58 "BUILDTYPE": "Debug",
59 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -070060 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -040061 "SKIA_OUT": "[START_DIR]/out"
62 },
63 "infra_step": true,
64 "name": "push file.txt file.txt"
65 },
66 {
67 "cmd": [
68 "python",
69 "-u",
Eric Boren3e2ffd72017-06-16 13:10:22 -040070 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
71 "--json-output",
72 "/path/to/tmp/json",
Eric Borenb82fdc72017-04-19 13:36:00 -040073 "rmtree",
74 "results_dir"
75 ],
Eric Borenb82fdc72017-04-19 13:36:00 -040076 "infra_step": true,
77 "name": "rmtree results_dir"
78 },
79 {
80 "cmd": [
81 "python",
82 "-u",
Robert Iannucci8cd50412017-07-07 14:36:58 -070083 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
84 "--json-output",
85 "/path/to/tmp/json",
86 "ensure-directory",
87 "--mode",
88 "0777",
89 "results_dir"
Eric Borenb82fdc72017-04-19 13:36:00 -040090 ],
91 "infra_step": true,
Robert Iannucci8cd50412017-07-07 14:36:58 -070092 "name": "makedirs results_dir"
Eric Borenb82fdc72017-04-19 13:36:00 -040093 },
94 {
95 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -040096 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -040097 "shell",
98 "rm",
99 "-rf",
100 "device_results_dir"
101 ],
102 "cwd": "[START_DIR]/skia",
103 "env": {
104 "BUILDTYPE": "Debug",
105 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700106 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400107 "SKIA_OUT": "[START_DIR]/out"
108 },
109 "infra_step": true,
110 "name": "rm device_results_dir"
111 },
112 {
113 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400114 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400115 "shell",
116 "mkdir",
117 "-p",
118 "device_results_dir"
119 ],
120 "cwd": "[START_DIR]/skia",
121 "env": {
122 "BUILDTYPE": "Debug",
123 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700124 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400125 "SKIA_OUT": "[START_DIR]/out"
126 },
127 "infra_step": true,
128 "name": "mkdir device_results_dir"
129 },
130 {
131 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400132 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400133 "shell",
134 "mkdir",
135 "-p",
136 "/sdcard/revenge_of_the_skiabot/resources"
137 ],
138 "cwd": "[START_DIR]/skia",
139 "env": {
140 "BUILDTYPE": "Debug",
141 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700142 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400143 "SKIA_OUT": "[START_DIR]/out"
144 },
145 "infra_step": true,
146 "name": "mkdir /sdcard/revenge_of_the_skiabot/resources"
147 },
148 {
149 "cmd": [
150 "python",
151 "-u",
Kevin Lubick587afc92017-10-12 12:21:47 -0400152 "\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb.1.0.35', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
Eric Borenb82fdc72017-04-19 13:36:00 -0400153 "[START_DIR]/skia/resources",
154 "/sdcard/revenge_of_the_skiabot/resources"
155 ],
156 "env": {
157 "BUILDTYPE": "Debug",
158 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700159 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400160 "SKIA_OUT": "[START_DIR]/out"
161 },
162 "infra_step": true,
163 "name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources",
164 "~followup_annotations": [
165 "@@@STEP_LOG_LINE@python.inline@@@@",
166 "@@@STEP_LOG_LINE@python.inline@import os@@@",
167 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
168 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
169 "@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
170 "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
171 "@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
172 "@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
173 "@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
174 "@@@STEP_LOG_LINE@python.inline@ continue@@@",
175 "@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
176 "@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
Kevin Lubick587afc92017-10-12 12:21:47 -0400177 "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb.1.0.35', 'push',@@@",
Eric Borenb82fdc72017-04-19 13:36:00 -0400178 "@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
179 "@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
180 "@@@STEP_LOG_END@python.inline@@@"
181 ]
182 },
183 {
184 "cmd": [
185 "python",
186 "-u",
Eric Boren3e2ffd72017-06-16 13:10:22 -0400187 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
188 "--json-output",
189 "/path/to/tmp/json",
190 "copy",
Eric Borenb82fdc72017-04-19 13:36:00 -0400191 "[START_DIR]/skia/infra/bots/assets/skp/VERSION",
192 "/path/to/tmp/"
193 ],
194 "infra_step": true,
195 "name": "Get downloaded SKP VERSION"
196 },
197 {
198 "cmd": [
199 "python",
200 "-u",
Eric Boren3e2ffd72017-06-16 13:10:22 -0400201 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
202 "--json-output",
203 "/path/to/tmp/json",
204 "copy",
Eric Borenb82fdc72017-04-19 13:36:00 -0400205 "42",
206 "[START_DIR]/tmp/SKP_VERSION"
207 ],
208 "infra_step": true,
209 "name": "write SKP_VERSION"
210 },
211 {
212 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400213 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400214 "shell",
215 "cat",
216 "/sdcard/revenge_of_the_skiabot/SKP_VERSION"
217 ],
218 "cwd": "[START_DIR]/skia",
219 "env": {
220 "BUILDTYPE": "Debug",
221 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700222 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400223 "SKIA_OUT": "[START_DIR]/out"
224 },
225 "infra_step": true,
226 "name": "read /sdcard/revenge_of_the_skiabot/SKP_VERSION",
227 "stdout": "/path/to/tmp/"
228 },
229 {
230 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400231 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400232 "shell",
233 "rm",
234 "-f",
235 "/sdcard/revenge_of_the_skiabot/SKP_VERSION"
236 ],
237 "cwd": "[START_DIR]/skia",
238 "env": {
239 "BUILDTYPE": "Debug",
240 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700241 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400242 "SKIA_OUT": "[START_DIR]/out"
243 },
244 "infra_step": true,
245 "name": "rm /sdcard/revenge_of_the_skiabot/SKP_VERSION"
246 },
247 {
248 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400249 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400250 "shell",
251 "rm",
252 "-rf",
253 "/sdcard/revenge_of_the_skiabot/skps"
254 ],
255 "cwd": "[START_DIR]/skia",
256 "env": {
257 "BUILDTYPE": "Debug",
258 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700259 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400260 "SKIA_OUT": "[START_DIR]/out"
261 },
262 "infra_step": true,
263 "name": "rm /sdcard/revenge_of_the_skiabot/skps"
264 },
265 {
266 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400267 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400268 "shell",
269 "mkdir",
270 "-p",
271 "/sdcard/revenge_of_the_skiabot/skps"
272 ],
273 "cwd": "[START_DIR]/skia",
274 "env": {
275 "BUILDTYPE": "Debug",
276 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700277 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400278 "SKIA_OUT": "[START_DIR]/out"
279 },
280 "infra_step": true,
281 "name": "mkdir /sdcard/revenge_of_the_skiabot/skps"
282 },
283 {
284 "cmd": [
285 "python",
286 "-u",
Kevin Lubick587afc92017-10-12 12:21:47 -0400287 "\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb.1.0.35', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
Eric Borenb82fdc72017-04-19 13:36:00 -0400288 "[START_DIR]/skp",
289 "/sdcard/revenge_of_the_skiabot/skps"
290 ],
291 "env": {
292 "BUILDTYPE": "Debug",
293 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700294 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400295 "SKIA_OUT": "[START_DIR]/out"
296 },
297 "infra_step": true,
298 "name": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps",
299 "~followup_annotations": [
300 "@@@STEP_LOG_LINE@python.inline@@@@",
301 "@@@STEP_LOG_LINE@python.inline@import os@@@",
302 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
303 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
304 "@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
305 "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
306 "@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
307 "@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
308 "@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
309 "@@@STEP_LOG_LINE@python.inline@ continue@@@",
310 "@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
311 "@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
Kevin Lubick587afc92017-10-12 12:21:47 -0400312 "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb.1.0.35', 'push',@@@",
Eric Borenb82fdc72017-04-19 13:36:00 -0400313 "@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
314 "@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
315 "@@@STEP_LOG_END@python.inline@@@"
316 ]
317 },
318 {
319 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400320 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400321 "push",
322 "[START_DIR]/tmp/SKP_VERSION",
323 "/sdcard/revenge_of_the_skiabot/SKP_VERSION"
324 ],
325 "cwd": "[START_DIR]/skia",
326 "env": {
327 "BUILDTYPE": "Debug",
328 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700329 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400330 "SKIA_OUT": "[START_DIR]/out"
331 },
332 "infra_step": true,
333 "name": "push [START_DIR]/tmp/SKP_VERSION /sdcard/revenge_of_the_skiabot/SKP_VERSION"
334 },
335 {
336 "cmd": [
337 "python",
338 "-u",
Eric Boren3e2ffd72017-06-16 13:10:22 -0400339 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
340 "--json-output",
341 "/path/to/tmp/json",
342 "copy",
Eric Borenb82fdc72017-04-19 13:36:00 -0400343 "[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
344 "/path/to/tmp/"
345 ],
346 "infra_step": true,
347 "name": "Get downloaded skimage VERSION"
348 },
349 {
350 "cmd": [
351 "python",
352 "-u",
Eric Boren3e2ffd72017-06-16 13:10:22 -0400353 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
354 "--json-output",
355 "/path/to/tmp/json",
356 "copy",
Eric Borenb82fdc72017-04-19 13:36:00 -0400357 "42",
358 "[START_DIR]/tmp/SK_IMAGE_VERSION"
359 ],
360 "infra_step": true,
361 "name": "write SK_IMAGE_VERSION"
362 },
363 {
364 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400365 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400366 "shell",
367 "cat",
368 "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
369 ],
370 "cwd": "[START_DIR]/skia",
371 "env": {
372 "BUILDTYPE": "Debug",
373 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700374 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400375 "SKIA_OUT": "[START_DIR]/out"
376 },
377 "infra_step": true,
378 "name": "read /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION",
379 "stdout": "/path/to/tmp/"
380 },
381 {
382 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400383 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400384 "shell",
385 "rm",
386 "-f",
387 "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
388 ],
389 "cwd": "[START_DIR]/skia",
390 "env": {
391 "BUILDTYPE": "Debug",
392 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700393 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400394 "SKIA_OUT": "[START_DIR]/out"
395 },
396 "infra_step": true,
397 "name": "rm /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
398 },
399 {
400 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400401 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400402 "shell",
403 "rm",
404 "-rf",
405 "/sdcard/revenge_of_the_skiabot/images"
406 ],
407 "cwd": "[START_DIR]/skia",
408 "env": {
409 "BUILDTYPE": "Debug",
410 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700411 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400412 "SKIA_OUT": "[START_DIR]/out"
413 },
414 "infra_step": true,
415 "name": "rm /sdcard/revenge_of_the_skiabot/images"
416 },
417 {
418 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400419 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400420 "shell",
421 "mkdir",
422 "-p",
423 "/sdcard/revenge_of_the_skiabot/images"
424 ],
425 "cwd": "[START_DIR]/skia",
426 "env": {
427 "BUILDTYPE": "Debug",
428 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700429 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400430 "SKIA_OUT": "[START_DIR]/out"
431 },
432 "infra_step": true,
433 "name": "mkdir /sdcard/revenge_of_the_skiabot/images"
434 },
435 {
436 "cmd": [
437 "python",
438 "-u",
Kevin Lubick587afc92017-10-12 12:21:47 -0400439 "\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb.1.0.35', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
Eric Borenb82fdc72017-04-19 13:36:00 -0400440 "[START_DIR]/skimage",
441 "/sdcard/revenge_of_the_skiabot/images"
442 ],
443 "env": {
444 "BUILDTYPE": "Debug",
445 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700446 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400447 "SKIA_OUT": "[START_DIR]/out"
448 },
449 "infra_step": true,
450 "name": "push [START_DIR]/skimage/* /sdcard/revenge_of_the_skiabot/images",
451 "~followup_annotations": [
452 "@@@STEP_LOG_LINE@python.inline@@@@",
453 "@@@STEP_LOG_LINE@python.inline@import os@@@",
454 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
455 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
456 "@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
457 "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
458 "@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
459 "@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
460 "@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
461 "@@@STEP_LOG_LINE@python.inline@ continue@@@",
462 "@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
463 "@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
Kevin Lubick587afc92017-10-12 12:21:47 -0400464 "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb.1.0.35', 'push',@@@",
Eric Borenb82fdc72017-04-19 13:36:00 -0400465 "@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
466 "@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
467 "@@@STEP_LOG_END@python.inline@@@"
468 ]
469 },
470 {
471 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400472 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400473 "push",
474 "[START_DIR]/tmp/SK_IMAGE_VERSION",
475 "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
476 ],
477 "cwd": "[START_DIR]/skia",
478 "env": {
479 "BUILDTYPE": "Debug",
480 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700481 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400482 "SKIA_OUT": "[START_DIR]/out"
483 },
484 "infra_step": true,
485 "name": "push [START_DIR]/tmp/SK_IMAGE_VERSION /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
486 },
487 {
488 "cmd": [
489 "python",
490 "-u",
Eric Boren3e2ffd72017-06-16 13:10:22 -0400491 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
492 "--json-output",
493 "/path/to/tmp/json",
494 "copy",
Eric Borenb82fdc72017-04-19 13:36:00 -0400495 "[START_DIR]/skia/infra/bots/assets/svg/VERSION",
496 "/path/to/tmp/"
497 ],
498 "infra_step": true,
499 "name": "Get downloaded SVG VERSION"
500 },
501 {
502 "cmd": [
503 "python",
504 "-u",
Eric Boren3e2ffd72017-06-16 13:10:22 -0400505 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
506 "--json-output",
507 "/path/to/tmp/json",
508 "copy",
Eric Borenb82fdc72017-04-19 13:36:00 -0400509 "42",
510 "[START_DIR]/tmp/SVG_VERSION"
511 ],
512 "infra_step": true,
513 "name": "write SVG_VERSION"
514 },
515 {
516 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400517 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400518 "shell",
519 "cat",
520 "/sdcard/revenge_of_the_skiabot/SVG_VERSION"
521 ],
522 "cwd": "[START_DIR]/skia",
523 "env": {
524 "BUILDTYPE": "Debug",
525 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700526 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400527 "SKIA_OUT": "[START_DIR]/out"
528 },
529 "infra_step": true,
530 "name": "read /sdcard/revenge_of_the_skiabot/SVG_VERSION",
531 "stdout": "/path/to/tmp/"
532 },
533 {
534 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400535 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400536 "shell",
537 "rm",
538 "-f",
539 "/sdcard/revenge_of_the_skiabot/SVG_VERSION"
540 ],
541 "cwd": "[START_DIR]/skia",
542 "env": {
543 "BUILDTYPE": "Debug",
544 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700545 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400546 "SKIA_OUT": "[START_DIR]/out"
547 },
548 "infra_step": true,
549 "name": "rm /sdcard/revenge_of_the_skiabot/SVG_VERSION"
550 },
551 {
552 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400553 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400554 "shell",
555 "rm",
556 "-rf",
557 "/sdcard/revenge_of_the_skiabot/svgs"
558 ],
559 "cwd": "[START_DIR]/skia",
560 "env": {
561 "BUILDTYPE": "Debug",
562 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700563 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400564 "SKIA_OUT": "[START_DIR]/out"
565 },
566 "infra_step": true,
567 "name": "rm /sdcard/revenge_of_the_skiabot/svgs"
568 },
569 {
570 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400571 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400572 "shell",
573 "mkdir",
574 "-p",
575 "/sdcard/revenge_of_the_skiabot/svgs"
576 ],
577 "cwd": "[START_DIR]/skia",
578 "env": {
579 "BUILDTYPE": "Debug",
580 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700581 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400582 "SKIA_OUT": "[START_DIR]/out"
583 },
584 "infra_step": true,
585 "name": "mkdir /sdcard/revenge_of_the_skiabot/svgs"
586 },
587 {
588 "cmd": [
589 "python",
590 "-u",
Kevin Lubick587afc92017-10-12 12:21:47 -0400591 "\nimport os\nimport subprocess\nimport sys\nhost = sys.argv[1]\ndevice = sys.argv[2]\nfor d, _, fs in os.walk(host):\n p = os.path.relpath(d, host)\n if p != '.' and p.startswith('.'):\n continue\n for f in fs:\n print os.path.join(p,f)\n subprocess.check_call(['adb.1.0.35', 'push',\n os.path.realpath(os.path.join(host, p, f)),\n os.path.join(device, p, f)])\n",
Eric Borenb82fdc72017-04-19 13:36:00 -0400592 "[START_DIR]/svg",
593 "/sdcard/revenge_of_the_skiabot/svgs"
594 ],
595 "env": {
596 "BUILDTYPE": "Debug",
597 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700598 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400599 "SKIA_OUT": "[START_DIR]/out"
600 },
601 "infra_step": true,
602 "name": "push [START_DIR]/svg/* /sdcard/revenge_of_the_skiabot/svgs",
603 "~followup_annotations": [
604 "@@@STEP_LOG_LINE@python.inline@@@@",
605 "@@@STEP_LOG_LINE@python.inline@import os@@@",
606 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
607 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
608 "@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
609 "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
610 "@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
611 "@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
612 "@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
613 "@@@STEP_LOG_LINE@python.inline@ continue@@@",
614 "@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
615 "@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
Kevin Lubick587afc92017-10-12 12:21:47 -0400616 "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb.1.0.35', 'push',@@@",
Eric Borenb82fdc72017-04-19 13:36:00 -0400617 "@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
618 "@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
619 "@@@STEP_LOG_END@python.inline@@@"
620 ]
621 },
622 {
623 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400624 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400625 "push",
626 "[START_DIR]/tmp/SVG_VERSION",
627 "/sdcard/revenge_of_the_skiabot/SVG_VERSION"
628 ],
629 "cwd": "[START_DIR]/skia",
630 "env": {
631 "BUILDTYPE": "Debug",
632 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700633 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400634 "SKIA_OUT": "[START_DIR]/out"
635 },
636 "infra_step": true,
637 "name": "push [START_DIR]/tmp/SVG_VERSION /sdcard/revenge_of_the_skiabot/SVG_VERSION"
638 },
639 {
640 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400641 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400642 "push",
643 "[START_DIR]/out/Debug/dm",
644 "/data/local/tmp/"
645 ],
646 "cwd": "[START_DIR]/skia",
647 "env": {
648 "BUILDTYPE": "Debug",
649 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700650 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400651 "SKIA_OUT": "[START_DIR]/out"
652 },
653 "infra_step": true,
654 "name": "push dm"
655 },
656 {
657 "cmd": [
658 "python",
659 "-u",
Eric Boren3e2ffd72017-06-16 13:10:22 -0400660 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
661 "--json-output",
662 "/path/to/tmp/json",
663 "copy",
Eric Borenb82fdc72017-04-19 13:36:00 -0400664 "set -x; /data/local/tmp/dm --some-flag; echo $? >/data/local/tmp/rc",
665 "[START_DIR]/tmp/dm.sh"
666 ],
667 "infra_step": true,
668 "name": "write dm.sh"
669 },
670 {
671 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400672 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400673 "push",
674 "[START_DIR]/tmp/dm.sh",
675 "/data/local/tmp/"
676 ],
677 "cwd": "[START_DIR]/skia",
678 "env": {
679 "BUILDTYPE": "Debug",
680 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700681 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400682 "SKIA_OUT": "[START_DIR]/out"
683 },
684 "infra_step": true,
685 "name": "push dm.sh"
686 },
687 {
688 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400689 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400690 "logcat",
691 "-c"
692 ],
693 "cwd": "[START_DIR]/skia",
694 "env": {
695 "BUILDTYPE": "Debug",
696 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700697 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400698 "SKIA_OUT": "[START_DIR]/out"
699 },
700 "infra_step": true,
701 "name": "clear log"
702 },
703 {
704 "cmd": [
705 "python",
706 "-u",
Kevin Lubick587afc92017-10-12 12:21:47 -0400707 "\nimport subprocess\nimport sys\nbin_dir = sys.argv[1]\nsh = sys.argv[2]\nsubprocess.check_call(['adb.1.0.35', 'shell', 'sh', bin_dir + sh])\ntry:\n sys.exit(int(subprocess.check_output(['adb.1.0.35', 'shell', 'cat',\n bin_dir + 'rc'])))\nexcept ValueError:\n print \"Couldn't read the return code. Probably killed for OOM.\"\n sys.exit(1)\n",
Eric Borenb82fdc72017-04-19 13:36:00 -0400708 "/data/local/tmp/",
709 "dm.sh"
710 ],
711 "name": "dm",
712 "~followup_annotations": [
713 "@@@STEP_LOG_LINE@python.inline@@@@",
714 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
715 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
716 "@@@STEP_LOG_LINE@python.inline@bin_dir = sys.argv[1]@@@",
717 "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@",
Kevin Lubick587afc92017-10-12 12:21:47 -0400718 "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['adb.1.0.35', 'shell', 'sh', bin_dir + sh])@@@",
Eric Borenb82fdc72017-04-19 13:36:00 -0400719 "@@@STEP_LOG_LINE@python.inline@try:@@@",
Kevin Lubick587afc92017-10-12 12:21:47 -0400720 "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['adb.1.0.35', 'shell', 'cat',@@@",
Eric Borenb82fdc72017-04-19 13:36:00 -0400721 "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@",
722 "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@",
723 "@@@STEP_LOG_LINE@python.inline@ print \"Couldn't read the return code. Probably killed for OOM.\"@@@",
724 "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
725 "@@@STEP_LOG_END@python.inline@@@"
726 ]
727 },
728 {
729 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400730 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400731 "pull",
732 "/sdcard/revenge_of_the_skiabot/dm_out",
733 "[CUSTOM_[SWARM_OUT_DIR]]/dm"
734 ],
735 "cwd": "[START_DIR]/skia",
736 "env": {
737 "BUILDTYPE": "Debug",
738 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700739 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400740 "SKIA_OUT": "[START_DIR]/out"
741 },
742 "infra_step": true,
743 "name": "pull /sdcard/revenge_of_the_skiabot/dm_out [CUSTOM_[SWARM_OUT_DIR]]/dm"
744 },
745 {
746 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400747 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400748 "pull",
749 "/sdcard/revenge_of_the_skiabot/perf",
750 "[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Debug-Android/data"
751 ],
752 "cwd": "[START_DIR]/skia",
753 "env": {
754 "BUILDTYPE": "Debug",
755 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700756 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400757 "SKIA_OUT": "[START_DIR]/out"
758 },
759 "infra_step": true,
760 "name": "pull /sdcard/revenge_of_the_skiabot/perf [CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Debug-Android/data"
761 },
762 {
763 "cmd": [
764 "python",
765 "-u",
Kevin Lubick587afc92017-10-12 12:21:47 -0400766 "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['adb.1.0.35', 'logcat', '-d'])\nfor line in log.split('\\n'):\n tokens = line.split()\n if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':\n addr, path = tokens[-2:]\n local = os.path.join(out, os.path.basename(path))\n if os.path.exists(local):\n sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n line = line.replace(addr, addr + ' ' + sym.strip())\n print line\n",
Eric Borenb82fdc72017-04-19 13:36:00 -0400767 "[START_DIR]/out/Debug"
768 ],
769 "env": {
770 "BUILDTYPE": "Debug",
771 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700772 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400773 "SKIA_OUT": "[START_DIR]/out"
774 },
775 "infra_step": true,
776 "name": "dump log",
Kevin Lubick587afc92017-10-12 12:21:47 -0400777 "timeout": 300,
Eric Borenb82fdc72017-04-19 13:36:00 -0400778 "~followup_annotations": [
779 "step returned non-zero exit code: 1",
780 "@@@STEP_LOG_LINE@python.inline@@@@",
781 "@@@STEP_LOG_LINE@python.inline@import os@@@",
782 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
783 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
784 "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@",
Kevin Lubick587afc92017-10-12 12:21:47 -0400785 "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['adb.1.0.35', 'logcat', '-d'])@@@",
Eric Borenb82fdc72017-04-19 13:36:00 -0400786 "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@",
787 "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@",
788 "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@",
789 "@@@STEP_LOG_LINE@python.inline@ addr, path = tokens[-2:]@@@",
790 "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@",
791 "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@",
792 "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@",
793 "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@",
794 "@@@STEP_LOG_LINE@python.inline@ print line@@@",
795 "@@@STEP_LOG_END@python.inline@@@",
796 "@@@STEP_EXCEPTION@@@"
797 ]
798 },
799 {
800 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400801 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400802 "shell",
803 "reboot",
804 "-p"
805 ],
806 "cwd": "[START_DIR]/skia",
807 "env": {
808 "BUILDTYPE": "Debug",
809 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700810 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400811 "SKIA_OUT": "[START_DIR]/out"
812 },
813 "infra_step": true,
814 "name": "shut down device to quarantine bot"
815 },
816 {
817 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400818 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400819 "kill-server"
820 ],
821 "cwd": "[START_DIR]/skia",
822 "env": {
823 "BUILDTYPE": "Debug",
824 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700825 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400826 "SKIA_OUT": "[START_DIR]/out"
827 },
828 "infra_step": true,
829 "name": "kill adb server"
830 },
831 {
832 "name": "$result",
833 "reason": "Failed build steps: dump log",
834 "recipe_result": null,
835 "status_code": 1
836 }
837]