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