Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(52)

Side by Side Diff: scripts/slave/recipes/skia/swarm_trigger.expected/Build-Ubuntu-GCC-x86_64-Release-Swarming-Trybot.json

Issue 1919193002: build: roll infra_paths changes (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: merge Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 [ 1 [
2 { 2 {
3 "cmd": [ 3 "cmd": [
4 "git", 4 "git",
5 "remote", 5 "remote",
6 "set-url", 6 "set-url",
7 "origin", 7 "origin",
8 "https://skia.googlesource.com/skia.git" 8 "https://skia.googlesource.com/skia.git"
9 ], 9 ],
10 "cwd": "[SLAVE_BUILD]/skia", 10 "cwd": "[CWD]/skia",
11 "name": "git remote set-url" 11 "name": "git remote set-url"
12 }, 12 },
13 { 13 {
14 "cmd": [ 14 "cmd": [
15 "git", 15 "git",
16 "fetch" 16 "fetch"
17 ], 17 ],
18 "cwd": "[SLAVE_BUILD]/skia", 18 "cwd": "[CWD]/skia",
19 "name": "git fetch" 19 "name": "git fetch"
20 }, 20 },
21 { 21 {
22 "cmd": [ 22 "cmd": [
23 "git", 23 "git",
24 "reset", 24 "reset",
25 "--hard", 25 "--hard",
26 "abc123" 26 "abc123"
27 ], 27 ],
28 "cwd": "[SLAVE_BUILD]/skia", 28 "cwd": "[CWD]/skia",
29 "name": "git reset" 29 "name": "git reset"
30 }, 30 },
31 { 31 {
32 "cmd": [ 32 "cmd": [
33 "git", 33 "git",
34 "clean", 34 "clean",
35 "-d", 35 "-d",
36 "-f" 36 "-f"
37 ], 37 ],
38 "cwd": "[SLAVE_BUILD]/skia", 38 "cwd": "[CWD]/skia",
39 "name": "git clean" 39 "name": "git clean"
40 }, 40 },
41 { 41 {
42 "cmd": [ 42 "cmd": [
43 "python", 43 "python",
44 "-u", 44 "-u",
45 "RECIPE_PACKAGE_REPO[depot_tools]/gclient.py", 45 "RECIPE_PACKAGE_REPO[depot_tools]/gclient.py",
46 "config", 46 "config",
47 "--spec", 47 "--spec",
48 "cache_dir = None\nsolutions = [{'deps_file': 'DEPS', 'managed': False, 'n ame': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]\ntarget_os = ['l lvm']" 48 "cache_dir = None\nsolutions = [{'deps_file': 'DEPS', 'managed': False, 'n ame': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]\ntarget_os = ['l lvm']"
49 ], 49 ],
50 "cwd": "[SLAVE_BUILD]",
51 "env": { 50 "env": {
52 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]" 51 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
53 }, 52 },
54 "name": "gclient setup" 53 "name": "gclient setup"
55 }, 54 },
56 { 55 {
57 "cmd": [ 56 "cmd": [
58 "python", 57 "python",
59 "-u", 58 "-u",
60 "[BUILD]/scripts/slave/gclient_safe_revert.py", 59 "[ROOT]/b/build/scripts/slave/gclient_safe_revert.py",
61 ".", 60 ".",
62 "[DEPOT_TOOLS]/gclient" 61 "[ROOT]/b/depot_tools/gclient"
63 ], 62 ],
64 "cwd": "[SLAVE_BUILD]",
65 "name": "gclient revert" 63 "name": "gclient revert"
66 }, 64 },
67 { 65 {
68 "cmd": [ 66 "cmd": [
69 "python", 67 "python",
70 "-u", 68 "-u",
71 "RECIPE_PACKAGE_REPO[depot_tools]/gclient.py", 69 "RECIPE_PACKAGE_REPO[depot_tools]/gclient.py",
72 "sync", 70 "sync",
73 "--nohooks", 71 "--nohooks",
74 "--force", 72 "--force",
75 "--verbose", 73 "--verbose",
76 "--delete_unversioned_trees", 74 "--delete_unversioned_trees",
77 "--revision", 75 "--revision",
78 "skia@abc123", 76 "skia@abc123",
79 "--output-json", 77 "--output-json",
80 "/path/to/tmp/json" 78 "/path/to/tmp/json"
81 ], 79 ],
82 "cwd": "[SLAVE_BUILD]",
83 "env": { 80 "env": {
84 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]" 81 "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
85 }, 82 },
86 "name": "gclient sync", 83 "name": "gclient sync",
87 "~followup_annotations": [ 84 "~followup_annotations": [
88 "@@@STEP_LOG_LINE@json.output@{@@@", 85 "@@@STEP_LOG_LINE@json.output@{@@@",
89 "@@@STEP_LOG_LINE@json.output@ \"solutions\": {@@@", 86 "@@@STEP_LOG_LINE@json.output@ \"solutions\": {@@@",
90 "@@@STEP_LOG_LINE@json.output@ \"skia/\": {@@@", 87 "@@@STEP_LOG_LINE@json.output@ \"skia/\": {@@@",
91 "@@@STEP_LOG_LINE@json.output@ \"revision\": 164710@@@", 88 "@@@STEP_LOG_LINE@json.output@ \"revision\": 164710@@@",
92 "@@@STEP_LOG_LINE@json.output@ }@@@", 89 "@@@STEP_LOG_LINE@json.output@ }@@@",
93 "@@@STEP_LOG_LINE@json.output@ }@@@", 90 "@@@STEP_LOG_LINE@json.output@ }@@@",
94 "@@@STEP_LOG_LINE@json.output@}@@@", 91 "@@@STEP_LOG_LINE@json.output@}@@@",
95 "@@@STEP_LOG_END@json.output@@@", 92 "@@@STEP_LOG_END@json.output@@@",
96 "@@@SET_BUILD_PROPERTY@got_revision@164710@@@" 93 "@@@SET_BUILD_PROPERTY@got_revision@164710@@@"
97 ] 94 ]
98 }, 95 },
99 { 96 {
100 "cmd": [ 97 "cmd": [
101 "python", 98 "python",
102 "-u", 99 "-u",
103 "[DEPOT_TOOLS]/apply_issue.py", 100 "[ROOT]/b/depot_tools/apply_issue.py",
104 "-r", 101 "-r",
105 "[SLAVE_BUILD]/skia", 102 "[CWD]/skia",
106 "-i", 103 "-i",
107 "500", 104 "500",
108 "-p", 105 "-p",
109 "1", 106 "1",
110 "-s", 107 "-s",
111 "https://codereview.chromium.org", 108 "https://codereview.chromium.org",
112 "--no-auth" 109 "--no-auth"
113 ], 110 ],
114 "cwd": "[SLAVE_BUILD]",
115 "name": "apply_issue", 111 "name": "apply_issue",
116 "~followup_annotations": [ 112 "~followup_annotations": [
117 "@@@STEP_LINK@Applied issue 500@https://codereview.chromium.org/500@@@" 113 "@@@STEP_LINK@Applied issue 500@https://codereview.chromium.org/500@@@"
118 ] 114 ]
119 }, 115 },
120 { 116 {
121 "cmd": [ 117 "cmd": [
122 "python", 118 "python",
123 "-u", 119 "-u",
124 "[SLAVE_BUILD]/skia/tools/buildbot_spec.py", 120 "[CWD]/skia/tools/buildbot_spec.py",
125 "/path/to/tmp/json", 121 "/path/to/tmp/json",
126 "Build-Ubuntu-GCC-x86_64-Release-Swarming-Trybot" 122 "Build-Ubuntu-GCC-x86_64-Release-Swarming-Trybot"
127 ], 123 ],
128 "cwd": "[SLAVE_BUILD]/skia", 124 "cwd": "[CWD]/skia",
129 "name": "exec buildbot_spec.py", 125 "name": "exec buildbot_spec.py",
130 "~followup_annotations": [ 126 "~followup_annotations": [
131 "@@@STEP_LOG_LINE@json.output@{@@@", 127 "@@@STEP_LOG_LINE@json.output@{@@@",
132 "@@@STEP_LOG_LINE@json.output@ \"build_targets\": [@@@", 128 "@@@STEP_LOG_LINE@json.output@ \"build_targets\": [@@@",
133 "@@@STEP_LOG_LINE@json.output@ \"most\"@@@", 129 "@@@STEP_LOG_LINE@json.output@ \"most\"@@@",
134 "@@@STEP_LOG_LINE@json.output@ ], @@@", 130 "@@@STEP_LOG_LINE@json.output@ ], @@@",
135 "@@@STEP_LOG_LINE@json.output@ \"builder_cfg\": {@@@", 131 "@@@STEP_LOG_LINE@json.output@ \"builder_cfg\": {@@@",
136 "@@@STEP_LOG_LINE@json.output@ \"compiler\": \"GCC\", @@@", 132 "@@@STEP_LOG_LINE@json.output@ \"compiler\": \"GCC\", @@@",
137 "@@@STEP_LOG_LINE@json.output@ \"configuration\": \"Release\", @@@", 133 "@@@STEP_LOG_LINE@json.output@ \"configuration\": \"Release\", @@@",
138 "@@@STEP_LOG_LINE@json.output@ \"extra_config\": \"Swarming\", @@@", 134 "@@@STEP_LOG_LINE@json.output@ \"extra_config\": \"Swarming\", @@@",
(...skipping 19 matching lines...) Expand all
158 "@@@STEP_LOG_LINE@json.output@}@@@", 154 "@@@STEP_LOG_LINE@json.output@}@@@",
159 "@@@STEP_LOG_END@json.output@@@" 155 "@@@STEP_LOG_END@json.output@@@"
160 ] 156 ]
161 }, 157 },
162 { 158 {
163 "cmd": [ 159 "cmd": [
164 "python", 160 "python",
165 "-u", 161 "-u",
166 "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py", 162 "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py",
167 "--path", 163 "--path",
168 "[SLAVE_BUILD]/swarming.client", 164 "[CWD]/swarming.client",
169 "--url", 165 "--url",
170 "https://chromium.googlesource.com/external/swarming.client.git" 166 "https://chromium.googlesource.com/external/swarming.client.git"
171 ], 167 ],
172 "cwd": "[SLAVE_BUILD]",
173 "name": "git setup (swarming_client)" 168 "name": "git setup (swarming_client)"
174 }, 169 },
175 { 170 {
176 "cmd": [ 171 "cmd": [
177 "git", 172 "git",
178 "retry", 173 "retry",
179 "fetch", 174 "fetch",
180 "origin", 175 "origin",
181 "master" 176 "master"
182 ], 177 ],
183 "cwd": "[SLAVE_BUILD]/swarming.client", 178 "cwd": "[CWD]/swarming.client",
184 "name": "git fetch (swarming_client)" 179 "name": "git fetch (swarming_client)"
185 }, 180 },
186 { 181 {
187 "cmd": [ 182 "cmd": [
188 "git", 183 "git",
189 "checkout", 184 "checkout",
190 "-f", 185 "-f",
191 "FETCH_HEAD" 186 "FETCH_HEAD"
192 ], 187 ],
193 "cwd": "[SLAVE_BUILD]/swarming.client", 188 "cwd": "[CWD]/swarming.client",
194 "name": "git checkout (swarming_client)" 189 "name": "git checkout (swarming_client)"
195 }, 190 },
196 { 191 {
197 "cmd": [ 192 "cmd": [
198 "git", 193 "git",
199 "rev-parse", 194 "rev-parse",
200 "HEAD" 195 "HEAD"
201 ], 196 ],
202 "cwd": "[SLAVE_BUILD]/swarming.client", 197 "cwd": "[CWD]/swarming.client",
203 "name": "read revision", 198 "name": "read revision",
204 "stdout": "/path/to/tmp/", 199 "stdout": "/path/to/tmp/",
205 "~followup_annotations": [ 200 "~followup_annotations": [
206 "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@" 201 "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@"
207 ] 202 ]
208 }, 203 },
209 { 204 {
210 "cmd": [ 205 "cmd": [
211 "git", 206 "git",
212 "clean", 207 "clean",
213 "-f", 208 "-f",
214 "-d", 209 "-d",
215 "-x" 210 "-x"
216 ], 211 ],
217 "cwd": "[SLAVE_BUILD]/swarming.client", 212 "cwd": "[CWD]/swarming.client",
218 "name": "git clean (swarming_client)" 213 "name": "git clean (swarming_client)"
219 }, 214 },
220 { 215 {
221 "cmd": [ 216 "cmd": [
222 "git", 217 "git",
223 "submodule", 218 "submodule",
224 "sync" 219 "sync"
225 ], 220 ],
226 "cwd": "[SLAVE_BUILD]/swarming.client", 221 "cwd": "[CWD]/swarming.client",
227 "name": "submodule sync (swarming_client)" 222 "name": "submodule sync (swarming_client)"
228 }, 223 },
229 { 224 {
230 "cmd": [ 225 "cmd": [
231 "git", 226 "git",
232 "submodule", 227 "submodule",
233 "update", 228 "update",
234 "--init", 229 "--init",
235 "--recursive" 230 "--recursive"
236 ], 231 ],
237 "cwd": "[SLAVE_BUILD]/swarming.client", 232 "cwd": "[CWD]/swarming.client",
238 "name": "submodule update (swarming_client)" 233 "name": "submodule update (swarming_client)"
239 }, 234 },
240 { 235 {
241 "cmd": [ 236 "cmd": [
242 "python", 237 "python",
243 "-u", 238 "-u",
244 "[SLAVE_BUILD]/swarming.client/swarming.py", 239 "[CWD]/swarming.client/swarming.py",
245 "--version" 240 "--version"
246 ], 241 ],
247 "cwd": "[SLAVE_BUILD]",
248 "name": "swarming.py --version", 242 "name": "swarming.py --version",
249 "stdout": "/path/to/tmp/", 243 "stdout": "/path/to/tmp/",
250 "~followup_annotations": [ 244 "~followup_annotations": [
251 "@@@STEP_TEXT@0.4.10@@@" 245 "@@@STEP_TEXT@0.4.10@@@"
252 ] 246 ]
253 }, 247 },
254 { 248 {
255 "cmd": [ 249 "cmd": [
256 "download_from_google_storage", 250 "download_from_google_storage",
257 "--no_resume", 251 "--no_resume",
258 "--platform=linux*", 252 "--platform=linux*",
259 "--no_auth", 253 "--no_auth",
260 "--bucket", 254 "--bucket",
261 "chromium-luci", 255 "chromium-luci",
262 "-d", 256 "-d",
263 "[SLAVE_BUILD]/skia/infra/bots/tools/luci-go/linux64" 257 "[CWD]/skia/infra/bots/tools/luci-go/linux64"
264 ], 258 ],
265 "cwd": "[SLAVE_BUILD]",
266 "name": "download luci-go linux" 259 "name": "download luci-go linux"
267 }, 260 },
268 { 261 {
269 "cmd": [ 262 "cmd": [
270 "download_from_google_storage", 263 "download_from_google_storage",
271 "--no_resume", 264 "--no_resume",
272 "--platform=darwin", 265 "--platform=darwin",
273 "--no_auth", 266 "--no_auth",
274 "--bucket", 267 "--bucket",
275 "chromium-luci", 268 "chromium-luci",
276 "-d", 269 "-d",
277 "[SLAVE_BUILD]/skia/infra/bots/tools/luci-go/mac64" 270 "[CWD]/skia/infra/bots/tools/luci-go/mac64"
278 ], 271 ],
279 "cwd": "[SLAVE_BUILD]",
280 "name": "download luci-go mac" 272 "name": "download luci-go mac"
281 }, 273 },
282 { 274 {
283 "cmd": [ 275 "cmd": [
284 "download_from_google_storage", 276 "download_from_google_storage",
285 "--no_resume", 277 "--no_resume",
286 "--platform=win32", 278 "--platform=win32",
287 "--no_auth", 279 "--no_auth",
288 "--bucket", 280 "--bucket",
289 "chromium-luci", 281 "chromium-luci",
290 "-d", 282 "-d",
291 "[SLAVE_BUILD]/skia/infra/bots/tools/luci-go/win64" 283 "[CWD]/skia/infra/bots/tools/luci-go/win64"
292 ], 284 ],
293 "cwd": "[SLAVE_BUILD]",
294 "name": "download luci-go win" 285 "name": "download luci-go win"
295 }, 286 },
296 { 287 {
297 "cmd": [ 288 "cmd": [
298 "python", 289 "python",
299 "-u", 290 "-u",
300 "\nimport os, sys\nfrom common import chromium_utils # Error? See https:// crbug.com/584783.\n\n\nif os.path.exists(sys.argv[1]):\n chromium_utils.RemoveD irectory(sys.argv[1])\n", 291 "\nimport os, sys\nfrom common import chromium_utils # Error? See https:// crbug.com/584783.\n\n\nif os.path.exists(sys.argv[1]):\n chromium_utils.RemoveD irectory(sys.argv[1])\n",
301 "[SLAVE_BUILD]/luci-go" 292 "[CWD]/luci-go"
302 ], 293 ],
303 "cwd": "[SLAVE_BUILD]",
304 "name": "rmtree Go binary dir", 294 "name": "rmtree Go binary dir",
305 "~followup_annotations": [ 295 "~followup_annotations": [
306 "@@@STEP_LOG_LINE@python.inline@@@@", 296 "@@@STEP_LOG_LINE@python.inline@@@@",
307 "@@@STEP_LOG_LINE@python.inline@import os, sys@@@", 297 "@@@STEP_LOG_LINE@python.inline@import os, sys@@@",
308 "@@@STEP_LOG_LINE@python.inline@from common import chromium_utils # Error? See https://crbug.com/584783.@@@", 298 "@@@STEP_LOG_LINE@python.inline@from common import chromium_utils # Error? See https://crbug.com/584783.@@@",
309 "@@@STEP_LOG_LINE@python.inline@@@@", 299 "@@@STEP_LOG_LINE@python.inline@@@@",
310 "@@@STEP_LOG_LINE@python.inline@@@@", 300 "@@@STEP_LOG_LINE@python.inline@@@@",
311 "@@@STEP_LOG_LINE@python.inline@if os.path.exists(sys.argv[1]):@@@", 301 "@@@STEP_LOG_LINE@python.inline@if os.path.exists(sys.argv[1]):@@@",
312 "@@@STEP_LOG_LINE@python.inline@ chromium_utils.RemoveDirectory(sys.argv[ 1])@@@", 302 "@@@STEP_LOG_LINE@python.inline@ chromium_utils.RemoveDirectory(sys.argv[ 1])@@@",
313 "@@@STEP_LOG_END@python.inline@@@" 303 "@@@STEP_LOG_END@python.inline@@@"
314 ] 304 ]
315 }, 305 },
316 { 306 {
317 "cmd": [ 307 "cmd": [
318 "python", 308 "python",
319 "-u", 309 "-u",
320 "\nimport shutil\nimport sys\nshutil.copytree(sys.argv[1], sys.argv[2], sy mlinks=bool(sys.argv[3]))\n", 310 "\nimport shutil\nimport sys\nshutil.copytree(sys.argv[1], sys.argv[2], sy mlinks=bool(sys.argv[3]))\n",
321 "[SLAVE_BUILD]/skia/infra/bots/tools/luci-go", 311 "[CWD]/skia/infra/bots/tools/luci-go",
322 "[SLAVE_BUILD]/luci-go", 312 "[CWD]/luci-go",
323 "0" 313 "0"
324 ], 314 ],
325 "cwd": "[SLAVE_BUILD]",
326 "name": "Copy Go binary" 315 "name": "Copy Go binary"
327 }, 316 },
328 { 317 {
329 "cmd": [ 318 "cmd": [
330 "python", 319 "python",
331 "-u", 320 "-u",
332 "\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os. path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n", 321 "\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os. path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
333 "[BUILD]/third_party/infra", 322 "[ROOT]/b/build/third_party/infra",
334 "511" 323 "511"
335 ], 324 ],
336 "cwd": "[SLAVE_BUILD]",
337 "name": "makedirs third_party_infra", 325 "name": "makedirs third_party_infra",
338 "~followup_annotations": [ 326 "~followup_annotations": [
339 "@@@STEP_LOG_LINE@python.inline@@@@", 327 "@@@STEP_LOG_LINE@python.inline@@@@",
340 "@@@STEP_LOG_LINE@python.inline@import sys, os@@@", 328 "@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
341 "@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@", 329 "@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
342 "@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@", 330 "@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
343 "@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@", 331 "@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
344 "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@", 332 "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
345 "@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@", 333 "@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
346 "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", 334 "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
347 "@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@", 335 "@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
348 "@@@STEP_LOG_END@python.inline@@@" 336 "@@@STEP_LOG_END@python.inline@@@"
349 ] 337 ]
350 }, 338 },
351 { 339 {
352 "cmd": [ 340 "cmd": [
353 "python", 341 "python",
354 "-u", 342 "-u",
355 "\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os. path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n", 343 "\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os. path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
356 "[SLAVE_BUILD]/swarming_temp_dir", 344 "[CWD]/swarming_temp_dir",
357 "511" 345 "511"
358 ], 346 ],
359 "cwd": "[SLAVE_BUILD]",
360 "name": "makedirs swarming tmp dir", 347 "name": "makedirs swarming tmp dir",
361 "~followup_annotations": [ 348 "~followup_annotations": [
362 "@@@STEP_LOG_LINE@python.inline@@@@", 349 "@@@STEP_LOG_LINE@python.inline@@@@",
363 "@@@STEP_LOG_LINE@python.inline@import sys, os@@@", 350 "@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
364 "@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@", 351 "@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
365 "@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@", 352 "@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
366 "@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@", 353 "@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
367 "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@", 354 "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
368 "@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@", 355 "@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
369 "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", 356 "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
370 "@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@", 357 "@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
371 "@@@STEP_LOG_END@python.inline@@@" 358 "@@@STEP_LOG_END@python.inline@@@"
372 ] 359 ]
373 }, 360 },
374 { 361 {
375 "cmd": [ 362 "cmd": [
376 "python", 363 "python",
377 "-u", 364 "-u",
378 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", 365 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
379 "{\n \"args\": [\n \"--isolate\", \n \"[BUILD]/scripts/sl ave/recipes/skia/swarm_recipe.isolate\", \n \"--isolated\", \n \"[ SLAVE_BUILD]/swarming_temp_dir/skia-task-isolate_recipes.isolated\", \n \ "--config-variable\", \n \"OS\", \n \"linux\"\n ], \n \"dir\ ": \"[BUILD]/scripts/slave/recipes/skia\", \n \"version\": 1\n}", 366 "{\n \"args\": [\n \"--isolate\", \n \"[ROOT]/b/build/scr ipts/slave/recipes/skia/swarm_recipe.isolate\", \n \"--isolated\", \n \"[CWD]/swarming_temp_dir/skia-task-isolate_recipes.isolated\", \n \" --config-variable\", \n \"OS\", \n \"linux\"\n ], \n \"dir\" : \"[ROOT]/b/build/scripts/slave/recipes/skia\", \n \"version\": 1\n}",
380 "[SLAVE_BUILD]/swarming_temp_dir/isolate_recipes.isolated.gen.json" 367 "[CWD]/swarming_temp_dir/isolate_recipes.isolated.gen.json"
381 ], 368 ],
382 "cwd": "[SLAVE_BUILD]",
383 "name": "Write isolate_recipes.isolated.gen.json" 369 "name": "Write isolate_recipes.isolated.gen.json"
384 }, 370 },
385 { 371 {
386 "cmd": [ 372 "cmd": [
387 "python", 373 "python",
388 "-u", 374 "-u",
389 "RECIPE_MODULE[build::isolate]/resources/isolate.py", 375 "RECIPE_MODULE[build::isolate]/resources/isolate.py",
390 "[SLAVE_BUILD]/swarming.client", 376 "[CWD]/swarming.client",
391 "batcharchive", 377 "batcharchive",
392 "--dump-json", 378 "--dump-json",
393 "/path/to/tmp/json", 379 "/path/to/tmp/json",
394 "--isolate-server", 380 "--isolate-server",
395 "https://isolateserver.appspot.com", 381 "https://isolateserver.appspot.com",
396 "--verbose", 382 "--verbose",
397 "[SLAVE_BUILD]/swarming_temp_dir/isolate_recipes.isolated.gen.json" 383 "[CWD]/swarming_temp_dir/isolate_recipes.isolated.gen.json"
398 ], 384 ],
399 "cwd": "[SLAVE_BUILD]",
400 "name": "isolate tests", 385 "name": "isolate tests",
401 "~followup_annotations": [ 386 "~followup_annotations": [
402 "@@@STEP_LOG_LINE@json.output@{@@@", 387 "@@@STEP_LOG_LINE@json.output@{@@@",
403 "@@@STEP_LOG_LINE@json.output@ \"isolate_recipes\": \"[dummy hash for iso late_recipes]\"@@@", 388 "@@@STEP_LOG_LINE@json.output@ \"isolate_recipes\": \"[dummy hash for iso late_recipes]\"@@@",
404 "@@@STEP_LOG_LINE@json.output@}@@@", 389 "@@@STEP_LOG_LINE@json.output@}@@@",
405 "@@@STEP_LOG_END@json.output@@@", 390 "@@@STEP_LOG_END@json.output@@@",
406 "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"isolate_recipes\": \"[dummy hash fo r isolate_recipes]\"}@@@" 391 "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"isolate_recipes\": \"[dummy hash fo r isolate_recipes]\"}@@@"
407 ] 392 ]
408 }, 393 },
409 { 394 {
410 "cmd": [ 395 "cmd": [
411 "python", 396 "python",
412 "-u", 397 "-u",
413 "\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os. path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n", 398 "\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os. path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n",
414 "[SLAVE_BUILD]/swarming_temp_dir", 399 "[CWD]/swarming_temp_dir",
415 "511" 400 "511"
416 ], 401 ],
417 "cwd": "[SLAVE_BUILD]",
418 "name": "makedirs swarming tmp dir (2)", 402 "name": "makedirs swarming tmp dir (2)",
419 "~followup_annotations": [ 403 "~followup_annotations": [
420 "@@@STEP_LOG_LINE@python.inline@@@@", 404 "@@@STEP_LOG_LINE@python.inline@@@@",
421 "@@@STEP_LOG_LINE@python.inline@import sys, os@@@", 405 "@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
422 "@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@", 406 "@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
423 "@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@", 407 "@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
424 "@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@", 408 "@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
425 "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@", 409 "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@",
426 "@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@", 410 "@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" % path@@@",
427 "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", 411 "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@",
428 "@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@", 412 "@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@",
429 "@@@STEP_LOG_END@python.inline@@@" 413 "@@@STEP_LOG_END@python.inline@@@"
430 ] 414 ]
431 }, 415 },
432 { 416 {
433 "cmd": [ 417 "cmd": [
434 "python", 418 "python",
435 "-u", 419 "-u",
436 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", 420 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
437 "{\n \"args\": [\n \"--isolate\", \n \"[SLAVE_BUILD]/skia /infra/bots/compile_skia.isolate\", \n \"--isolated\", \n \"[SLAVE _BUILD]/swarming_temp_dir/skia-task-compile_skia.isolated\", \n \"--confi g-variable\", \n \"OS\", \n \"Ubuntu\", \n \"--blacklist\", \n \".git\", \n \"--blacklist\", \n \"out\", \n \"- -blacklist\", \n \"*.pyc\", \n \"--extra-variable\", \n \"W ORKDIR\", \n \"[SLAVE_BUILD]\", \n \"--extra-variable\", \n \"BUILD\", \n \"[BUILD]\"\n ], \n \"dir\": \"[SLAVE_BUILD]\", \n \"version\": 1\n}", 421 "{\n \"args\": [\n \"--isolate\", \n \"[CWD]/skia/infra/b ots/compile_skia.isolate\", \n \"--isolated\", \n \"[CWD]/swarming _temp_dir/skia-task-compile_skia.isolated\", \n \"--config-variable\", \n \"OS\", \n \"Ubuntu\", \n \"--blacklist\", \n \".gi t\", \n \"--blacklist\", \n \"out\", \n \"--blacklist\", \n \"*.pyc\", \n \"--extra-variable\", \n \"WORKDIR\", \n \"[CWD]\", \n \"--extra-variable\", \n \"BUILD\", \n \" [ROOT]/b/build\"\n ], \n \"dir\": \"[CWD]\", \n \"version\": 1\n}",
438 "[SLAVE_BUILD]/swarming_temp_dir/compile_skia.isolated.gen.json" 422 "[CWD]/swarming_temp_dir/compile_skia.isolated.gen.json"
439 ], 423 ],
440 "cwd": "[SLAVE_BUILD]",
441 "name": "Write compile_skia.isolated.gen.json" 424 "name": "Write compile_skia.isolated.gen.json"
442 }, 425 },
443 { 426 {
444 "cmd": [ 427 "cmd": [
445 "python", 428 "python",
446 "-u", 429 "-u",
447 "RECIPE_MODULE[build::isolate]/resources/isolate.py", 430 "RECIPE_MODULE[build::isolate]/resources/isolate.py",
448 "[SLAVE_BUILD]/swarming.client", 431 "[CWD]/swarming.client",
449 "batcharchive", 432 "batcharchive",
450 "--dump-json", 433 "--dump-json",
451 "/path/to/tmp/json", 434 "/path/to/tmp/json",
452 "--isolate-server", 435 "--isolate-server",
453 "https://isolateserver.appspot.com", 436 "https://isolateserver.appspot.com",
454 "--verbose", 437 "--verbose",
455 "[SLAVE_BUILD]/swarming_temp_dir/compile_skia.isolated.gen.json" 438 "[CWD]/swarming_temp_dir/compile_skia.isolated.gen.json"
456 ], 439 ],
457 "cwd": "[SLAVE_BUILD]",
458 "name": "isolate tests (2)", 440 "name": "isolate tests (2)",
459 "~followup_annotations": [ 441 "~followup_annotations": [
460 "@@@STEP_LOG_LINE@json.output@{@@@", 442 "@@@STEP_LOG_LINE@json.output@{@@@",
461 "@@@STEP_LOG_LINE@json.output@ \"compile_skia\": \"[dummy hash for compil e_skia]\"@@@", 443 "@@@STEP_LOG_LINE@json.output@ \"compile_skia\": \"[dummy hash for compil e_skia]\"@@@",
462 "@@@STEP_LOG_LINE@json.output@}@@@", 444 "@@@STEP_LOG_LINE@json.output@}@@@",
463 "@@@STEP_LOG_END@json.output@@@", 445 "@@@STEP_LOG_END@json.output@@@",
464 "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"compile_skia\": \"[dummy hash for c ompile_skia]\"}@@@" 446 "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"compile_skia\": \"[dummy hash for c ompile_skia]\"}@@@"
465 ] 447 ]
466 }, 448 },
467 { 449 {
468 "cmd": [ 450 "cmd": [
469 "python", 451 "python",
470 "-u", 452 "-u",
471 "\nimport json\nimport sys\nwith open(sys.argv[1]) as f:\n isolated = jso n.load(f)\nfor h in sys.argv[2:]:\n isolated['includes'].append(h)\nwith open(s ys.argv[1], 'w') as f:\n json.dump(isolated, f, sort_keys=True)\n", 453 "\nimport json\nimport sys\nwith open(sys.argv[1]) as f:\n isolated = jso n.load(f)\nfor h in sys.argv[2:]:\n isolated['includes'].append(h)\nwith open(s ys.argv[1], 'w') as f:\n json.dump(isolated, f, sort_keys=True)\n",
472 "[SLAVE_BUILD]/swarming_temp_dir/skia-task-compile_skia.isolated", 454 "[CWD]/swarming_temp_dir/skia-task-compile_skia.isolated",
473 "[dummy hash for isolate_recipes]" 455 "[dummy hash for isolate_recipes]"
474 ], 456 ],
475 "cwd": "[SLAVE_BUILD]",
476 "name": "add_isolated_input", 457 "name": "add_isolated_input",
477 "~followup_annotations": [ 458 "~followup_annotations": [
478 "@@@STEP_LOG_LINE@python.inline@@@@", 459 "@@@STEP_LOG_LINE@python.inline@@@@",
479 "@@@STEP_LOG_LINE@python.inline@import json@@@", 460 "@@@STEP_LOG_LINE@python.inline@import json@@@",
480 "@@@STEP_LOG_LINE@python.inline@import sys@@@", 461 "@@@STEP_LOG_LINE@python.inline@import sys@@@",
481 "@@@STEP_LOG_LINE@python.inline@with open(sys.argv[1]) as f:@@@", 462 "@@@STEP_LOG_LINE@python.inline@with open(sys.argv[1]) as f:@@@",
482 "@@@STEP_LOG_LINE@python.inline@ isolated = json.load(f)@@@", 463 "@@@STEP_LOG_LINE@python.inline@ isolated = json.load(f)@@@",
483 "@@@STEP_LOG_LINE@python.inline@for h in sys.argv[2:]:@@@", 464 "@@@STEP_LOG_LINE@python.inline@for h in sys.argv[2:]:@@@",
484 "@@@STEP_LOG_LINE@python.inline@ isolated['includes'].append(h)@@@", 465 "@@@STEP_LOG_LINE@python.inline@ isolated['includes'].append(h)@@@",
485 "@@@STEP_LOG_LINE@python.inline@with open(sys.argv[1], 'w') as f:@@@", 466 "@@@STEP_LOG_LINE@python.inline@with open(sys.argv[1], 'w') as f:@@@",
486 "@@@STEP_LOG_LINE@python.inline@ json.dump(isolated, f, sort_keys=True)@@ @", 467 "@@@STEP_LOG_LINE@python.inline@ json.dump(isolated, f, sort_keys=True)@@ @",
487 "@@@STEP_LOG_END@python.inline@@@" 468 "@@@STEP_LOG_END@python.inline@@@"
488 ] 469 ]
489 }, 470 },
490 { 471 {
491 "cmd": [ 472 "cmd": [
492 "python", 473 "python",
493 "-u", 474 "-u",
494 "[SLAVE_BUILD]/swarming.client/isolateserver.py", 475 "[CWD]/swarming.client/isolateserver.py",
495 "archive", 476 "archive",
496 "--isolate-server", 477 "--isolate-server",
497 "https://isolateserver.appspot.com", 478 "https://isolateserver.appspot.com",
498 "[SLAVE_BUILD]/swarming_temp_dir/skia-task-compile_skia.isolated" 479 "[CWD]/swarming_temp_dir/skia-task-compile_skia.isolated"
499 ], 480 ],
500 "cwd": "[SLAVE_BUILD]",
501 "name": "upload new .isolated file for compile_skia", 481 "name": "upload new .isolated file for compile_skia",
502 "stdout": "/path/to/tmp/" 482 "stdout": "/path/to/tmp/"
503 }, 483 },
504 { 484 {
505 "cmd": [ 485 "cmd": [
506 "python", 486 "python",
507 "-u", 487 "-u",
508 "[SLAVE_BUILD]/swarming.client/swarming.py", 488 "[CWD]/swarming.client/swarming.py",
509 "trigger", 489 "trigger",
510 "--swarming", 490 "--swarming",
511 "https://chromium-swarm.appspot.com", 491 "https://chromium-swarm.appspot.com",
512 "--isolate-server", 492 "--isolate-server",
513 "https://isolateserver.appspot.com", 493 "https://isolateserver.appspot.com",
514 "--priority", 494 "--priority",
515 "90", 495 "90",
516 "--shards", 496 "--shards",
517 "1", 497 "1",
518 "--task-name", 498 "--task-name",
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
562 "buildername=Build-Ubuntu-GCC-x86_64-Release-Swarming-Trybot", 542 "buildername=Build-Ubuntu-GCC-x86_64-Release-Swarming-Trybot",
563 "mastername=client.skia.fyi", 543 "mastername=client.skia.fyi",
564 "buildnumber=5", 544 "buildnumber=5",
565 "slavename=skiabot-linux-housekeeper-003", 545 "slavename=skiabot-linux-housekeeper-003",
566 "reason=Triggered by Skia swarm_trigger Recipe", 546 "reason=Triggered by Skia swarm_trigger Recipe",
567 "swarm_out_dir=${ISOLATED_OUTDIR}", 547 "swarm_out_dir=${ISOLATED_OUTDIR}",
568 "patchset=1", 548 "patchset=1",
569 "issue=500", 549 "issue=500",
570 "revision=164710" 550 "revision=164710"
571 ], 551 ],
572 "cwd": "[SLAVE_BUILD]",
573 "name": "[trigger] compile_skia on Ubuntu", 552 "name": "[trigger] compile_skia on Ubuntu",
574 "~followup_annotations": [ 553 "~followup_annotations": [
575 "@@@STEP_LOG_LINE@json.output@{@@@", 554 "@@@STEP_LOG_LINE@json.output@{@@@",
576 "@@@STEP_LOG_LINE@json.output@ \"base_task_name\": \"compile_skia/Ubuntu/ def456/Build-Ubuntu-GCC-x86_64-Release-Swarming-Trybot/5\", @@@", 555 "@@@STEP_LOG_LINE@json.output@ \"base_task_name\": \"compile_skia/Ubuntu/ def456/Build-Ubuntu-GCC-x86_64-Release-Swarming-Trybot/5\", @@@",
577 "@@@STEP_LOG_LINE@json.output@ \"tasks\": {@@@", 556 "@@@STEP_LOG_LINE@json.output@ \"tasks\": {@@@",
578 "@@@STEP_LOG_LINE@json.output@ \"compile_skia/Ubuntu/def456/Build-Ubunt u-GCC-x86_64-Release-Swarming-Trybot/5\": {@@@", 557 "@@@STEP_LOG_LINE@json.output@ \"compile_skia/Ubuntu/def456/Build-Ubunt u-GCC-x86_64-Release-Swarming-Trybot/5\": {@@@",
579 "@@@STEP_LOG_LINE@json.output@ \"shard_index\": 0, @@@", 558 "@@@STEP_LOG_LINE@json.output@ \"shard_index\": 0, @@@",
580 "@@@STEP_LOG_LINE@json.output@ \"task_id\": \"10000\", @@@", 559 "@@@STEP_LOG_LINE@json.output@ \"task_id\": \"10000\", @@@",
581 "@@@STEP_LOG_LINE@json.output@ \"view_url\": \"https://chromium-swarm .appspot.com/user/task/10000\"@@@", 560 "@@@STEP_LOG_LINE@json.output@ \"view_url\": \"https://chromium-swarm .appspot.com/user/task/10000\"@@@",
582 "@@@STEP_LOG_LINE@json.output@ }@@@", 561 "@@@STEP_LOG_LINE@json.output@ }@@@",
583 "@@@STEP_LOG_LINE@json.output@ }@@@", 562 "@@@STEP_LOG_LINE@json.output@ }@@@",
584 "@@@STEP_LOG_LINE@json.output@}@@@", 563 "@@@STEP_LOG_LINE@json.output@}@@@",
585 "@@@STEP_LOG_END@json.output@@@", 564 "@@@STEP_LOG_END@json.output@@@",
586 "@@@STEP_LINK@shard #0@https://chromium-swarm.appspot.com/user/task/10000@ @@" 565 "@@@STEP_LINK@shard #0@https://chromium-swarm.appspot.com/user/task/10000@ @@"
587 ] 566 ]
588 }, 567 },
589 { 568 {
590 "cmd": [ 569 "cmd": [
591 "python", 570 "python",
592 "-u", 571 "-u",
593 "[SLAVE_BUILD]/swarming.client/swarming.py", 572 "[CWD]/swarming.client/swarming.py",
594 "collect", 573 "collect",
595 "--swarming", 574 "--swarming",
596 "https://chromium-swarm.appspot.com", 575 "https://chromium-swarm.appspot.com",
597 "--decorate", 576 "--decorate",
598 "--print-status-updates", 577 "--print-status-updates",
599 "--shards", 578 "--shards",
600 "1", 579 "1",
601 "compile_skia/Ubuntu/def456/Build-Ubuntu-GCC-x86_64-Release-Swarming-Trybo t/5", 580 "compile_skia/Ubuntu/def456/Build-Ubuntu-GCC-x86_64-Release-Swarming-Trybo t/5",
602 "--task-summary-json", 581 "--task-summary-json",
603 "/path/to/tmp/json" 582 "/path/to/tmp/json"
604 ], 583 ],
605 "cwd": "[SLAVE_BUILD]",
606 "name": "compile_skia on Ubuntu", 584 "name": "compile_skia on Ubuntu",
607 "~followup_annotations": [ 585 "~followup_annotations": [
608 "@@@STEP_TEXT@swarming pending 71s@@@", 586 "@@@STEP_TEXT@swarming pending 71s@@@",
609 "@@@STEP_LOG_LINE@json.output@{@@@", 587 "@@@STEP_LOG_LINE@json.output@{@@@",
610 "@@@STEP_LOG_LINE@json.output@ \"shards\": [@@@", 588 "@@@STEP_LOG_LINE@json.output@ \"shards\": [@@@",
611 "@@@STEP_LOG_LINE@json.output@ {@@@", 589 "@@@STEP_LOG_LINE@json.output@ {@@@",
612 "@@@STEP_LOG_LINE@json.output@ \"abandoned_ts\": null, @@@", 590 "@@@STEP_LOG_LINE@json.output@ \"abandoned_ts\": null, @@@",
613 "@@@STEP_LOG_LINE@json.output@ \"bot_id\": \"vm30\", @@@", 591 "@@@STEP_LOG_LINE@json.output@ \"bot_id\": \"vm30\", @@@",
614 "@@@STEP_LOG_LINE@json.output@ \"completed_ts\": \"2014-09-25T01:42:0 0.123\", @@@", 592 "@@@STEP_LOG_LINE@json.output@ \"completed_ts\": \"2014-09-25T01:42:0 0.123\", @@@",
615 "@@@STEP_LOG_LINE@json.output@ \"created_ts\": \"2014-09-25T01:41:00. 123\", @@@", 593 "@@@STEP_LOG_LINE@json.output@ \"created_ts\": \"2014-09-25T01:41:00. 123\", @@@",
(...skipping 30 matching lines...) Expand all
646 "@@@STEP_LOG_END@json.output@@@", 624 "@@@STEP_LOG_END@json.output@@@",
647 "@@@STEP_LINK@shard #0 isolated out@blah@@@" 625 "@@@STEP_LINK@shard #0 isolated out@blah@@@"
648 ] 626 ]
649 }, 627 },
650 { 628 {
651 "name": "$result", 629 "name": "$result",
652 "recipe_result": null, 630 "recipe_result": null,
653 "status_code": 0 631 "status_code": 0
654 } 632 }
655 ] 633 ]
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698