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