OLD | NEW |
(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') |
OLD | NEW |