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

Side by Side Diff: recipe_modules/gclient/config.py

Issue 1651033004: depot_tools: import bot_update gclient git rietveld tryserver recipe modules (reland #1) (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: 80cols Created 4 years, 10 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
« no previous file with comments | « recipe_modules/gclient/api.py ('k') | recipe_modules/gclient/example.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 import types
6
7 from recipe_engine.config import config_item_context, ConfigGroup, BadConf
8 from recipe_engine.config import ConfigList, Dict, Single, Static, Set, List
9
10 from . import api as gclient_api
11
12
13 def BaseConfig(USE_MIRROR=True, GIT_MODE=False, CACHE_DIR=None,
14 PATCH_PROJECT=None, BUILDSPEC_VERSION=None,
15 **_kwargs):
16 deps = '.DEPS.git' if GIT_MODE else 'DEPS'
17 cache_dir = str(CACHE_DIR) if GIT_MODE and CACHE_DIR else None
18 return ConfigGroup(
19 solutions = ConfigList(
20 lambda: ConfigGroup(
21 name = Single(basestring),
22 url = Single(basestring),
23 deps_file = Single(basestring, empty_val=deps, required=False,
24 hidden=False),
25 managed = Single(bool, empty_val=True, required=False, hidden=False),
26 custom_deps = Dict(value_type=(basestring, types.NoneType)),
27 custom_vars = Dict(value_type=basestring),
28 safesync_url = Single(basestring, required=False),
29
30 revision = Single(
31 (basestring, gclient_api.RevisionResolver),
32 required=False, hidden=True),
33 )
34 ),
35 deps_os = Dict(value_type=basestring),
36 hooks = List(basestring),
37 target_os = Set(basestring),
38 target_os_only = Single(bool, empty_val=False, required=False),
39 cache_dir = Static(cache_dir, hidden=False),
40
41 # If supplied, use this as the source root (instead of the first solution's
42 # checkout).
43 src_root = Single(basestring, required=False, hidden=True),
44
45 # Maps 'solution' -> build_property
46 got_revision_mapping = Dict(hidden=True),
47
48 # Addition revisions we want to pass in. For now theres a duplication
49 # of code here of setting custom vars AND passing in --revision. We hope
50 # to remove custom vars later.
51 revisions = Dict(
52 value_type=(basestring, gclient_api.RevisionResolver),
53 hidden=True),
54
55 # TODO(iannucci): HACK! The use of None here to indicate that we apply this
56 # to the solution.revision field is really terrible. I mostly blame
57 # gclient.
58 # Maps 'parent_build_property' -> 'custom_var_name'
59 # Maps 'parent_build_property' -> None
60 # If value is None, the property value will be applied to
61 # solutions[0].revision. Otherwise, it will be applied to
62 # solutions[0].custom_vars['custom_var_name']
63 parent_got_revision_mapping = Dict(hidden=True),
64 delete_unversioned_trees = Single(bool, empty_val=True, required=False),
65
66 # Check out refs/branch-heads.
67 # TODO (machenbach): Only implemented for bot_update atm.
68 with_branch_heads = Single(
69 bool,
70 empty_val=False,
71 required=False,
72 hidden=True),
73
74 GIT_MODE = Static(bool(GIT_MODE)),
75 USE_MIRROR = Static(bool(USE_MIRROR)),
76 PATCH_PROJECT = Static(str(PATCH_PROJECT), hidden=True),
77 BUILDSPEC_VERSION= Static(BUILDSPEC_VERSION, hidden=True),
78 )
79
80 config_ctx = config_item_context(BaseConfig)
81
82 def ChromiumSvnSubURL(c, *pieces):
83 BASES = ('https://src.chromium.org',
84 'svn://svn-mirror.golo.chromium.org')
85 return '/'.join((BASES[c.USE_MIRROR],) + pieces)
86
87 def ChromiumGitURL(_c, *pieces):
88 return '/'.join(('https://chromium.googlesource.com',) + pieces)
89
90 def ChromiumSrcURL(c):
91 # TODO(phajdan.jr): Move to proper repo and add coverage.
92 if c.GIT_MODE: # pragma: no cover
93 return ChromiumGitURL(c, 'chromium', 'src.git')
94 else:
95 return ChromiumSvnSubURL(c, 'chrome', 'trunk', 'src')
96
97 def BlinkURL(c):
98 # TODO(phajdan.jr): Move to proper repo and add coverage.
99 if c.GIT_MODE: # pragma: no cover
100 return ChromiumGitURL(c, 'chromium', 'blink.git')
101 else:
102 return ChromiumSvnSubURL(c, 'blink', 'trunk')
103
104 def ChromeSvnSubURL(c, *pieces):
105 BASES = ('svn://svn.chromium.org',
106 'svn://svn-mirror.golo.chromium.org')
107 return '/'.join((BASES[c.USE_MIRROR],) + pieces)
108
109 # TODO(phajdan.jr): Move to proper repo and add coverage.
110 def ChromeInternalGitURL(_c, *pieces): # pragma: no cover
111 return '/'.join(('https://chrome-internal.googlesource.com',) + pieces)
112
113 def ChromeInternalSrcURL(c):
114 # TODO(phajdan.jr): Move to proper repo and add coverage.
115 if c.GIT_MODE: # pragma: no cover
116 return ChromeInternalGitURL(c, 'chrome', 'src-internal.git')
117 else:
118 return ChromeSvnSubURL(c, 'chrome-internal', 'trunk', 'src-internal')
119
120 def mirror_only(c, obj, default=None):
121 return obj if c.USE_MIRROR else (default or obj.__class__())
122
123 @config_ctx()
124 def chromium_bare(c):
125 s = c.solutions.add()
126 s.name = 'src'
127 s.url = ChromiumSrcURL(c)
128 s.custom_vars = mirror_only(c, {
129 'googlecode_url': 'svn://svn-mirror.golo.chromium.org/%s',
130 'nacl_trunk': 'svn://svn-mirror.golo.chromium.org/native_client/trunk',
131 'sourceforge_url': 'svn://svn-mirror.golo.chromium.org/%(repo)s',
132 'webkit_trunk': BlinkURL(c)})
133 m = c.got_revision_mapping
134 m['src'] = 'got_revision'
135 m['src/native_client'] = 'got_nacl_revision'
136 m['src/tools/swarming_client'] = 'got_swarming_client_revision'
137 m['src/v8'] = 'got_v8_revision'
138 m['src/third_party/angle'] = 'got_angle_revision'
139 m['src/third_party/webrtc'] = 'got_webrtc_revision'
140
141 p = c.parent_got_revision_mapping
142 p['parent_got_revision'] = None
143 p['parent_got_angle_revision'] = 'angle_revision'
144 p['parent_got_nacl_revision'] = 'nacl_revision'
145 p['parent_got_swarming_client_revision'] = 'swarming_revision'
146 p['parent_got_v8_revision'] = 'v8_revision'
147 p['parent_got_webrtc_revision'] = 'webrtc_revision'
148
149 # Patch project revisions are applied whenever patch_project is set. E.g. if
150 # a v8 stand-alone patch is sent to a chromium trybot, patch_project is v8
151 # and can be used to sync v8 to HEAD instead of the pinned chromium
152 # version.
153 patch_project_revisions = {
154 'v8': ('src/v8', 'HEAD'),
155 }
156
157 patch_revision = patch_project_revisions.get(c.PATCH_PROJECT)
158 # TODO(phajdan.jr): Move to proper repo and add coverage.
159 if patch_revision: # pragma: no cover
160 c.revisions[patch_revision[0]] = patch_revision[1]
161
162 @config_ctx(includes=['chromium_bare'])
163 def chromium_empty(c):
164 c.solutions[0].deps_file = '' # pragma: no cover
165
166 @config_ctx(includes=['chromium_bare'])
167 def chromium(c):
168 s = c.solutions[0]
169 s.custom_deps = mirror_only(c, {})
170
171 @config_ctx(includes=['chromium'])
172 def chromium_lkcr(c):
173 # TODO(phajdan.jr): Add git hashes for LKCR crbug.com/349277.
174 if c.GIT_MODE:
175 raise BadConf('Git has problems with safesync_url and LKCR, '
176 'crbug.com/349277 crbug.com/109191') # pragma: no cover
177 s = c.solutions[0]
178 s.safesync_url = 'https://build.chromium.org/p/chromium/lkcr-status/lkgr'
179 # TODO(hinoka): Once lkcr exists and is a tag, it should just be lkcr
180 # rather than origin/lkcr.
181 s.revision = 'origin/lkcr'
182
183 @config_ctx(includes=['chromium'])
184 def chromium_lkgr(c):
185 s = c.solutions[0]
186 safesync_url = 'https://chromium-status.appspot.com/lkgr'
187 if c.GIT_MODE: # pragma: no cover
188 safesync_url = 'https://chromium-status.appspot.com/git-lkgr'
189 raise BadConf('Git has problems with safesync_url, crbug.com/109191.')
190 s.safesync_url = safesync_url
191 s.revision = 'origin/lkgr'
192
193 @config_ctx(includes=['chromium_bare'])
194 def android_bare(c):
195 # We inherit from chromium_bare to get the got_revision mapping.
196 # NOTE: We don't set a specific got_revision mapping for src/repo.
197 del c.solutions[0]
198 c.got_revision_mapping['src'] = 'got_src_revision'
199 s = c.solutions.add()
200 s.deps_file = '.DEPS.git'
201
202 # TODO(iannucci,vadimsh): Switch this to src-limited
203 @config_ctx()
204 def chrome_internal(c):
205 s = c.solutions.add()
206 s.name = 'src-internal'
207 s.url = ChromeInternalSrcURL(c)
208 # Remove some things which are generally not needed
209 s.custom_deps = {
210 "src/data/autodiscovery" : None,
211 "src/data/page_cycler" : None,
212 "src/tools/grit/grit/test/data" : None,
213 "src/chrome/test/data/perf/frame_rate/private" : None,
214 "src/data/mozilla_js_tests" : None,
215 "src/chrome/test/data/firefox2_profile/searchplugins" : None,
216 "src/chrome/test/data/firefox2_searchplugins" : None,
217 "src/chrome/test/data/firefox3_profile/searchplugins" : None,
218 "src/chrome/test/data/firefox3_searchplugins" : None,
219 "src/chrome/test/data/ssl/certs" : None,
220 "src/data/mach_ports" : None,
221 "src/data/esctf" : None,
222 "src/data/selenium_core" : None,
223 "src/chrome/test/data/plugin" : None,
224 "src/data/memory_test" : None,
225 "src/data/tab_switching" : None,
226 "src/chrome/test/data/osdd" : None,
227 "src/webkit/data/bmp_decoder":None,
228 "src/webkit/data/ico_decoder":None,
229 "src/webkit/data/test_shell/plugins":None,
230 "src/webkit/data/xbm_decoder":None,
231 }
232
233 @config_ctx(includes=['chromium'])
234 def blink(c):
235 c.solutions[0].revision = 'HEAD'
236 del c.solutions[0].custom_deps
237 c.revisions['src/third_party/WebKit'] = 'HEAD'
238
239 @config_ctx(includes=['chromium'])
240 def blink_or_chromium(c):
241 c.solutions[0].revision = gclient_api.ProjectRevisionResolver('chromium')
242 del c.solutions[0].custom_deps
243 c.revisions['src/third_party/WebKit'] = \
244 gclient_api.ProjectRevisionResolver(
245 'webkit', parent_got_revision='parent_got_webkit_revision')
246
247 # TODO(phajdan.jr): Move to proper repo and add coverage.
248 @config_ctx(includes=['chromium'])
249 def blink_merged(c): # pragma: no cover
250 c.solutions[0].url = \
251 'https://chromium.googlesource.com/playground/chromium-blink-merge.git'
252
253 @config_ctx()
254 def android(c):
255 c.target_os.add('android')
256
257 @config_ctx(includes=['chromium', 'chrome_internal'])
258 def ios(c):
259 c.target_os.add('ios')
260
261 @config_ctx(includes=['chromium'])
262 def show_v8_revision(c):
263 # Have the V8 revision appear in the web UI instead of Chromium's.
264 c.got_revision_mapping['src'] = 'got_cr_revision'
265 c.got_revision_mapping['src/v8'] = 'got_revision'
266 # Needed to get the testers to properly sync the right revision.
267 c.parent_got_revision_mapping['parent_got_revision'] = 'got_revision'
268
269 @config_ctx(includes=['chromium'])
270 def v8_bleeding_edge_git(c):
271 c.solutions[0].revision = 'HEAD'
272 # TODO(machenbach): If bot_update is activated for all v8-chromium bots
273 # and there's no gclient fallback, then the following line can be removed.
274 c.solutions[0].custom_vars['v8_branch'] = 'branches/bleeding_edge'
275 c.revisions['src/v8'] = 'HEAD'
276
277 @config_ctx()
278 def v8_canary(c):
279 c.revisions['src/v8'] = 'origin/canary'
280
281 @config_ctx(includes=['chromium'])
282 def oilpan(c): # pragma: no cover
283 if c.GIT_MODE:
284 raise BadConf("Oilpan requires SVN for now")
285 c.solutions[0].custom_vars = {
286 'webkit_trunk': ChromiumSvnSubURL(c, 'blink', 'branches', 'oilpan')
287 }
288 c.solutions[0].custom_vars['sourceforge_url'] = mirror_only(
289 c,
290 'svn://svn-mirror.golo.chromium.org/%(repo)s',
291 'svn://svn.chromium.org/%(repo)s'
292 )
293
294 c.revisions['src/third_party/WebKit'] = 'HEAD'
295 c.solutions[0].revision = '197341'
296
297 c.solutions[0].custom_deps = {
298 'src/chrome/tools/test/reference_build/chrome_linux' :
299 ChromiumSvnSubURL(c, 'blink', 'branches', 'oilpan', 'Tools',
300 'reference_build', 'chrome_linux')
301 }
302 del c.got_revision_mapping['src']
303 c.got_revision_mapping['src/third_party/WebKit/Source'] = 'got_revision'
304
305 @config_ctx(includes=['oilpan', 'chrome_internal'])
306 def oilpan_internal(c): # pragma: no cover
307 # Add back the oilpan data dependencies
308 needed_components_internal = [
309 "src/data/memory_test",
310 "src/data/mozilla_js_tests",
311 "src/data/page_cycler",
312 "src/data/tab_switching",
313 "src/webkit/data/bmp_decoder",
314 "src/webkit/data/ico_decoder",
315 "src/webkit/data/test_shell/plugins",
316 "src/webkit/data/xbm_decoder",
317 ]
318 for key in needed_components_internal:
319 del c.solutions[1].custom_deps[key]
320
321 @config_ctx()
322 def nacl(c):
323 s = c.solutions.add()
324 s.name = 'native_client'
325 s.url = ChromiumGitURL(c, 'native_client', 'src', 'native_client.git')
326 m = c.got_revision_mapping
327 m['native_client'] = 'got_revision'
328
329 @config_ctx()
330 def webports(c):
331 s = c.solutions.add()
332 s.name = 'src'
333 s.url = ChromiumGitURL(c, 'webports.git')
334 m = c.got_revision_mapping
335 m['src'] = 'got_revision'
336
337 @config_ctx()
338 def wasm_llvm(c):
339 s = c.solutions.add()
340 s.name = 'src'
341 s.url = ChromiumGitURL(
342 c, 'external', 'github.com', 'WebAssembly', 'waterfall.git')
343 m = c.got_revision_mapping
344 m['src'] = 'got_waterfall_revision'
345 c.revisions['src'] = 'origin/master'
346
347 @config_ctx()
348 def gyp(c):
349 s = c.solutions.add()
350 s.name = 'gyp'
351 s.url = ChromiumGitURL(c, 'external', 'gyp.git')
352 m = c.got_revision_mapping
353 m['gyp'] = 'got_revision'
354
355 @config_ctx(config_vars={'GIT_MODE': True})
356 def build(c): # pragma: no cover
357 if not c.GIT_MODE:
358 raise BadConf('build only supports git')
359 s = c.solutions.add()
360 s.name = 'build'
361 s.url = ChromiumGitURL(c, 'chromium', 'tools', 'build.git')
362 m = c.got_revision_mapping
363 m['build'] = 'got_revision'
364
365 @config_ctx(config_vars={'GIT_MODE': True})
366 def depot_tools(c): # pragma: no cover
367 if not c.GIT_MODE:
368 raise BadConf('depot_tools only supports git')
369 s = c.solutions.add()
370 s.name = 'depot_tools'
371 s.url = ChromiumGitURL(c, 'chromium', 'tools', 'depot_tools.git')
372 m = c.got_revision_mapping
373 m['depot_tools'] = 'got_revision'
374
375 @config_ctx(config_vars={'GIT_MODE': True})
376 def skia(c): # pragma: no cover
377 if not c.GIT_MODE:
378 raise BadConf('skia only supports git')
379 s = c.solutions.add()
380 s.name = 'skia'
381 s.url = 'https://skia.googlesource.com/skia.git'
382 m = c.got_revision_mapping
383 m['skia'] = 'got_revision'
384
385 @config_ctx(config_vars={'GIT_MODE': True})
386 def chrome_golo(c): # pragma: no cover
387 if not c.GIT_MODE:
388 raise BadConf('chrome_golo only supports git')
389 s = c.solutions.add()
390 s.name = 'chrome_golo'
391 s.url = 'https://chrome-internal.googlesource.com/chrome-golo/chrome-golo.git'
392 c.got_revision_mapping['chrome_golo'] = 'got_revision'
393
394 @config_ctx(config_vars={'GIT_MODE': True})
395 def build_internal(c):
396 if not c.GIT_MODE: # pragma: no cover
397 raise BadConf('build_internal only supports git')
398 s = c.solutions.add()
399 s.name = 'build_internal'
400 s.url = 'https://chrome-internal.googlesource.com/chrome/tools/build.git'
401 c.got_revision_mapping['build_internal'] = 'got_revision'
402 # We do not use 'includes' here, because we want build_internal to be the
403 # first solution in the list as run_presubmit computes upstream revision
404 # from the first solution.
405 build(c)
406 c.got_revision_mapping['build'] = 'got_build_revision'
407
408 @config_ctx(config_vars={'GIT_MODE': True})
409 def build_internal_scripts_slave(c):
410 if not c.GIT_MODE: # pragma: no cover
411 raise BadConf('build_internal_scripts_slave only supports git')
412 s = c.solutions.add()
413 s.name = 'build_internal/scripts/slave'
414 s.url = ('https://chrome-internal.googlesource.com/'
415 'chrome/tools/build_limited/scripts/slave.git')
416 c.got_revision_mapping['build_internal/scripts/slave'] = 'got_revision'
417 # We do not use 'includes' here, because we want build_internal to be the
418 # first solution in the list as run_presubmit computes upstream revision
419 # from the first solution.
420 build(c)
421 c.got_revision_mapping['build'] = 'got_build_revision'
422
423 @config_ctx()
424 def slave_deps(c):
425 s = c.solutions.add()
426 s.name = 'build_internal/slave.DEPS'
427 s.url = ('https://chrome-internal.googlesource.com/'
428 'chrome/tools/build/slave.DEPS.git')
429 c.got_revision_mapping['build_internal/slave.DEPS'] = 'got_revision'
430
431 @config_ctx()
432 def internal_deps(c):
433 s = c.solutions.add()
434 s.name = 'build_internal/internal.DEPS'
435 s.url = ('https://chrome-internal.googlesource.com/'
436 'chrome/tools/build/internal.DEPS.git')
437 c.got_revision_mapping['build_internal/internal.DEPS'] = 'got_revision'
438
439 @config_ctx(includes=['chromium', 'chrome_internal'])
440 def perf(c):
441 s = c.solutions[0]
442 s.custom_vars['llvm_url'] = 'svn://svn-mirror.golo.chromium.org/llvm-project'
443 s.managed = False
444 needed_components_internal = [
445 "src/data/page_cycler",
446 ]
447 for key in needed_components_internal:
448 del c.solutions[1].custom_deps[key]
449 c.solutions[1].managed = False
450
451 @config_ctx(includes=['chromium'])
452 def chromium_skia(c):
453 c.solutions[0].revision = 'HEAD'
454 del c.solutions[0].custom_deps
455 c.revisions['src/third_party/skia'] = (
456 gclient_api.RevisionFallbackChain('origin/master'))
457 c.got_revision_mapping['src'] = 'got_chromium_revision'
458 c.got_revision_mapping['src/third_party/skia'] = 'got_revision'
459 c.parent_got_revision_mapping['parent_got_revision'] = 'got_revision'
460
461 @config_ctx(includes=['chromium'])
462 def chromium_webrtc(c):
463 c.got_revision_mapping['src/third_party/libjingle/source/talk'] = (
464 'got_libjingle_revision')
465 c.got_revision_mapping['src/third_party/libvpx/source'] = (
466 'got_libvpx_revision')
467
468 @config_ctx(includes=['chromium_webrtc'])
469 def chromium_webrtc_tot(c):
470 """Configures ToT revisions for WebRTC and Libjingle for Chromium.
471
472 Sets up ToT instead of the DEPS-pinned revision for WebRTC and Libjingle.
473 This is used for some bots to provide data about which revisions are green to
474 roll into Chromium.
475 """
476 c.revisions['src'] = 'HEAD'
477 c.revisions['src/third_party/webrtc'] = 'HEAD'
478 c.revisions['src/third_party/libjingle/source/talk'] = 'HEAD'
479
480 @config_ctx()
481 def webrtc_test_resources(c):
482 """Add webrtc.DEPS solution for test resources and tools.
483
484 The webrtc.DEPS solution pulls in additional resources needed for running
485 WebRTC-specific test setups in Chromium.
486 """
487 s = c.solutions.add()
488 s.name = 'webrtc.DEPS'
489 s.url = ChromiumGitURL(c, 'chromium', 'deps', 'webrtc', 'webrtc.DEPS')
490 s.deps_file = 'DEPS'
491
492 @config_ctx()
493 def pdfium(c):
494 soln = c.solutions.add()
495 soln.name = 'pdfium'
496 soln.url = 'https://pdfium.googlesource.com/pdfium.git'
497
498 @config_ctx()
499 def mojo(c):
500 soln = c.solutions.add()
501 soln.name = 'src'
502 soln.url = 'https://chromium.googlesource.com/external/mojo.git'
503
504 @config_ctx()
505 def crashpad(c):
506 soln = c.solutions.add()
507 soln.name = 'crashpad'
508 soln.url = 'https://chromium.googlesource.com/crashpad/crashpad.git'
509
510 @config_ctx()
511 def boringssl(c):
512 soln = c.solutions.add()
513 soln.name = 'boringssl'
514 soln.url = 'https://boringssl.googlesource.com/boringssl.git'
515 soln.deps_file = 'util/bot/DEPS'
516
517 @config_ctx()
518 def dart(c):
519 soln = c.solutions.add()
520 soln.name = 'sdk'
521 soln.url = ('https://chromium.googlesource.com/external/github.com/' +
522 'dart-lang/sdk.git')
523 soln.deps_file = 'DEPS'
524 soln.managed = False
525
526 @config_ctx(config_vars={'GIT_MODE': True})
527 def infra(c):
528 soln = c.solutions.add()
529 soln.name = 'infra'
530 soln.url = 'https://chromium.googlesource.com/infra/infra.git'
531 c.got_revision_mapping['infra'] = 'got_revision'
532
533 @config_ctx(config_vars={'GIT_MODE': True})
534 def infra_internal(c): # pragma: no cover
535 soln = c.solutions.add()
536 soln.name = 'infra_internal'
537 soln.url = 'https://chrome-internal.googlesource.com/infra/infra_internal.git'
538 c.got_revision_mapping['infra_internal'] = 'got_revision'
539
540 @config_ctx(includes=['infra'])
541 def luci_gae(c):
542 # luci/gae is checked out as a part of infra.git solution at HEAD.
543 c.revisions['infra'] = 'origin/master'
544 # luci/gae is developed together with luci-go, which should be at HEAD.
545 c.revisions['infra/go/src/github.com/luci/luci-go'] = 'origin/master'
546 c.revisions['infra/go/src/github.com/luci/gae'] = (
547 gclient_api.RevisionFallbackChain('origin/master'))
548 m = c.got_revision_mapping
549 del m['infra']
550 m['infra/go/src/github.com/luci/gae'] = 'got_revision'
551
552 @config_ctx(includes=['infra'])
553 def luci_go(c):
554 # luci-go is checked out as a part of infra.git solution at HEAD.
555 c.revisions['infra'] = 'origin/master'
556 c.revisions['infra/go/src/github.com/luci/luci-go'] = (
557 gclient_api.RevisionFallbackChain('origin/master'))
558 m = c.got_revision_mapping
559 del m['infra']
560 m['infra/go/src/github.com/luci/luci-go'] = 'got_revision'
561
562 @config_ctx(includes=['infra'])
563 def luci_py(c):
564 # luci-py is checked out as part of infra just to have appengine
565 # pre-installed, as that's what luci-py PRESUBMIT relies on.
566 c.revisions['infra'] = 'origin/master'
567 c.revisions['infra/luci'] = (
568 gclient_api.RevisionFallbackChain('origin/master'))
569 m = c.got_revision_mapping
570 del m['infra']
571 m['infra/luci'] = 'got_revision'
572
573 @config_ctx(includes=['infra'])
574 def recipes_py(c):
575 c.revisions['infra'] = 'origin/master'
576 c.revisions['infra/recipes-py'] = (
577 gclient_api.RevisionFallbackChain('origin/master'))
578 m = c.got_revision_mapping
579 del m['infra']
580 m['infra/recipes-py'] = 'got_revision'
581
582 @config_ctx()
583 def chrome_from_buildspec(c): # pragma: no cover
584 soln = c.solutions.add()
585 soln.name = 'chrome_from_buildspec'
586 # This URL has to be augmented with the appropriate bucket by the recipe using
587 # it.
588 soln.url = ('svn://svn-mirror.golo.chromium.org/chrome-internal/trunk/tools/'
589 'buildspec/build/')
590 soln.custom_vars['svn_url'] = 'svn://svn-mirror.golo.chromium.org'
591 soln.custom_deps = {}
592
593 @config_ctx()
594 def catapult(c):
595 soln = c.solutions.add()
596 soln.name = 'catapult'
597 soln.url = ('https://chromium.googlesource.com/external/github.com/'
598 'catapult-project/catapult.git')
599 c.got_revision_mapping['catapult'] = 'got_revision'
600
601 @config_ctx(includes=['infra_internal'], config_vars={'GIT_MODE': True})
602 def infradata_master_manager(c):
603 soln = c.solutions.add()
604 soln.name = 'infra-data-master-manager'
605 soln.url = (
606 'https://chrome-internal.googlesource.com/infradata/master-manager.git')
607 c.got_revision_mapping['infra-data-master-manager'] = 'got_revision'
608
609 @config_ctx()
610 def with_branch_heads(c):
611 c.with_branch_heads = True
612
613 @config_ctx()
614 def custom_tabs_client(c):
615 soln = c.solutions.add()
616 soln.name = 'custom_tabs_client'
617 # TODO(pasko): test custom-tabs-client within a full chromium checkout.
618 soln.url = ('https://chromium.googlesource.com/external/github.com/'
619 'GoogleChrome/custom-tabs-client.git')
620 c.got_revision_mapping['custom_tabs_client'] = 'got_revision'
621
622 # TODO(phajdan.jr): Move to proper repo and add coverage.
623 @config_ctx()
624 def angle_top_of_tree(c): # pragma: no cover
625 """Configures the top-of-tree ANGLE in a Chromium checkout.
626
627 Sets up ToT instead of the DEPS-pinned revision for ANGLE.
628 """
629 c.solutions[0].revision = 'HEAD'
630 c.revisions['src/third_party/angle'] = 'HEAD'
631
632 @config_ctx()
633 def gerrit_test_cq_normal(c):
634 soln = c.solutions.add()
635 soln.name = 'gerrit-test-cq-normal'
636 soln.url = 'https://chromium.googlesource.com/playground/gerrit-cq/normal.git'
637
638 # TODO(phajdan.jr): Move to proper repo and add coverage.
639 @config_ctx()
640 def valgrind(c): # pragma: no cover
641 """Add Valgrind binaries to the gclient solution."""
642 c.solutions[0].custom_deps['src/third_party/valgrind'] = \
643 ChromiumGitURL(c, 'chromium', 'deps', 'valgrind', 'binaries')
OLDNEW
« no previous file with comments | « recipe_modules/gclient/api.py ('k') | recipe_modules/gclient/example.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698