1[
2  {
3    "cmd": [
4      "python",
5      "-u",
6      "\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",
7      "[CUSTOM_C:\\_B_WORK]",
8      "511"
9    ],
10    "infra_step": true,
11    "name": "makedirs checkout_path",
12    "~followup_annotations": [
13      "@@@STEP_LOG_LINE@python.inline@@@@",
14      "@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
15      "@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
16      "@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
17      "@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
18      "@@@STEP_LOG_LINE@python.inline@  if os.path.exists(path):@@@",
19      "@@@STEP_LOG_LINE@python.inline@    print \"%s exists but is not a dir\" % path@@@",
20      "@@@STEP_LOG_LINE@python.inline@    sys.exit(1)@@@",
21      "@@@STEP_LOG_LINE@python.inline@  os.makedirs(path, mode)@@@",
22      "@@@STEP_LOG_END@python.inline@@@"
23    ]
24  },
25  {
26    "cmd": [
27      "python",
28      "-u",
29      "RECIPE_MODULE[depot_tools::bot_update]/resources/bot_update.py",
30      "--spec",
31      "cache_dir = '[CUSTOM_C:\\\\_B_CACHE]'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': False, 'name': 'other_repo', 'url': 'https://skia.googlesource.com/other_repo.git'}]",
32      "--patch_root",
33      "other_repo",
34      "--revision_mapping_file",
35      "{\"other_repo\": \"got_revision\"}",
36      "--git-cache-dir",
37      "[CUSTOM_C:\\_B_CACHE]",
38      "--output_json",
39      "/path/to/tmp/json",
40      "--revision",
41      "other_repo@abc123",
42      "--output_manifest"
43    ],
44    "cwd": "[CUSTOM_C:\\_B_WORK]",
45    "env": {
46      "GIT_HTTP_LOW_SPEED_LIMIT": "1000",
47      "GIT_HTTP_LOW_SPEED_TIME": "300",
48      "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]"
49    },
50    "infra_step": true,
51    "name": "bot_update",
52    "~followup_annotations": [
53      "@@@STEP_TEXT@Some step text@@@",
54      "@@@STEP_LOG_LINE@json.output@{@@@",
55      "@@@STEP_LOG_LINE@json.output@  \"did_run\": true, @@@",
56      "@@@STEP_LOG_LINE@json.output@  \"fixed_revisions\": {@@@",
57      "@@@STEP_LOG_LINE@json.output@    \"other_repo\": \"abc123\"@@@",
58      "@@@STEP_LOG_LINE@json.output@  }, @@@",
59      "@@@STEP_LOG_LINE@json.output@  \"manifest\": {@@@",
60      "@@@STEP_LOG_LINE@json.output@    \"other_repo\": {@@@",
61      "@@@STEP_LOG_LINE@json.output@      \"repository\": \"https://fake.org/other_repo.git\", @@@",
62      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"84be67d5f1146c5b7f6d4494c36c52903754abf4\"@@@",
63      "@@@STEP_LOG_LINE@json.output@    }@@@",
64      "@@@STEP_LOG_LINE@json.output@  }, @@@",
65      "@@@STEP_LOG_LINE@json.output@  \"patch_failure\": false, @@@",
66      "@@@STEP_LOG_LINE@json.output@  \"patch_root\": \"other_repo\", @@@",
67      "@@@STEP_LOG_LINE@json.output@  \"properties\": {@@@",
68      "@@@STEP_LOG_LINE@json.output@    \"got_revision\": \"84be67d5f1146c5b7f6d4494c36c52903754abf4\", @@@",
69      "@@@STEP_LOG_LINE@json.output@    \"got_revision_cp\": \"refs/heads/master@{#170933}\"@@@",
70      "@@@STEP_LOG_LINE@json.output@  }, @@@",
71      "@@@STEP_LOG_LINE@json.output@  \"root\": \"other_repo\", @@@",
72      "@@@STEP_LOG_LINE@json.output@  \"step_text\": \"Some step text\"@@@",
73      "@@@STEP_LOG_LINE@json.output@}@@@",
74      "@@@STEP_LOG_END@json.output@@@",
75      "@@@SET_BUILD_PROPERTY@got_revision@\"84be67d5f1146c5b7f6d4494c36c52903754abf4\"@@@",
76      "@@@SET_BUILD_PROPERTY@got_revision_cp@\"refs/heads/master@{#170933}\"@@@"
77    ]
78  },
79  {
80    "cmd": [
81      "python",
82      "-u",
83      "[CUSTOM_C:\\_B_WORK]/skia/bin/fetch-gn"
84    ],
85    "cwd": "[CUSTOM_C:\\_B_WORK]/skia",
86    "env": {
87      "BUILDTYPE": "Release_x64",
88      "CHROME_HEADLESS": "1",
89      "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
90      "SKIA_OUT": "[CUSTOM_C:\\_B_WORK]/skia/out/Build-Win-MSVC-x86_64-Release-Vulkan"
91    },
92    "infra_step": true,
93    "name": "fetch-gn"
94  },
95  {
96    "cmd": [
97      "[CUSTOM_C:\\_B_WORK]/skia/bin/gn.exe",
98      "gen",
99      "[CUSTOM_C:\\_B_WORK]/skia/out/Build-Win-MSVC-x86_64-Release-Vulkan/Release_x64",
100      "--args=is_debug=false skia_enable_vulkan_debug_layers=false skia_vulkan_sdk=\"[START_DIR]/win_vulkan_sdk\" target_cpu=\"x86_64\" windk=\"[START_DIR]/t/depot_tools/win_toolchain/vs_files/d3cb0e37bdd120ad0ac4650b674b09e81be45616\""
101    ],
102    "cwd": "[CUSTOM_C:\\_B_WORK]/skia",
103    "env": {
104      "BUILDTYPE": "Release_x64",
105      "CHROME_HEADLESS": "1",
106      "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
107      "SKIA_OUT": "[CUSTOM_C:\\_B_WORK]/skia/out/Build-Win-MSVC-x86_64-Release-Vulkan"
108    },
109    "name": "gn gen"
110  },
111  {
112    "cmd": [
113      "ninja.exe",
114      "-C",
115      "[CUSTOM_C:\\_B_WORK]/skia/out/Build-Win-MSVC-x86_64-Release-Vulkan/Release_x64"
116    ],
117    "cwd": "[CUSTOM_C:\\_B_WORK]/skia",
118    "env": {
119      "BUILDTYPE": "Release_x64",
120      "CHROME_HEADLESS": "1",
121      "PATH": "%(PATH)s:RECIPE_PACKAGE_REPO[depot_tools]",
122      "SKIA_OUT": "[CUSTOM_C:\\_B_WORK]/skia/out/Build-Win-MSVC-x86_64-Release-Vulkan"
123    },
124    "name": "ninja"
125  },
126  {
127    "cmd": [
128      "python",
129      "-u",
130      "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n  os.makedirs(dst)\nexcept OSError as e:\n  if e.errno != errno.EEXIST:\n    raise\n\nfor pattern in build_products_whitelist:\n  path = os.path.join(src, pattern)\n  for f in glob.glob(path):\n    dst_path = os.path.join(dst, os.path.relpath(f, src))\n    if not os.path.isdir(os.path.dirname(dst_path)):\n      os.makedirs(os.path.dirname(dst_path))\n    print 'Copying build product %s to %s' % (f, dst_path)\n    shutil.move(f, dst_path)\n",
131      "[CUSTOM_C:\\_B_WORK]/skia/out/Build-Win-MSVC-x86_64-Release-Vulkan/Release_x64",
132      "[CUSTOM_[SWARM_OUT_DIR]]/out/Release_x64"
133    ],
134    "infra_step": true,
135    "name": "copy build products",
136    "~followup_annotations": [
137      "@@@STEP_LOG_LINE@python.inline@import errno@@@",
138      "@@@STEP_LOG_LINE@python.inline@import glob@@@",
139      "@@@STEP_LOG_LINE@python.inline@import os@@@",
140      "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
141      "@@@STEP_LOG_LINE@python.inline@import sys@@@",
142      "@@@STEP_LOG_LINE@python.inline@@@@",
143      "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
144      "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
145      "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
146      "@@@STEP_LOG_LINE@python.inline@@@@",
147      "@@@STEP_LOG_LINE@python.inline@try:@@@",
148      "@@@STEP_LOG_LINE@python.inline@  os.makedirs(dst)@@@",
149      "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
150      "@@@STEP_LOG_LINE@python.inline@  if e.errno != errno.EEXIST:@@@",
151      "@@@STEP_LOG_LINE@python.inline@    raise@@@",
152      "@@@STEP_LOG_LINE@python.inline@@@@",
153      "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
154      "@@@STEP_LOG_LINE@python.inline@  path = os.path.join(src, pattern)@@@",
155      "@@@STEP_LOG_LINE@python.inline@  for f in glob.glob(path):@@@",
156      "@@@STEP_LOG_LINE@python.inline@    dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
157      "@@@STEP_LOG_LINE@python.inline@    if not os.path.isdir(os.path.dirname(dst_path)):@@@",
158      "@@@STEP_LOG_LINE@python.inline@      os.makedirs(os.path.dirname(dst_path))@@@",
159      "@@@STEP_LOG_LINE@python.inline@    print 'Copying build product %s to %s' % (f, dst_path)@@@",
160      "@@@STEP_LOG_LINE@python.inline@    shutil.move(f, dst_path)@@@",
161      "@@@STEP_LOG_END@python.inline@@@"
162    ]
163  },
164  {
165    "cmd": [
166      "python",
167      "-u",
168      "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']\n\ntry:\n  os.makedirs(dst)\nexcept OSError as e:\n  if e.errno != errno.EEXIST:\n    raise\n\nfor pattern in build_products_whitelist:\n  path = os.path.join(src, pattern)\n  for f in glob.glob(path):\n    dst_path = os.path.join(dst, os.path.relpath(f, src))\n    if not os.path.isdir(os.path.dirname(dst_path)):\n      os.makedirs(os.path.dirname(dst_path))\n    print 'Copying build product %s to %s' % (f, dst_path)\n    shutil.move(f, dst_path)\n",
169      "[START_DIR]/win_vulkan_sdk",
170      "[CUSTOM_[SWARM_OUT_DIR]]/out/Release_x64"
171    ],
172    "infra_step": true,
173    "name": "copy build products (2)",
174    "~followup_annotations": [
175      "@@@STEP_LOG_LINE@python.inline@import errno@@@",
176      "@@@STEP_LOG_LINE@python.inline@import glob@@@",
177      "@@@STEP_LOG_LINE@python.inline@import os@@@",
178      "@@@STEP_LOG_LINE@python.inline@import shutil@@@",
179      "@@@STEP_LOG_LINE@python.inline@import sys@@@",
180      "@@@STEP_LOG_LINE@python.inline@@@@",
181      "@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
182      "@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
183      "@@@STEP_LOG_LINE@python.inline@build_products_whitelist = ['dm', 'dm.exe', 'get_images_from_skps', 'get_images_from_skps.exe', 'nanobench', 'nanobench.exe', 'skpbench', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'lib/*.so', 'iOSShell.app', 'iOSShell.ipa', 'visualbench', 'visualbench.exe', 'vulkan-1.dll']@@@",
184      "@@@STEP_LOG_LINE@python.inline@@@@",
185      "@@@STEP_LOG_LINE@python.inline@try:@@@",
186      "@@@STEP_LOG_LINE@python.inline@  os.makedirs(dst)@@@",
187      "@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
188      "@@@STEP_LOG_LINE@python.inline@  if e.errno != errno.EEXIST:@@@",
189      "@@@STEP_LOG_LINE@python.inline@    raise@@@",
190      "@@@STEP_LOG_LINE@python.inline@@@@",
191      "@@@STEP_LOG_LINE@python.inline@for pattern in build_products_whitelist:@@@",
192      "@@@STEP_LOG_LINE@python.inline@  path = os.path.join(src, pattern)@@@",
193      "@@@STEP_LOG_LINE@python.inline@  for f in glob.glob(path):@@@",
194      "@@@STEP_LOG_LINE@python.inline@    dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
195      "@@@STEP_LOG_LINE@python.inline@    if not os.path.isdir(os.path.dirname(dst_path)):@@@",
196      "@@@STEP_LOG_LINE@python.inline@      os.makedirs(os.path.dirname(dst_path))@@@",
197      "@@@STEP_LOG_LINE@python.inline@    print 'Copying build product %s to %s' % (f, dst_path)@@@",
198      "@@@STEP_LOG_LINE@python.inline@    shutil.move(f, dst_path)@@@",
199      "@@@STEP_LOG_END@python.inline@@@"
200    ]
201  },
202  {
203    "cmd": [
204      "python",
205      "-u",
206      "import psutil\nfor p in psutil.process_iter():\n  try:\n    if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):\n      p.kill()\n  except psutil._error.AccessDenied:\n    pass\n"
207    ],
208    "infra_step": true,
209    "name": "cleanup",
210    "~followup_annotations": [
211      "@@@STEP_LOG_LINE@python.inline@import psutil@@@",
212      "@@@STEP_LOG_LINE@python.inline@for p in psutil.process_iter():@@@",
213      "@@@STEP_LOG_LINE@python.inline@  try:@@@",
214      "@@@STEP_LOG_LINE@python.inline@    if p.name in ('mspdbsrv.exe', 'vctip.exe', 'cl.exe', 'link.exe'):@@@",
215      "@@@STEP_LOG_LINE@python.inline@      p.kill()@@@",
216      "@@@STEP_LOG_LINE@python.inline@  except psutil._error.AccessDenied:@@@",
217      "@@@STEP_LOG_LINE@python.inline@    pass@@@",
218      "@@@STEP_LOG_END@python.inline@@@"
219    ]
220  },
221  {
222    "name": "$result",
223    "recipe_result": null,
224    "status_code": 0
225  }
226]