• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1[
2  {
3    "cmd": [
4      "vpython",
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      "[START_DIR]/tmp"
13    ],
14    "infra_step": true,
15    "name": "makedirs tmp_dir"
16  },
17  {
18    "cmd": [
19      "python",
20      "-u",
21      "import os\nprint(os.environ.get('SWARMING_BOT_ID', ''))\n"
22    ],
23    "name": "get swarming bot id",
24    "~followup_annotations": [
25      "@@@STEP_LOG_LINE@python.inline@import os@@@",
26      "@@@STEP_LOG_LINE@python.inline@print(os.environ.get('SWARMING_BOT_ID', ''))@@@",
27      "@@@STEP_LOG_END@python.inline@@@"
28    ]
29  },
30  {
31    "cmd": [
32      "/usr/bin/adb.1.0.35",
33      "shell",
34      "mkdir",
35      "-p",
36      "/sdcard/revenge_of_the_skiabot/resources"
37    ],
38    "cwd": "[START_DIR]/skia",
39    "env": {
40      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
41      "CHROME_HEADLESS": "1",
42      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
43    },
44    "infra_step": true,
45    "name": "mkdir /sdcard/revenge_of_the_skiabot/resources"
46  },
47  {
48    "cmd": [
49      "vpython",
50      "-u",
51      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
52      "--json-output",
53      "/path/to/tmp/json",
54      "copy",
55      "[START_DIR]/skia/infra/bots/assets/mskp/VERSION",
56      "/path/to/tmp/"
57    ],
58    "infra_step": true,
59    "name": "Get mskp VERSION",
60    "~followup_annotations": [
61      "@@@STEP_LOG_LINE@VERSION@42@@@",
62      "@@@STEP_LOG_END@VERSION@@@"
63    ]
64  },
65  {
66    "cmd": [
67      "vpython",
68      "-u",
69      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
70      "--json-output",
71      "/path/to/tmp/json",
72      "copy",
73      "42",
74      "[START_DIR]/tmp/MSKP_VERSION"
75    ],
76    "infra_step": true,
77    "name": "write MSKP_VERSION",
78    "~followup_annotations": [
79      "@@@STEP_LOG_LINE@MSKP_VERSION@42@@@",
80      "@@@STEP_LOG_END@MSKP_VERSION@@@"
81    ]
82  },
83  {
84    "cmd": [
85      "/usr/bin/adb.1.0.35",
86      "shell",
87      "cat",
88      "/sdcard/revenge_of_the_skiabot/MSKP_VERSION"
89    ],
90    "cwd": "[START_DIR]/skia",
91    "env": {
92      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
93      "CHROME_HEADLESS": "1",
94      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
95    },
96    "infra_step": true,
97    "name": "read /sdcard/revenge_of_the_skiabot/MSKP_VERSION"
98  },
99  {
100    "cmd": [
101      "python",
102      "-u",
103      "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n  output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n  output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n  raise Exception('%s exists despite being deleted' % path)\n",
104      "/usr/bin/adb.1.0.35",
105      "/sdcard/revenge_of_the_skiabot/MSKP_VERSION"
106    ],
107    "env": {
108      "CHROME_HEADLESS": "1",
109      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
110    },
111    "infra_step": true,
112    "name": "rm /sdcard/revenge_of_the_skiabot/MSKP_VERSION",
113    "~followup_annotations": [
114      "@@@STEP_LOG_LINE@python.inline@@@@",
115      "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
116      "@@@STEP_LOG_LINE@python.inline@import sys@@@",
117      "@@@STEP_LOG_LINE@python.inline@@@@",
118      "@@@STEP_LOG_LINE@python.inline@# Remove the path.@@@",
119      "@@@STEP_LOG_LINE@python.inline@adb = sys.argv[1]@@@",
120      "@@@STEP_LOG_LINE@python.inline@path = sys.argv[2]@@@",
121      "@@@STEP_LOG_LINE@python.inline@print('Removing %s' % path)@@@",
122      "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'rm', '-rf', path]@@@",
123      "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@",
124      "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(cmd)@@@",
125      "@@@STEP_LOG_LINE@python.inline@@@@",
126      "@@@STEP_LOG_LINE@python.inline@# Verify that the path was deleted.@@@",
127      "@@@STEP_LOG_LINE@python.inline@print('Checking for existence of %s' % path)@@@",
128      "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@",
129      "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@",
130      "@@@STEP_LOG_LINE@python.inline@try:@@@",
131      "@@@STEP_LOG_LINE@python.inline@  output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@",
132      "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@",
133      "@@@STEP_LOG_LINE@python.inline@  output = e.output@@@",
134      "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@",
135      "@@@STEP_LOG_LINE@python.inline@print('======')@@@",
136      "@@@STEP_LOG_LINE@python.inline@print(output)@@@",
137      "@@@STEP_LOG_LINE@python.inline@print('======')@@@",
138      "@@@STEP_LOG_LINE@python.inline@if 'No such file or directory' not in output:@@@",
139      "@@@STEP_LOG_LINE@python.inline@  raise Exception('%s exists despite being deleted' % path)@@@",
140      "@@@STEP_LOG_END@python.inline@@@"
141    ]
142  },
143  {
144    "cmd": [
145      "python",
146      "-u",
147      "\nimport subprocess\nimport sys\n\n# Remove the path.\nadb = sys.argv[1]\npath = sys.argv[2]\nprint('Removing %s' % path)\ncmd = [adb, 'shell', 'rm', '-rf', path]\nprint(' '.join(cmd))\nsubprocess.check_call(cmd)\n\n# Verify that the path was deleted.\nprint('Checking for existence of %s' % path)\ncmd = [adb, 'shell', 'ls', path]\nprint(' '.join(cmd))\ntry:\n  output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)\nexcept subprocess.CalledProcessError as e:\n  output = e.output\nprint('Output was:')\nprint('======')\nprint(output)\nprint('======')\nif 'No such file or directory' not in output:\n  raise Exception('%s exists despite being deleted' % path)\n",
148      "/usr/bin/adb.1.0.35",
149      "/sdcard/revenge_of_the_skiabot/mskp"
150    ],
151    "env": {
152      "CHROME_HEADLESS": "1",
153      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
154    },
155    "infra_step": true,
156    "name": "rm /sdcard/revenge_of_the_skiabot/mskp",
157    "~followup_annotations": [
158      "@@@STEP_LOG_LINE@python.inline@@@@",
159      "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
160      "@@@STEP_LOG_LINE@python.inline@import sys@@@",
161      "@@@STEP_LOG_LINE@python.inline@@@@",
162      "@@@STEP_LOG_LINE@python.inline@# Remove the path.@@@",
163      "@@@STEP_LOG_LINE@python.inline@adb = sys.argv[1]@@@",
164      "@@@STEP_LOG_LINE@python.inline@path = sys.argv[2]@@@",
165      "@@@STEP_LOG_LINE@python.inline@print('Removing %s' % path)@@@",
166      "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'rm', '-rf', path]@@@",
167      "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@",
168      "@@@STEP_LOG_LINE@python.inline@subprocess.check_call(cmd)@@@",
169      "@@@STEP_LOG_LINE@python.inline@@@@",
170      "@@@STEP_LOG_LINE@python.inline@# Verify that the path was deleted.@@@",
171      "@@@STEP_LOG_LINE@python.inline@print('Checking for existence of %s' % path)@@@",
172      "@@@STEP_LOG_LINE@python.inline@cmd = [adb, 'shell', 'ls', path]@@@",
173      "@@@STEP_LOG_LINE@python.inline@print(' '.join(cmd))@@@",
174      "@@@STEP_LOG_LINE@python.inline@try:@@@",
175      "@@@STEP_LOG_LINE@python.inline@  output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)@@@",
176      "@@@STEP_LOG_LINE@python.inline@except subprocess.CalledProcessError as e:@@@",
177      "@@@STEP_LOG_LINE@python.inline@  output = e.output@@@",
178      "@@@STEP_LOG_LINE@python.inline@print('Output was:')@@@",
179      "@@@STEP_LOG_LINE@python.inline@print('======')@@@",
180      "@@@STEP_LOG_LINE@python.inline@print(output)@@@",
181      "@@@STEP_LOG_LINE@python.inline@print('======')@@@",
182      "@@@STEP_LOG_LINE@python.inline@if 'No such file or directory' not in output:@@@",
183      "@@@STEP_LOG_LINE@python.inline@  raise Exception('%s exists despite being deleted' % path)@@@",
184      "@@@STEP_LOG_END@python.inline@@@"
185    ]
186  },
187  {
188    "cmd": [
189      "/usr/bin/adb.1.0.35",
190      "shell",
191      "mkdir",
192      "-p",
193      "/sdcard/revenge_of_the_skiabot/mskp"
194    ],
195    "cwd": "[START_DIR]/skia",
196    "env": {
197      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
198      "CHROME_HEADLESS": "1",
199      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
200    },
201    "infra_step": true,
202    "name": "mkdir /sdcard/revenge_of_the_skiabot/mskp"
203  },
204  {
205    "cmd": [
206      "vpython",
207      "-u",
208      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
209      "--json-output",
210      "/path/to/tmp/json",
211      "glob",
212      "[START_DIR]/mskp",
213      "*"
214    ],
215    "infra_step": true,
216    "name": "ls [START_DIR]/mskp/*",
217    "~followup_annotations": [
218      "@@@STEP_LOG_LINE@glob@[START_DIR]/mskp/bar.jpg@@@",
219      "@@@STEP_LOG_LINE@glob@[START_DIR]/mskp/foo.png@@@",
220      "@@@STEP_LOG_END@glob@@@"
221    ]
222  },
223  {
224    "cmd": [
225      "/usr/bin/adb.1.0.35",
226      "push",
227      "[START_DIR]/mskp/bar.jpg",
228      "[START_DIR]/mskp/foo.png",
229      "/sdcard/revenge_of_the_skiabot/mskp"
230    ],
231    "cwd": "[START_DIR]/skia",
232    "env": {
233      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
234      "CHROME_HEADLESS": "1",
235      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
236    },
237    "infra_step": true,
238    "name": "push [START_DIR]/mskp/* /sdcard/revenge_of_the_skiabot/mskp"
239  },
240  {
241    "cmd": [
242      "/usr/bin/adb.1.0.35",
243      "push",
244      "[START_DIR]/tmp/MSKP_VERSION",
245      "/sdcard/revenge_of_the_skiabot/MSKP_VERSION"
246    ],
247    "cwd": "[START_DIR]/skia",
248    "env": {
249      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
250      "CHROME_HEADLESS": "1",
251      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
252    },
253    "infra_step": true,
254    "name": "push [START_DIR]/tmp/MSKP_VERSION /sdcard/revenge_of_the_skiabot/MSKP_VERSION"
255  },
256  {
257    "cmd": [
258      "vpython",
259      "-u",
260      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
261      "--json-output",
262      "/path/to/tmp/json",
263      "ensure-directory",
264      "--mode",
265      "0777",
266      "[START_DIR]/[SWARM_OUT_DIR]"
267    ],
268    "infra_step": true,
269    "name": "makedirs perf_dir"
270  },
271  {
272    "cmd": [
273      "adb.1.0.35",
274      "push",
275      "[START_DIR]/build/skpbench",
276      "/data/local/tmp/"
277    ],
278    "cwd": "[START_DIR]/skia",
279    "env": {
280      "CHROME_HEADLESS": "1",
281      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
282    },
283    "infra_step": true,
284    "name": "push skpbench"
285  },
286  {
287    "cmd": [
288      "python",
289      "-u",
290      "[START_DIR]/skia/tools/skpbench/skpbench.py",
291      "/data/local/tmp/skpbench",
292      "--resultsfile",
293      "[START_DIR]/[SWARM_OUT_DIR]/table",
294      "--config",
295      "gles",
296      "--internalSamples",
297      "4",
298      "-v5",
299      "--adb",
300      "--adb_binary",
301      "adb.1.0.35",
302      "/sdcard/revenge_of_the_skiabot/mskp"
303    ],
304    "env": {
305      "CHROME_HEADLESS": "1",
306      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
307    },
308    "name": "skpbench"
309  },
310  {
311    "cmd": [
312      "python",
313      "-u",
314      "import os\nprint(os.environ.get('SWARMING_TASK_ID', ''))\n"
315    ],
316    "name": "get swarming task id",
317    "~followup_annotations": [
318      "@@@STEP_LOG_LINE@python.inline@import os@@@",
319      "@@@STEP_LOG_LINE@python.inline@print(os.environ.get('SWARMING_TASK_ID', ''))@@@",
320      "@@@STEP_LOG_END@python.inline@@@"
321    ]
322  },
323  {
324    "cmd": [
325      "python",
326      "-u",
327      "[START_DIR]/skia/tools/skpbench/skiaperf.py",
328      "[START_DIR]/[SWARM_OUT_DIR]/table",
329      "--properties",
330      "gitHash",
331      "abc123",
332      "swarming_bot_id",
333      "skia-bot-123",
334      "swarming_task_id",
335      "123456",
336      "--outfile",
337      "[START_DIR]/[SWARM_OUT_DIR]/skpbench_abc123_1337000001.json",
338      "--key",
339      "arch",
340      "arm64",
341      "compiler",
342      "Clang",
343      "cpu_or_gpu",
344      "GPU",
345      "cpu_or_gpu_value",
346      "Adreno540",
347      "extra_config",
348      "Android_Skpbench_Mskp",
349      "model",
350      "Pixel2XL",
351      "os",
352      "Android",
353      "test_filter",
354      "All"
355    ],
356    "env": {
357      "CHROME_HEADLESS": "1",
358      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
359    },
360    "name": "Parse skpbench output into Perf json"
361  },
362  {
363    "cmd": [
364      "python",
365      "-u",
366      "\nimport os\nimport subprocess\nimport sys\nout = sys.argv[1]\nlog = subprocess.check_output(['/usr/bin/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      try:\n        sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])\n        line = line.replace(addr, addr + ' ' + sym.strip())\n      except subprocess.CalledProcessError:\n        pass\n  print(line)\n",
367      "[START_DIR]/build"
368    ],
369    "env": {
370      "CHROME_HEADLESS": "1",
371      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
372    },
373    "infra_step": true,
374    "name": "dump log",
375    "timeout": 300,
376    "~followup_annotations": [
377      "@@@STEP_LOG_LINE@python.inline@@@@",
378      "@@@STEP_LOG_LINE@python.inline@import os@@@",
379      "@@@STEP_LOG_LINE@python.inline@import subprocess@@@",
380      "@@@STEP_LOG_LINE@python.inline@import sys@@@",
381      "@@@STEP_LOG_LINE@python.inline@out = sys.argv[1]@@@",
382      "@@@STEP_LOG_LINE@python.inline@log = subprocess.check_output(['/usr/bin/adb.1.0.35', 'logcat', '-d'])@@@",
383      "@@@STEP_LOG_LINE@python.inline@for line in log.split('\\n'):@@@",
384      "@@@STEP_LOG_LINE@python.inline@  tokens = line.split()@@@",
385      "@@@STEP_LOG_LINE@python.inline@  if len(tokens) == 11 and tokens[-7] == 'F' and tokens[-3] == 'pc':@@@",
386      "@@@STEP_LOG_LINE@python.inline@    addr, path = tokens[-2:]@@@",
387      "@@@STEP_LOG_LINE@python.inline@    local = os.path.join(out, os.path.basename(path))@@@",
388      "@@@STEP_LOG_LINE@python.inline@    if os.path.exists(local):@@@",
389      "@@@STEP_LOG_LINE@python.inline@      try:@@@",
390      "@@@STEP_LOG_LINE@python.inline@        sym = subprocess.check_output(['addr2line', '-Cfpe', local, addr])@@@",
391      "@@@STEP_LOG_LINE@python.inline@        line = line.replace(addr, addr + ' ' + sym.strip())@@@",
392      "@@@STEP_LOG_LINE@python.inline@      except subprocess.CalledProcessError:@@@",
393      "@@@STEP_LOG_LINE@python.inline@        pass@@@",
394      "@@@STEP_LOG_LINE@python.inline@  print(line)@@@",
395      "@@@STEP_LOG_END@python.inline@@@"
396    ]
397  },
398  {
399    "cmd": [
400      "/usr/bin/adb.1.0.35",
401      "kill-server"
402    ],
403    "cwd": "[START_DIR]/skia",
404    "env": {
405      "ADB_VENDOR_KEYS": "/home/chrome-bot/.android/adbkey",
406      "CHROME_HEADLESS": "1",
407      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
408    },
409    "infra_step": true,
410    "name": "kill adb server"
411  },
412  {
413    "name": "$result"
414  }
415]