blob: 76000150b192dc8d2252bcb9646a6ae6b929254d [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",
Mike Klein7a13d872017-11-06 09:28:59 -050037 "-k",
38 "0",
Eric Borenb82fdc72017-04-19 13:36:00 -040039 "-C",
40 "[START_DIR]/out/Debug"
41 ],
42 "cwd": "[START_DIR]/skia",
43 "env": {
44 "BUILDTYPE": "Debug",
45 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -070046 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -040047 "SKIA_OUT": "[START_DIR]/out"
48 },
49 "name": "ninja"
50 },
51 {
52 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -040053 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -040054 "push",
55 "file.txt",
56 "file.txt"
57 ],
58 "cwd": "[START_DIR]/skia",
59 "env": {
60 "BUILDTYPE": "Debug",
61 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -070062 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -040063 "SKIA_OUT": "[START_DIR]/out"
64 },
65 "infra_step": true,
66 "name": "push file.txt file.txt"
67 },
68 {
69 "cmd": [
70 "python",
71 "-u",
Eric Boren3e2ffd72017-06-16 13:10:22 -040072 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
73 "--json-output",
74 "/path/to/tmp/json",
Eric Borenb82fdc72017-04-19 13:36:00 -040075 "rmtree",
76 "results_dir"
77 ],
Eric Borenb82fdc72017-04-19 13:36:00 -040078 "infra_step": true,
79 "name": "rmtree results_dir"
80 },
81 {
82 "cmd": [
83 "python",
84 "-u",
Robert Iannucci8cd50412017-07-07 14:36:58 -070085 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
86 "--json-output",
87 "/path/to/tmp/json",
88 "ensure-directory",
89 "--mode",
90 "0777",
91 "results_dir"
Eric Borenb82fdc72017-04-19 13:36:00 -040092 ],
93 "infra_step": true,
Robert Iannucci8cd50412017-07-07 14:36:58 -070094 "name": "makedirs results_dir"
Eric Borenb82fdc72017-04-19 13:36:00 -040095 },
96 {
97 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -040098 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -040099 "shell",
100 "rm",
101 "-rf",
102 "device_results_dir"
103 ],
104 "cwd": "[START_DIR]/skia",
105 "env": {
106 "BUILDTYPE": "Debug",
107 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700108 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400109 "SKIA_OUT": "[START_DIR]/out"
110 },
111 "infra_step": true,
112 "name": "rm device_results_dir"
113 },
114 {
115 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400116 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400117 "shell",
118 "mkdir",
119 "-p",
120 "device_results_dir"
121 ],
122 "cwd": "[START_DIR]/skia",
123 "env": {
124 "BUILDTYPE": "Debug",
125 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700126 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400127 "SKIA_OUT": "[START_DIR]/out"
128 },
129 "infra_step": true,
130 "name": "mkdir device_results_dir"
131 },
132 {
133 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400134 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400135 "shell",
136 "mkdir",
137 "-p",
138 "/sdcard/revenge_of_the_skiabot/resources"
139 ],
140 "cwd": "[START_DIR]/skia",
141 "env": {
142 "BUILDTYPE": "Debug",
143 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700144 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400145 "SKIA_OUT": "[START_DIR]/out"
146 },
147 "infra_step": true,
148 "name": "mkdir /sdcard/revenge_of_the_skiabot/resources"
149 },
150 {
151 "cmd": [
152 "python",
153 "-u",
Kevin Lubick587afc92017-10-12 12:21:47 -0400154 "\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 -0400155 "[START_DIR]/skia/resources",
156 "/sdcard/revenge_of_the_skiabot/resources"
157 ],
158 "env": {
159 "BUILDTYPE": "Debug",
160 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700161 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400162 "SKIA_OUT": "[START_DIR]/out"
163 },
164 "infra_step": true,
165 "name": "push [START_DIR]/skia/resources/* /sdcard/revenge_of_the_skiabot/resources",
166 "~followup_annotations": [
167 "@@@STEP_LOG_LINE@python.inline@@@@",
168 "@@@STEP_LOG_LINE@python.inline@import os@@@",
169 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
170 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
171 "@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
172 "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
173 "@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
174 "@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
175 "@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
176 "@@@STEP_LOG_LINE@python.inline@ continue@@@",
177 "@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
178 "@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
Kevin Lubick587afc92017-10-12 12:21:47 -0400179 "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb.1.0.35', 'push',@@@",
Eric Borenb82fdc72017-04-19 13:36:00 -0400180 "@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
181 "@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
182 "@@@STEP_LOG_END@python.inline@@@"
183 ]
184 },
185 {
186 "cmd": [
187 "python",
188 "-u",
Eric Boren3e2ffd72017-06-16 13:10:22 -0400189 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
190 "--json-output",
191 "/path/to/tmp/json",
192 "copy",
Eric Borenb82fdc72017-04-19 13:36:00 -0400193 "[START_DIR]/skia/infra/bots/assets/skp/VERSION",
194 "/path/to/tmp/"
195 ],
196 "infra_step": true,
197 "name": "Get downloaded SKP VERSION"
198 },
199 {
200 "cmd": [
201 "python",
202 "-u",
Eric Boren3e2ffd72017-06-16 13:10:22 -0400203 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
204 "--json-output",
205 "/path/to/tmp/json",
206 "copy",
Eric Borenb82fdc72017-04-19 13:36:00 -0400207 "42",
208 "[START_DIR]/tmp/SKP_VERSION"
209 ],
210 "infra_step": true,
211 "name": "write SKP_VERSION"
212 },
213 {
214 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400215 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400216 "shell",
217 "cat",
218 "/sdcard/revenge_of_the_skiabot/SKP_VERSION"
219 ],
220 "cwd": "[START_DIR]/skia",
221 "env": {
222 "BUILDTYPE": "Debug",
223 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700224 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400225 "SKIA_OUT": "[START_DIR]/out"
226 },
227 "infra_step": true,
228 "name": "read /sdcard/revenge_of_the_skiabot/SKP_VERSION",
229 "stdout": "/path/to/tmp/"
230 },
231 {
232 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400233 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400234 "shell",
235 "rm",
236 "-f",
237 "/sdcard/revenge_of_the_skiabot/SKP_VERSION"
238 ],
239 "cwd": "[START_DIR]/skia",
240 "env": {
241 "BUILDTYPE": "Debug",
242 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700243 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400244 "SKIA_OUT": "[START_DIR]/out"
245 },
246 "infra_step": true,
247 "name": "rm /sdcard/revenge_of_the_skiabot/SKP_VERSION"
248 },
249 {
250 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400251 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400252 "shell",
253 "rm",
254 "-rf",
255 "/sdcard/revenge_of_the_skiabot/skps"
256 ],
257 "cwd": "[START_DIR]/skia",
258 "env": {
259 "BUILDTYPE": "Debug",
260 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700261 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400262 "SKIA_OUT": "[START_DIR]/out"
263 },
264 "infra_step": true,
265 "name": "rm /sdcard/revenge_of_the_skiabot/skps"
266 },
267 {
268 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400269 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400270 "shell",
271 "mkdir",
272 "-p",
273 "/sdcard/revenge_of_the_skiabot/skps"
274 ],
275 "cwd": "[START_DIR]/skia",
276 "env": {
277 "BUILDTYPE": "Debug",
278 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700279 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400280 "SKIA_OUT": "[START_DIR]/out"
281 },
282 "infra_step": true,
283 "name": "mkdir /sdcard/revenge_of_the_skiabot/skps"
284 },
285 {
286 "cmd": [
287 "python",
288 "-u",
Kevin Lubick587afc92017-10-12 12:21:47 -0400289 "\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 -0400290 "[START_DIR]/skp",
291 "/sdcard/revenge_of_the_skiabot/skps"
292 ],
293 "env": {
294 "BUILDTYPE": "Debug",
295 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700296 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400297 "SKIA_OUT": "[START_DIR]/out"
298 },
299 "infra_step": true,
300 "name": "push [START_DIR]/skp/* /sdcard/revenge_of_the_skiabot/skps",
301 "~followup_annotations": [
302 "@@@STEP_LOG_LINE@python.inline@@@@",
303 "@@@STEP_LOG_LINE@python.inline@import os@@@",
304 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
305 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
306 "@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
307 "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
308 "@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
309 "@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
310 "@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
311 "@@@STEP_LOG_LINE@python.inline@ continue@@@",
312 "@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
313 "@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
Kevin Lubick587afc92017-10-12 12:21:47 -0400314 "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb.1.0.35', 'push',@@@",
Eric Borenb82fdc72017-04-19 13:36:00 -0400315 "@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
316 "@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
317 "@@@STEP_LOG_END@python.inline@@@"
318 ]
319 },
320 {
321 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400322 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400323 "push",
324 "[START_DIR]/tmp/SKP_VERSION",
325 "/sdcard/revenge_of_the_skiabot/SKP_VERSION"
326 ],
327 "cwd": "[START_DIR]/skia",
328 "env": {
329 "BUILDTYPE": "Debug",
330 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700331 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400332 "SKIA_OUT": "[START_DIR]/out"
333 },
334 "infra_step": true,
335 "name": "push [START_DIR]/tmp/SKP_VERSION /sdcard/revenge_of_the_skiabot/SKP_VERSION"
336 },
337 {
338 "cmd": [
339 "python",
340 "-u",
Eric Boren3e2ffd72017-06-16 13:10:22 -0400341 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
342 "--json-output",
343 "/path/to/tmp/json",
344 "copy",
Eric Borenb82fdc72017-04-19 13:36:00 -0400345 "[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
346 "/path/to/tmp/"
347 ],
348 "infra_step": true,
349 "name": "Get downloaded skimage VERSION"
350 },
351 {
352 "cmd": [
353 "python",
354 "-u",
Eric Boren3e2ffd72017-06-16 13:10:22 -0400355 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
356 "--json-output",
357 "/path/to/tmp/json",
358 "copy",
Eric Borenb82fdc72017-04-19 13:36:00 -0400359 "42",
360 "[START_DIR]/tmp/SK_IMAGE_VERSION"
361 ],
362 "infra_step": true,
363 "name": "write SK_IMAGE_VERSION"
364 },
365 {
366 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400367 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400368 "shell",
369 "cat",
370 "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
371 ],
372 "cwd": "[START_DIR]/skia",
373 "env": {
374 "BUILDTYPE": "Debug",
375 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700376 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400377 "SKIA_OUT": "[START_DIR]/out"
378 },
379 "infra_step": true,
380 "name": "read /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION",
381 "stdout": "/path/to/tmp/"
382 },
383 {
384 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400385 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400386 "shell",
387 "rm",
388 "-f",
389 "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
390 ],
391 "cwd": "[START_DIR]/skia",
392 "env": {
393 "BUILDTYPE": "Debug",
394 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700395 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400396 "SKIA_OUT": "[START_DIR]/out"
397 },
398 "infra_step": true,
399 "name": "rm /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
400 },
401 {
402 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400403 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400404 "shell",
405 "rm",
406 "-rf",
407 "/sdcard/revenge_of_the_skiabot/images"
408 ],
409 "cwd": "[START_DIR]/skia",
410 "env": {
411 "BUILDTYPE": "Debug",
412 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700413 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400414 "SKIA_OUT": "[START_DIR]/out"
415 },
416 "infra_step": true,
417 "name": "rm /sdcard/revenge_of_the_skiabot/images"
418 },
419 {
420 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400421 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400422 "shell",
423 "mkdir",
424 "-p",
425 "/sdcard/revenge_of_the_skiabot/images"
426 ],
427 "cwd": "[START_DIR]/skia",
428 "env": {
429 "BUILDTYPE": "Debug",
430 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700431 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400432 "SKIA_OUT": "[START_DIR]/out"
433 },
434 "infra_step": true,
435 "name": "mkdir /sdcard/revenge_of_the_skiabot/images"
436 },
437 {
438 "cmd": [
439 "python",
440 "-u",
Kevin Lubick587afc92017-10-12 12:21:47 -0400441 "\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 -0400442 "[START_DIR]/skimage",
443 "/sdcard/revenge_of_the_skiabot/images"
444 ],
445 "env": {
446 "BUILDTYPE": "Debug",
447 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700448 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400449 "SKIA_OUT": "[START_DIR]/out"
450 },
451 "infra_step": true,
452 "name": "push [START_DIR]/skimage/* /sdcard/revenge_of_the_skiabot/images",
453 "~followup_annotations": [
454 "@@@STEP_LOG_LINE@python.inline@@@@",
455 "@@@STEP_LOG_LINE@python.inline@import os@@@",
456 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
457 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
458 "@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
459 "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
460 "@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
461 "@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
462 "@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
463 "@@@STEP_LOG_LINE@python.inline@ continue@@@",
464 "@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
465 "@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
Kevin Lubick587afc92017-10-12 12:21:47 -0400466 "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb.1.0.35', 'push',@@@",
Eric Borenb82fdc72017-04-19 13:36:00 -0400467 "@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
468 "@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
469 "@@@STEP_LOG_END@python.inline@@@"
470 ]
471 },
472 {
473 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400474 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400475 "push",
476 "[START_DIR]/tmp/SK_IMAGE_VERSION",
477 "/sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
478 ],
479 "cwd": "[START_DIR]/skia",
480 "env": {
481 "BUILDTYPE": "Debug",
482 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700483 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400484 "SKIA_OUT": "[START_DIR]/out"
485 },
486 "infra_step": true,
487 "name": "push [START_DIR]/tmp/SK_IMAGE_VERSION /sdcard/revenge_of_the_skiabot/SK_IMAGE_VERSION"
488 },
489 {
490 "cmd": [
491 "python",
492 "-u",
Eric Boren3e2ffd72017-06-16 13:10:22 -0400493 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
494 "--json-output",
495 "/path/to/tmp/json",
496 "copy",
Eric Borenb82fdc72017-04-19 13:36:00 -0400497 "[START_DIR]/skia/infra/bots/assets/svg/VERSION",
498 "/path/to/tmp/"
499 ],
500 "infra_step": true,
501 "name": "Get downloaded SVG VERSION"
502 },
503 {
504 "cmd": [
505 "python",
506 "-u",
Eric Boren3e2ffd72017-06-16 13:10:22 -0400507 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
508 "--json-output",
509 "/path/to/tmp/json",
510 "copy",
Eric Borenb82fdc72017-04-19 13:36:00 -0400511 "42",
512 "[START_DIR]/tmp/SVG_VERSION"
513 ],
514 "infra_step": true,
515 "name": "write SVG_VERSION"
516 },
517 {
518 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400519 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400520 "shell",
521 "cat",
522 "/sdcard/revenge_of_the_skiabot/SVG_VERSION"
523 ],
524 "cwd": "[START_DIR]/skia",
525 "env": {
526 "BUILDTYPE": "Debug",
527 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700528 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400529 "SKIA_OUT": "[START_DIR]/out"
530 },
531 "infra_step": true,
532 "name": "read /sdcard/revenge_of_the_skiabot/SVG_VERSION",
533 "stdout": "/path/to/tmp/"
534 },
535 {
536 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400537 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400538 "shell",
539 "rm",
540 "-f",
541 "/sdcard/revenge_of_the_skiabot/SVG_VERSION"
542 ],
543 "cwd": "[START_DIR]/skia",
544 "env": {
545 "BUILDTYPE": "Debug",
546 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700547 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400548 "SKIA_OUT": "[START_DIR]/out"
549 },
550 "infra_step": true,
551 "name": "rm /sdcard/revenge_of_the_skiabot/SVG_VERSION"
552 },
553 {
554 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400555 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400556 "shell",
557 "rm",
558 "-rf",
559 "/sdcard/revenge_of_the_skiabot/svgs"
560 ],
561 "cwd": "[START_DIR]/skia",
562 "env": {
563 "BUILDTYPE": "Debug",
564 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700565 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400566 "SKIA_OUT": "[START_DIR]/out"
567 },
568 "infra_step": true,
569 "name": "rm /sdcard/revenge_of_the_skiabot/svgs"
570 },
571 {
572 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400573 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400574 "shell",
575 "mkdir",
576 "-p",
577 "/sdcard/revenge_of_the_skiabot/svgs"
578 ],
579 "cwd": "[START_DIR]/skia",
580 "env": {
581 "BUILDTYPE": "Debug",
582 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700583 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400584 "SKIA_OUT": "[START_DIR]/out"
585 },
586 "infra_step": true,
587 "name": "mkdir /sdcard/revenge_of_the_skiabot/svgs"
588 },
589 {
590 "cmd": [
591 "python",
592 "-u",
Kevin Lubick587afc92017-10-12 12:21:47 -0400593 "\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 -0400594 "[START_DIR]/svg",
595 "/sdcard/revenge_of_the_skiabot/svgs"
596 ],
597 "env": {
598 "BUILDTYPE": "Debug",
599 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700600 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400601 "SKIA_OUT": "[START_DIR]/out"
602 },
603 "infra_step": true,
604 "name": "push [START_DIR]/svg/* /sdcard/revenge_of_the_skiabot/svgs",
605 "~followup_annotations": [
606 "@@@STEP_LOG_LINE@python.inline@@@@",
607 "@@@STEP_LOG_LINE@python.inline@import os@@@",
608 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
609 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
610 "@@@STEP_LOG_LINE@python.inline@host = sys.argv[1]@@@",
611 "@@@STEP_LOG_LINE@python.inline@device = sys.argv[2]@@@",
612 "@@@STEP_LOG_LINE@python.inline@for d, _, fs in os.walk(host):@@@",
613 "@@@STEP_LOG_LINE@python.inline@ p = os.path.relpath(d, host)@@@",
614 "@@@STEP_LOG_LINE@python.inline@ if p != '.' and p.startswith('.'):@@@",
615 "@@@STEP_LOG_LINE@python.inline@ continue@@@",
616 "@@@STEP_LOG_LINE@python.inline@ for f in fs:@@@",
617 "@@@STEP_LOG_LINE@python.inline@ print os.path.join(p,f)@@@",
Kevin Lubick587afc92017-10-12 12:21:47 -0400618 "@@@STEP_LOG_LINE@python.inline@ subprocess.check_call(['adb.1.0.35', 'push',@@@",
Eric Borenb82fdc72017-04-19 13:36:00 -0400619 "@@@STEP_LOG_LINE@python.inline@ os.path.realpath(os.path.join(host, p, f)),@@@",
620 "@@@STEP_LOG_LINE@python.inline@ os.path.join(device, p, f)])@@@",
621 "@@@STEP_LOG_END@python.inline@@@"
622 ]
623 },
624 {
625 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400626 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400627 "push",
628 "[START_DIR]/tmp/SVG_VERSION",
629 "/sdcard/revenge_of_the_skiabot/SVG_VERSION"
630 ],
631 "cwd": "[START_DIR]/skia",
632 "env": {
633 "BUILDTYPE": "Debug",
634 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700635 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400636 "SKIA_OUT": "[START_DIR]/out"
637 },
638 "infra_step": true,
639 "name": "push [START_DIR]/tmp/SVG_VERSION /sdcard/revenge_of_the_skiabot/SVG_VERSION"
640 },
641 {
642 "cmd": [
Kevin Lubickd1bbd5f2017-11-21 16:47:16 -0500643 "python",
644 "-u",
Kevin Lubick4c6bde22017-12-05 15:54:19 -0500645 "\nimport os\nimport subprocess\nimport sys\nimport time\nADB = sys.argv[1]\nmodel = sys.argv[2]\ntarget_percent = float(sys.argv[3])\nlog = subprocess.check_output([ADB, 'root'])\n# check for message like 'adbd cannot run as root in production builds'\nif 'cannot' in log:\n raise Exception('adb root failed')\n\nif model == 'Nexus10':\n # Nexus10 doesn't list available frequencies, but it does give a\n # min and a max and seems to round to the nearest 100khz, so a\n # subset of those available are here.\n available_freqs = [200000, 400000, 600000, 800000, 1000000, 1200000,\n 1400000, 1700000]\nelif model == 'Nexus7':\n # Nexus7 claims to support 1300000, but only really allows 1200000\n available_freqs = [51000, 102000, 204000, 340000, 475000, 640000, 760000,\n 860000, 1000000, 1100000, 1200000]\nelse:\n # Most devices give a list of their available frequencies.\n available_freqs = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies'])\n\n # Check for message like '/system/bin/sh: file not found'\n if available_freqs and '/system/bin/sh' not in available_freqs:\n available_freqs = sorted(\n int(i) for i in available_freqs.strip().split())\n else:\n raise Exception('Could not get list of available frequencies: %s' %\n available_freqs)\n\nmaxfreq = available_freqs[-1]\ntarget = int(round(maxfreq * target_percent))\nfreq = maxfreq\nfor f in reversed(available_freqs):\n if f <= target:\n freq = f\n break\n\nprint 'Setting frequency to %d' % freq\n\nsubprocess.check_output([ADB, 'shell', 'echo \"userspace\" > '\n '/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor'])\n# If scaling_max_freq is lower than our attempted setting, it won't take.\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq' % freq])\nsubprocess.check_output([ADB, 'shell', 'echo 0 > '\n '/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq'])\nsubprocess.check_output([ADB, 'shell', 'echo %d > '\n '/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed' % freq])\ntime.sleep(5)\nactual_freq = subprocess.check_output([ADB, 'shell', 'cat '\n '/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq']).strip()\nif actual_freq != str(freq):\n raise Exception('(actual, expected) (%s, %d)'\n % (actual_freq, freq))\n",
Kevin Lubick587afc92017-10-12 12:21:47 -0400646 "adb.1.0.35",
Kevin Lubickd1bbd5f2017-11-21 16:47:16 -0500647 "NexusPlayer",
648 "0.6"
Kevin Lubickbca95a52017-11-20 16:06:06 -0500649 ],
Kevin Lubickbca95a52017-11-20 16:06:06 -0500650 "env": {
651 "BUILDTYPE": "Debug",
652 "CHROME_HEADLESS": "1",
653 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
654 "SKIA_OUT": "[START_DIR]/out"
655 },
656 "infra_step": true,
Kevin Lubickd1bbd5f2017-11-21 16:47:16 -0500657 "name": "Scale CPU to 0.600000",
658 "timeout": 30,
659 "~followup_annotations": [
660 "@@@STEP_LOG_LINE@python.inline@@@@",
661 "@@@STEP_LOG_LINE@python.inline@import os@@@",
662 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
663 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
Kevin Lubick1c8092ac2017-11-30 08:35:29 -0500664 "@@@STEP_LOG_LINE@python.inline@import time@@@",
Kevin Lubickd1bbd5f2017-11-21 16:47:16 -0500665 "@@@STEP_LOG_LINE@python.inline@ADB = sys.argv[1]@@@",
666 "@@@STEP_LOG_LINE@python.inline@model = sys.argv[2]@@@",
667 "@@@STEP_LOG_LINE@python.inline@target_percent = float(sys.argv[3])@@@",
668 "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output([ADB, 'root'])@@@",
669 "@@@STEP_LOG_LINE@python.inline@# check for message like 'adbd cannot run as root in production builds'@@@",
670 "@@@STEP_LOG_LINE@python.inline@if 'cannot' in log:@@@",
671 "@@@STEP_LOG_LINE@python.inline@ raise Exception('adb root failed')@@@",
672 "@@@STEP_LOG_LINE@python.inline@@@@",
673 "@@@STEP_LOG_LINE@python.inline@if model == 'Nexus10':@@@",
Kevin Lubickde2f1df2017-11-30 09:23:17 -0500674 "@@@STEP_LOG_LINE@python.inline@ # Nexus10 doesn't list available frequencies, but it does give a@@@",
675 "@@@STEP_LOG_LINE@python.inline@ # min and a max and seems to round to the nearest 100khz, so a@@@",
676 "@@@STEP_LOG_LINE@python.inline@ # subset of those available are here.@@@",
677 "@@@STEP_LOG_LINE@python.inline@ available_freqs = [200000, 400000, 600000, 800000, 1000000, 1200000,@@@",
678 "@@@STEP_LOG_LINE@python.inline@ 1400000, 1700000]@@@",
Kevin Lubick3ad5e612017-11-22 09:57:54 -0500679 "@@@STEP_LOG_LINE@python.inline@elif model == 'Nexus7':@@@",
680 "@@@STEP_LOG_LINE@python.inline@ # Nexus7 claims to support 1300000, but only really allows 1200000@@@",
681 "@@@STEP_LOG_LINE@python.inline@ available_freqs = [51000, 102000, 204000, 340000, 475000, 640000, 760000,@@@",
682 "@@@STEP_LOG_LINE@python.inline@ 860000, 1000000, 1100000, 1200000]@@@",
Kevin Lubickd1bbd5f2017-11-21 16:47:16 -0500683 "@@@STEP_LOG_LINE@python.inline@else:@@@",
684 "@@@STEP_LOG_LINE@python.inline@ # Most devices give a list of their available frequencies.@@@",
685 "@@@STEP_LOG_LINE@python.inline@ available_freqs = subprocess.check_output([ADB, 'shell', 'cat '@@@",
686 "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies'])@@@",
687 "@@@STEP_LOG_LINE@python.inline@@@@",
688 "@@@STEP_LOG_LINE@python.inline@ # Check for message like '/system/bin/sh: file not found'@@@",
689 "@@@STEP_LOG_LINE@python.inline@ if available_freqs and '/system/bin/sh' not in available_freqs:@@@",
690 "@@@STEP_LOG_LINE@python.inline@ available_freqs = sorted(@@@",
691 "@@@STEP_LOG_LINE@python.inline@ int(i) for i in available_freqs.strip().split())@@@",
692 "@@@STEP_LOG_LINE@python.inline@ else:@@@",
693 "@@@STEP_LOG_LINE@python.inline@ raise Exception('Could not get list of available frequencies: %s' %@@@",
694 "@@@STEP_LOG_LINE@python.inline@ available_freqs)@@@",
695 "@@@STEP_LOG_LINE@python.inline@@@@",
696 "@@@STEP_LOG_LINE@python.inline@maxfreq = available_freqs[-1]@@@",
697 "@@@STEP_LOG_LINE@python.inline@target = int(round(maxfreq * target_percent))@@@",
698 "@@@STEP_LOG_LINE@python.inline@freq = maxfreq@@@",
699 "@@@STEP_LOG_LINE@python.inline@for f in reversed(available_freqs):@@@",
700 "@@@STEP_LOG_LINE@python.inline@ if f <= target:@@@",
701 "@@@STEP_LOG_LINE@python.inline@ freq = f@@@",
702 "@@@STEP_LOG_LINE@python.inline@ break@@@",
703 "@@@STEP_LOG_LINE@python.inline@@@@",
704 "@@@STEP_LOG_LINE@python.inline@print 'Setting frequency to %d' % freq@@@",
705 "@@@STEP_LOG_LINE@python.inline@@@@",
706 "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo \"userspace\" > '@@@",
707 "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor'])@@@",
708 "@@@STEP_LOG_LINE@python.inline@# If scaling_max_freq is lower than our attempted setting, it won't take.@@@",
709 "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@",
710 "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq' % freq])@@@",
Kevin Lubick4c6bde22017-12-05 15:54:19 -0500711 "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo 0 > '@@@",
712 "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq'])@@@",
Kevin Lubick1c8092ac2017-11-30 08:35:29 -0500713 "@@@STEP_LOG_LINE@python.inline@subprocess.check_output([ADB, 'shell', 'echo %d > '@@@",
Kevin Lubickd1bbd5f2017-11-21 16:47:16 -0500714 "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed' % freq])@@@",
Kevin Lubick1c8092ac2017-11-30 08:35:29 -0500715 "@@@STEP_LOG_LINE@python.inline@time.sleep(5)@@@",
Kevin Lubickd1bbd5f2017-11-21 16:47:16 -0500716 "@@@STEP_LOG_LINE@python.inline@actual_freq = subprocess.check_output([ADB, 'shell', 'cat '@@@",
Kevin Lubick1c8092ac2017-11-30 08:35:29 -0500717 "@@@STEP_LOG_LINE@python.inline@ '/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq']).strip()@@@",
Kevin Lubickd1bbd5f2017-11-21 16:47:16 -0500718 "@@@STEP_LOG_LINE@python.inline@if actual_freq != str(freq):@@@",
719 "@@@STEP_LOG_LINE@python.inline@ raise Exception('(actual, expected) (%s, %d)'@@@",
720 "@@@STEP_LOG_LINE@python.inline@ % (actual_freq, freq))@@@",
721 "@@@STEP_LOG_END@python.inline@@@"
722 ]
Kevin Lubickbca95a52017-11-20 16:06:06 -0500723 },
724 {
725 "cmd": [
726 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400727 "push",
Kevin Lubick02f709e2017-10-12 15:15:47 -0400728 "[START_DIR]/out/Debug/nanobench",
Eric Borenb82fdc72017-04-19 13:36:00 -0400729 "/data/local/tmp/"
730 ],
731 "cwd": "[START_DIR]/skia",
732 "env": {
733 "BUILDTYPE": "Debug",
734 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700735 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400736 "SKIA_OUT": "[START_DIR]/out"
737 },
738 "infra_step": true,
Kevin Lubick02f709e2017-10-12 15:15:47 -0400739 "name": "push nanobench"
Eric Borenb82fdc72017-04-19 13:36:00 -0400740 },
741 {
742 "cmd": [
743 "python",
744 "-u",
Eric Boren3e2ffd72017-06-16 13:10:22 -0400745 "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
746 "--json-output",
747 "/path/to/tmp/json",
748 "copy",
Kevin Lubick02f709e2017-10-12 15:15:47 -0400749 "set -x; /data/local/tmp/nanobench --some-flag; echo $? >/data/local/tmp/rc",
750 "[START_DIR]/tmp/nanobench.sh"
Eric Borenb82fdc72017-04-19 13:36:00 -0400751 ],
752 "infra_step": true,
Kevin Lubick02f709e2017-10-12 15:15:47 -0400753 "name": "write nanobench.sh"
Eric Borenb82fdc72017-04-19 13:36:00 -0400754 },
755 {
756 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400757 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400758 "push",
Kevin Lubick02f709e2017-10-12 15:15:47 -0400759 "[START_DIR]/tmp/nanobench.sh",
Eric Borenb82fdc72017-04-19 13:36:00 -0400760 "/data/local/tmp/"
761 ],
762 "cwd": "[START_DIR]/skia",
763 "env": {
764 "BUILDTYPE": "Debug",
765 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700766 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400767 "SKIA_OUT": "[START_DIR]/out"
768 },
769 "infra_step": true,
Kevin Lubick02f709e2017-10-12 15:15:47 -0400770 "name": "push nanobench.sh"
Eric Borenb82fdc72017-04-19 13:36:00 -0400771 },
772 {
773 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400774 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400775 "logcat",
776 "-c"
777 ],
778 "cwd": "[START_DIR]/skia",
779 "env": {
780 "BUILDTYPE": "Debug",
781 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700782 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400783 "SKIA_OUT": "[START_DIR]/out"
784 },
785 "infra_step": true,
786 "name": "clear log"
787 },
788 {
789 "cmd": [
790 "python",
791 "-u",
Kevin Lubick587afc92017-10-12 12:21:47 -0400792 "\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 -0400793 "/data/local/tmp/",
Kevin Lubick02f709e2017-10-12 15:15:47 -0400794 "nanobench.sh"
Eric Borenb82fdc72017-04-19 13:36:00 -0400795 ],
Kevin Lubick02f709e2017-10-12 15:15:47 -0400796 "name": "nanobench",
Eric Borenb82fdc72017-04-19 13:36:00 -0400797 "~followup_annotations": [
798 "@@@STEP_LOG_LINE@python.inline@@@@",
799 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
800 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
801 "@@@STEP_LOG_LINE@python.inline@bin_dir = sys.argv[1]@@@",
802 "@@@STEP_LOG_LINE@python.inline@sh = sys.argv[2]@@@",
Kevin Lubick587afc92017-10-12 12:21:47 -0400803 "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(['adb.1.0.35', 'shell', 'sh', bin_dir + sh])@@@",
Eric Borenb82fdc72017-04-19 13:36:00 -0400804 "@@@STEP_LOG_LINE@python.inline@try:@@@",
Kevin Lubick587afc92017-10-12 12:21:47 -0400805 "@@@STEP_LOG_LINE@python.inline@ sys.exit(int(subprocess.check_output(['adb.1.0.35', 'shell', 'cat',@@@",
Eric Borenb82fdc72017-04-19 13:36:00 -0400806 "@@@STEP_LOG_LINE@python.inline@ bin_dir + 'rc'])))@@@",
807 "@@@STEP_LOG_LINE@python.inline@except ValueError:@@@",
808 "@@@STEP_LOG_LINE@python.inline@ print \"Couldn't read the return code. Probably killed for OOM.\"@@@",
809 "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
810 "@@@STEP_LOG_END@python.inline@@@"
811 ]
812 },
813 {
814 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400815 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400816 "pull",
Eric Borenb82fdc72017-04-19 13:36:00 -0400817 "/sdcard/revenge_of_the_skiabot/perf",
Kevin Lubick9ef6de72017-10-15 21:05:58 -0400818 "[CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Debug-All-Android/data"
Eric Borenb82fdc72017-04-19 13:36:00 -0400819 ],
820 "cwd": "[START_DIR]/skia",
821 "env": {
822 "BUILDTYPE": "Debug",
823 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700824 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400825 "SKIA_OUT": "[START_DIR]/out"
826 },
827 "infra_step": true,
Kevin Lubick9ef6de72017-10-15 21:05:58 -0400828 "name": "pull /sdcard/revenge_of_the_skiabot/perf [CUSTOM_[SWARM_OUT_DIR]]/perfdata/Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Debug-All-Android/data"
Eric Borenb82fdc72017-04-19 13:36:00 -0400829 },
830 {
831 "cmd": [
832 "python",
833 "-u",
Kevin Lubick587afc92017-10-12 12:21:47 -0400834 "\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 -0400835 "[START_DIR]/out/Debug"
836 ],
837 "env": {
838 "BUILDTYPE": "Debug",
839 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700840 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400841 "SKIA_OUT": "[START_DIR]/out"
842 },
843 "infra_step": true,
844 "name": "dump log",
Kevin Lubick587afc92017-10-12 12:21:47 -0400845 "timeout": 300,
Eric Borenb82fdc72017-04-19 13:36:00 -0400846 "~followup_annotations": [
847 "step returned non-zero exit code: 1",
848 "@@@STEP_LOG_LINE@python.inline@@@@",
849 "@@@STEP_LOG_LINE@python.inline@import os@@@",
850 "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
851 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
852 "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@",
Kevin Lubick587afc92017-10-12 12:21:47 -0400853 "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['adb.1.0.35', 'logcat', '-d'])@@@",
Eric Borenb82fdc72017-04-19 13:36:00 -0400854 "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@",
855 "@@@STEP_LOG_LINE@python.inline@ tokens = line.split()@@@",
856 "@@@STEP_LOG_LINE@python.inline@ if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@",
857 "@@@STEP_LOG_LINE@python.inline@ addr, path = tokens[-2:]@@@",
858 "@@@STEP_LOG_LINE@python.inline@ local = os.path.join(out, os.path.basename(path))@@@",
859 "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(local):@@@",
860 "@@@STEP_LOG_LINE@python.inline@ sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@",
861 "@@@STEP_LOG_LINE@python.inline@ line = line.replace(addr, addr + ' ' + sym.strip())@@@",
862 "@@@STEP_LOG_LINE@python.inline@ print line@@@",
863 "@@@STEP_LOG_END@python.inline@@@",
864 "@@@STEP_EXCEPTION@@@"
865 ]
866 },
867 {
868 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400869 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400870 "shell",
871 "reboot",
872 "-p"
873 ],
874 "cwd": "[START_DIR]/skia",
875 "env": {
876 "BUILDTYPE": "Debug",
877 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700878 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400879 "SKIA_OUT": "[START_DIR]/out"
880 },
881 "infra_step": true,
882 "name": "shut down device to quarantine bot"
883 },
884 {
885 "cmd": [
Kevin Lubick587afc92017-10-12 12:21:47 -0400886 "adb.1.0.35",
Eric Borenb82fdc72017-04-19 13:36:00 -0400887 "kill-server"
888 ],
889 "cwd": "[START_DIR]/skia",
890 "env": {
891 "BUILDTYPE": "Debug",
892 "CHROME_HEADLESS": "1",
recipe-rollere0f7e162017-05-31 16:13:27 -0700893 "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
Eric Borenb82fdc72017-04-19 13:36:00 -0400894 "SKIA_OUT": "[START_DIR]/out"
895 },
896 "infra_step": true,
897 "name": "kill adb server"
898 },
899 {
900 "name": "$result",
901 "reason": "Failed build steps: dump log",
902 "recipe_result": null,
903 "status_code": 1
904 }
905]