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      "vpython",
20cb93a386Sopenharmony_ci      "-u",
21cb93a386Sopenharmony_ci      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
22cb93a386Sopenharmony_ci      "--json-output",
23cb93a386Sopenharmony_ci      "/path/to/tmp/json",
24cb93a386Sopenharmony_ci      "copy",
25cb93a386Sopenharmony_ci      "[START_DIR]/skia/infra/bots/assets/lottie-samples/VERSION",
26cb93a386Sopenharmony_ci      "/path/to/tmp/"
27cb93a386Sopenharmony_ci    ],
28cb93a386Sopenharmony_ci    "infra_step": true,
29cb93a386Sopenharmony_ci    "name": "Get lottie-samples VERSION",
30cb93a386Sopenharmony_ci    "~followup_annotations": [
31cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@VERSION@42@@@",
32cb93a386Sopenharmony_ci      "@@@STEP_LOG_END@VERSION@@@"
33cb93a386Sopenharmony_ci    ]
34cb93a386Sopenharmony_ci  },
35cb93a386Sopenharmony_ci  {
36cb93a386Sopenharmony_ci    "cmd": [
37cb93a386Sopenharmony_ci      "vpython",
38cb93a386Sopenharmony_ci      "-u",
39cb93a386Sopenharmony_ci      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
40cb93a386Sopenharmony_ci      "--json-output",
41cb93a386Sopenharmony_ci      "/path/to/tmp/json",
42cb93a386Sopenharmony_ci      "copy",
43cb93a386Sopenharmony_ci      "42",
44cb93a386Sopenharmony_ci      "[START_DIR]/tmp/LOTTIE_VERSION"
45cb93a386Sopenharmony_ci    ],
46cb93a386Sopenharmony_ci    "infra_step": true,
47cb93a386Sopenharmony_ci    "name": "write LOTTIE_VERSION",
48cb93a386Sopenharmony_ci    "~followup_annotations": [
49cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@LOTTIE_VERSION@42@@@",
50cb93a386Sopenharmony_ci      "@@@STEP_LOG_END@LOTTIE_VERSION@@@"
51cb93a386Sopenharmony_ci    ]
52cb93a386Sopenharmony_ci  },
53cb93a386Sopenharmony_ci  {
54cb93a386Sopenharmony_ci    "cmd": [
55cb93a386Sopenharmony_ci      "vpython",
56cb93a386Sopenharmony_ci      "-u",
57cb93a386Sopenharmony_ci      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
58cb93a386Sopenharmony_ci      "--json-output",
59cb93a386Sopenharmony_ci      "/path/to/tmp/json",
60cb93a386Sopenharmony_ci      "rmtree",
61cb93a386Sopenharmony_ci      "[START_DIR]/test"
62cb93a386Sopenharmony_ci    ],
63cb93a386Sopenharmony_ci    "infra_step": true,
64cb93a386Sopenharmony_ci    "name": "rmtree test"
65cb93a386Sopenharmony_ci  },
66cb93a386Sopenharmony_ci  {
67cb93a386Sopenharmony_ci    "cmd": [
68cb93a386Sopenharmony_ci      "vpython",
69cb93a386Sopenharmony_ci      "-u",
70cb93a386Sopenharmony_ci      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
71cb93a386Sopenharmony_ci      "--json-output",
72cb93a386Sopenharmony_ci      "/path/to/tmp/json",
73cb93a386Sopenharmony_ci      "ensure-directory",
74cb93a386Sopenharmony_ci      "--mode",
75cb93a386Sopenharmony_ci      "0777",
76cb93a386Sopenharmony_ci      "[START_DIR]/test"
77cb93a386Sopenharmony_ci    ],
78cb93a386Sopenharmony_ci    "infra_step": true,
79cb93a386Sopenharmony_ci    "name": "makedirs test"
80cb93a386Sopenharmony_ci  },
81cb93a386Sopenharmony_ci  {
82cb93a386Sopenharmony_ci    "cmd": [
83cb93a386Sopenharmony_ci      "python",
84cb93a386Sopenharmony_ci      "-u",
85cb93a386Sopenharmony_ci      "\nimport contextlib\nimport math\nimport socket\nimport sys\nimport time\nimport urllib2\n\nHASHES_URL = sys.argv[1]\nRETRIES = 5\nTIMEOUT = 60\nWAIT_BASE = 15\n\nsocket.setdefaulttimeout(TIMEOUT)\nfor retry in range(RETRIES):\n  try:\n    with contextlib.closing(\n        urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:\n      hashes = w.read()\n      with open(sys.argv[2], 'w') as f:\n        f.write(hashes)\n        break\n  except Exception as e:\n    print('Failed to get uninteresting hashes from %s:' % HASHES_URL)\n    print(e)\n    if retry == RETRIES:\n      raise\n    waittime = WAIT_BASE * math.pow(2, retry)\n    print('Retry in %d seconds.' % waittime)\n    time.sleep(waittime)\n",
86cb93a386Sopenharmony_ci      "https://example.com/hashes.txt",
87cb93a386Sopenharmony_ci      "[START_DIR]/tmp/uninteresting_hashes.txt"
88cb93a386Sopenharmony_ci    ],
89cb93a386Sopenharmony_ci    "env": {
90cb93a386Sopenharmony_ci      "CHROME_HEADLESS": "1",
91cb93a386Sopenharmony_ci      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
92cb93a386Sopenharmony_ci    },
93cb93a386Sopenharmony_ci    "infra_step": true,
94cb93a386Sopenharmony_ci    "name": "get uninteresting hashes",
95cb93a386Sopenharmony_ci    "~followup_annotations": [
96cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@@@@",
97cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@import contextlib@@@",
98cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@import math@@@",
99cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@import socket@@@",
100cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@import sys@@@",
101cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@import time@@@",
102cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@import urllib2@@@",
103cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@@@@",
104cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@HASHES_URL = sys.argv[1]@@@",
105cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@RETRIES = 5@@@",
106cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@TIMEOUT = 60@@@",
107cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@WAIT_BASE = 15@@@",
108cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@@@@",
109cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@socket.setdefaulttimeout(TIMEOUT)@@@",
110cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@for retry in range(RETRIES):@@@",
111cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@  try:@@@",
112cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@    with contextlib.closing(@@@",
113cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@        urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:@@@",
114cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@      hashes = w.read()@@@",
115cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@      with open(sys.argv[2], 'w') as f:@@@",
116cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@        f.write(hashes)@@@",
117cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@        break@@@",
118cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@  except Exception as e:@@@",
119cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@    print('Failed to get uninteresting hashes from %s:' % HASHES_URL)@@@",
120cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@    print(e)@@@",
121cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@    if retry == RETRIES:@@@",
122cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@      raise@@@",
123cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@    waittime = WAIT_BASE * math.pow(2, retry)@@@",
124cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@    print('Retry in %d seconds.' % waittime)@@@",
125cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@    time.sleep(waittime)@@@",
126cb93a386Sopenharmony_ci      "@@@STEP_LOG_END@python.inline@@@"
127cb93a386Sopenharmony_ci    ]
128cb93a386Sopenharmony_ci  },
129cb93a386Sopenharmony_ci  {
130cb93a386Sopenharmony_ci    "cmd": [
131cb93a386Sopenharmony_ci      "python",
132cb93a386Sopenharmony_ci      "-u",
133cb93a386Sopenharmony_ci      "import os\nprint(os.environ.get('SWARMING_BOT_ID', ''))\n"
134cb93a386Sopenharmony_ci    ],
135cb93a386Sopenharmony_ci    "name": "get swarming bot id",
136cb93a386Sopenharmony_ci    "~followup_annotations": [
137cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@import os@@@",
138cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@print(os.environ.get('SWARMING_BOT_ID', ''))@@@",
139cb93a386Sopenharmony_ci      "@@@STEP_LOG_END@python.inline@@@"
140cb93a386Sopenharmony_ci    ]
141cb93a386Sopenharmony_ci  },
142cb93a386Sopenharmony_ci  {
143cb93a386Sopenharmony_ci    "cmd": [
144cb93a386Sopenharmony_ci      "python",
145cb93a386Sopenharmony_ci      "-u",
146cb93a386Sopenharmony_ci      "import os\nprint(os.environ.get('SWARMING_TASK_ID', ''))\n"
147cb93a386Sopenharmony_ci    ],
148cb93a386Sopenharmony_ci    "name": "get swarming task id",
149cb93a386Sopenharmony_ci    "~followup_annotations": [
150cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@import os@@@",
151cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@python.inline@print(os.environ.get('SWARMING_TASK_ID', ''))@@@",
152cb93a386Sopenharmony_ci      "@@@STEP_LOG_END@python.inline@@@"
153cb93a386Sopenharmony_ci    ]
154cb93a386Sopenharmony_ci  },
155cb93a386Sopenharmony_ci  {
156cb93a386Sopenharmony_ci    "cmd": [
157cb93a386Sopenharmony_ci      "python",
158cb93a386Sopenharmony_ci      "-u",
159cb93a386Sopenharmony_ci      "RECIPE_MODULE[skia::flavor]/resources/symbolize_stack_trace.py",
160cb93a386Sopenharmony_ci      "[START_DIR]",
161cb93a386Sopenharmony_ci      "catchsegv",
162cb93a386Sopenharmony_ci      "[START_DIR]/build/dm",
163cb93a386Sopenharmony_ci      "--example",
164cb93a386Sopenharmony_ci      "--flags",
165cb93a386Sopenharmony_ci      "--properties",
166cb93a386Sopenharmony_ci      "bot",
167cb93a386Sopenharmony_ci      "skia-bot-123",
168cb93a386Sopenharmony_ci      "key1",
169cb93a386Sopenharmony_ci      "value1",
170cb93a386Sopenharmony_ci      "task",
171cb93a386Sopenharmony_ci      "123456",
172cb93a386Sopenharmony_ci      "--resourcePath",
173cb93a386Sopenharmony_ci      "[START_DIR]/skia/resources",
174cb93a386Sopenharmony_ci      "--lotties",
175cb93a386Sopenharmony_ci      "[START_DIR]/skia/resources/skottie",
176cb93a386Sopenharmony_ci      "[START_DIR]/lottie-samples",
177cb93a386Sopenharmony_ci      "--uninterestingHashesFile",
178cb93a386Sopenharmony_ci      "[START_DIR]/tmp/uninteresting_hashes.txt",
179cb93a386Sopenharmony_ci      "--writePath",
180cb93a386Sopenharmony_ci      "[START_DIR]/[SWARM_OUT_DIR]"
181cb93a386Sopenharmony_ci    ],
182cb93a386Sopenharmony_ci    "cwd": "[START_DIR]/skia",
183cb93a386Sopenharmony_ci    "env": {
184cb93a386Sopenharmony_ci      "CHROME_HEADLESS": "1",
185cb93a386Sopenharmony_ci      "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
186cb93a386Sopenharmony_ci    },
187cb93a386Sopenharmony_ci    "name": "symbolized dm"
188cb93a386Sopenharmony_ci  },
189cb93a386Sopenharmony_ci  {
190cb93a386Sopenharmony_ci    "cmd": [
191cb93a386Sopenharmony_ci      "vpython",
192cb93a386Sopenharmony_ci      "-u",
193cb93a386Sopenharmony_ci      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
194cb93a386Sopenharmony_ci      "--json-output",
195cb93a386Sopenharmony_ci      "/path/to/tmp/json",
196cb93a386Sopenharmony_ci      "glob",
197cb93a386Sopenharmony_ci      "[START_DIR]/[SWARM_OUT_DIR]",
198cb93a386Sopenharmony_ci      "*.png"
199cb93a386Sopenharmony_ci    ],
200cb93a386Sopenharmony_ci    "infra_step": true,
201cb93a386Sopenharmony_ci    "name": "find .png images",
202cb93a386Sopenharmony_ci    "~followup_annotations": [
203cb93a386Sopenharmony_ci      "@@@STEP_LOG_LINE@glob@[START_DIR]/[SWARM_OUT_DIR]/someimage.png@@@",
204cb93a386Sopenharmony_ci      "@@@STEP_LOG_END@glob@@@"
205cb93a386Sopenharmony_ci    ]
206cb93a386Sopenharmony_ci  },
207cb93a386Sopenharmony_ci  {
208cb93a386Sopenharmony_ci    "cmd": [
209cb93a386Sopenharmony_ci      "gsutil",
210cb93a386Sopenharmony_ci      "-m",
211cb93a386Sopenharmony_ci      "cp",
212cb93a386Sopenharmony_ci      "[START_DIR]/[SWARM_OUT_DIR]/*.png",
213cb93a386Sopenharmony_ci      "gs://skia-infra-gm/dm-images-v1"
214cb93a386Sopenharmony_ci    ],
215cb93a386Sopenharmony_ci    "name": "upload .png images"
216cb93a386Sopenharmony_ci  },
217cb93a386Sopenharmony_ci  {
218cb93a386Sopenharmony_ci    "cmd": [
219cb93a386Sopenharmony_ci      "gsutil",
220cb93a386Sopenharmony_ci      "cp",
221cb93a386Sopenharmony_ci      "-Z",
222cb93a386Sopenharmony_ci      "[START_DIR]/[SWARM_OUT_DIR]/dm.json",
223cb93a386Sopenharmony_ci      "gs://skia-infra-gm/trybot/dm-json-v1/2012/05/14/12/1234_7/Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-Lottie/1337000001/dm.json"
224cb93a386Sopenharmony_ci    ],
225cb93a386Sopenharmony_ci    "name": "upload dm.json"
226cb93a386Sopenharmony_ci  },
227cb93a386Sopenharmony_ci  {
228cb93a386Sopenharmony_ci    "name": "$result"
229cb93a386Sopenharmony_ci  }
230cb93a386Sopenharmony_ci]