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

Side by Side Diff: scripts/slave/bot_update.py

Issue 1241323004: Cross-repo recipe package system. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Roll to latest recipes-py Created 5 years, 3 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
« no previous file with comments | « scripts/slave/annotated_run.py ('k') | scripts/slave/recipe_modules/chromium_android/api.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2014 The Chromium Authors. All rights reserved. 2 # Copyright 2014 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 # TODO(hinoka): Use logging. 6 # TODO(hinoka): Use logging.
7 7
8 import cStringIO 8 import cStringIO
9 import codecs 9 import codecs
10 import collections 10 import collections
(...skipping 24 matching lines...) Expand all
35 # Relative to the current working directory. 35 # Relative to the current working directory.
36 CURRENT_DIR = path.abspath(os.getcwd()) 36 CURRENT_DIR = path.abspath(os.getcwd())
37 BUILDER_DIR = path.dirname(CURRENT_DIR) 37 BUILDER_DIR = path.dirname(CURRENT_DIR)
38 SLAVE_DIR = path.dirname(BUILDER_DIR) 38 SLAVE_DIR = path.dirname(BUILDER_DIR)
39 39
40 # Relative to this script's filesystem path. 40 # Relative to this script's filesystem path.
41 THIS_DIR = path.dirname(path.abspath(__file__)) 41 THIS_DIR = path.dirname(path.abspath(__file__))
42 SCRIPTS_DIR = path.dirname(THIS_DIR) 42 SCRIPTS_DIR = path.dirname(THIS_DIR)
43 BUILD_DIR = path.dirname(SCRIPTS_DIR) 43 BUILD_DIR = path.dirname(SCRIPTS_DIR)
44 ROOT_DIR = path.dirname(BUILD_DIR) 44 ROOT_DIR = path.dirname(BUILD_DIR)
45 BUILD_INTERNAL_DIR = path.join(ROOT_DIR, 'build_internal')
46 DEPOT_TOOLS_DIR = path.join(ROOT_DIR, 'depot_tools') 45 DEPOT_TOOLS_DIR = path.join(ROOT_DIR, 'depot_tools')
47 46
47 # TODO(luqui): This is a horrible hack to identify build_internal when build
48 # is a recipe dependency. bot_update should not be depending on internal,
49 # rather the arrow should go the other way (or just be destroyed).
50 def check_build_internal(d):
51 d = path.abspath(d)
52 if path.basename(d) == 'build_internal' and path.isdir(d):
53 return d
54 else:
55 return None
56
57 BUILD_INTERNAL_DIR = (
58 check_build_internal(path.join(ROOT_DIR, 'build_internal')) or
59 check_build_internal(path.join(ROOT_DIR, # .recipe_deps
60 path.pardir, # slave
61 path.pardir, # scripts
62 path.pardir))) # build_internal
63
48 64
49 CHROMIUM_GIT_HOST = 'https://chromium.googlesource.com' 65 CHROMIUM_GIT_HOST = 'https://chromium.googlesource.com'
50 CHROMIUM_SRC_URL = CHROMIUM_GIT_HOST + '/chromium/src.git' 66 CHROMIUM_SRC_URL = CHROMIUM_GIT_HOST + '/chromium/src.git'
51 67
52 # Official builds use buildspecs, so this is a special case. 68 # Official builds use buildspecs, so this is a special case.
53 BUILDSPEC_TYPE = collections.namedtuple('buildspec', 69 BUILDSPEC_TYPE = collections.namedtuple('buildspec',
54 ('container', 'version')) 70 ('container', 'version'))
55 BUILDSPEC_RE = (r'^/chrome-internal/trunk/tools/buildspec/' 71 BUILDSPEC_RE = (r'^/chrome-internal/trunk/tools/buildspec/'
56 '(build|branches|releases)/(.+)$') 72 '(build|branches|releases)/(.+)$')
57 GIT_BUILDSPEC_PATH = ('https://chrome-internal.googlesource.com/chrome/tools/' 73 GIT_BUILDSPEC_PATH = ('https://chrome-internal.googlesource.com/chrome/tools/'
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 196
181 GCLIENT_TEMPLATE = """solutions = %(solutions)s 197 GCLIENT_TEMPLATE = """solutions = %(solutions)s
182 198
183 cache_dir = r%(cache_dir)s 199 cache_dir = r%(cache_dir)s
184 %(target_os)s 200 %(target_os)s
185 %(target_os_only)s 201 %(target_os_only)s
186 """ 202 """
187 203
188 204
189 internal_data = {} 205 internal_data = {}
190 if os.path.isdir(BUILD_INTERNAL_DIR): 206 if BUILD_INTERNAL_DIR:
191 local_vars = {} 207 local_vars = {}
192 try: 208 try:
193 execfile(os.path.join( 209 execfile(os.path.join(
194 BUILD_INTERNAL_DIR, 'scripts', 'slave', 'bot_update_cfg.py'), 210 BUILD_INTERNAL_DIR, 'scripts', 'slave', 'bot_update_cfg.py'),
195 local_vars) 211 local_vars)
196 except Exception: 212 except Exception:
197 # Same as if BUILD_INTERNAL_DIR didn't exist in the first place. 213 # Same as if BUILD_INTERNAL_DIR didn't exist in the first place.
198 print 'Warning: unable to read internal configuration file.' 214 print 'Warning: unable to read internal configuration file.'
199 print 'If this is an internal bot, this step may be erroneously inactive.' 215 print 'If this is an internal bot, this step may be erroneously inactive.'
200 internal_data = local_vars 216 internal_data = local_vars
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
309 GIT_CACHE_PATH = path.join(DEPOT_TOOLS_DIR, 'git_cache.py') 325 GIT_CACHE_PATH = path.join(DEPOT_TOOLS_DIR, 'git_cache.py')
310 CACHE_DIR = path.join(SLAVE_DIR, 'cache_dir') 326 CACHE_DIR = path.join(SLAVE_DIR, 'cache_dir')
311 # Because we print CACHE_DIR out into a .gclient file, and then later run 327 # Because we print CACHE_DIR out into a .gclient file, and then later run
312 # eval() on it, backslashes need to be escaped, otherwise "E:\b\build" gets 328 # eval() on it, backslashes need to be escaped, otherwise "E:\b\build" gets
313 # parsed as "E:[\x08][\x08]uild". 329 # parsed as "E:[\x08][\x08]uild".
314 if sys.platform.startswith('win'): 330 if sys.platform.startswith('win'):
315 CACHE_DIR = CACHE_DIR.replace('\\', '\\\\') 331 CACHE_DIR = CACHE_DIR.replace('\\', '\\\\')
316 332
317 # Find the patch tool. 333 # Find the patch tool.
318 if sys.platform.startswith('win'): 334 if sys.platform.startswith('win'):
319 PATCH_TOOL = path.join(BUILD_INTERNAL_DIR, 'tools', 'patch.EXE') 335 if not BUILD_INTERNAL_DIR:
336 print 'Warning: could not find patch tool because there is no '
337 print 'build_internal present.'
338 PATCH_TOOL = None
339 else:
340 PATCH_TOOL = path.join(BUILD_INTERNAL_DIR, 'tools', 'patch.EXE')
320 else: 341 else:
321 PATCH_TOOL = '/usr/bin/patch' 342 PATCH_TOOL = '/usr/bin/patch'
322 343
323 # If there is less than 100GB of disk space on the system, then we do 344 # If there is less than 100GB of disk space on the system, then we do
324 # a shallow checkout. 345 # a shallow checkout.
325 SHALLOW_CLONE_THRESHOLD = 100 * 1024 * 1024 * 1024 346 SHALLOW_CLONE_THRESHOLD = 100 * 1024 * 1024 * 1024
326 347
327 348
328 class SubprocessFailed(Exception): 349 class SubprocessFailed(Exception):
329 def __init__(self, message, code, output): 350 def __init__(self, message, code, output):
(...skipping 1339 matching lines...) Expand 10 before | Expand all | Expand 10 after
1669 except Exception: 1690 except Exception:
1670 # Unexpected failure. 1691 # Unexpected failure.
1671 emit_flag(options.flag_file) 1692 emit_flag(options.flag_file)
1672 raise 1693 raise
1673 else: 1694 else:
1674 emit_flag(options.flag_file) 1695 emit_flag(options.flag_file)
1675 1696
1676 1697
1677 if __name__ == '__main__': 1698 if __name__ == '__main__':
1678 sys.exit(main()) 1699 sys.exit(main())
OLDNEW
« no previous file with comments | « scripts/slave/annotated_run.py ('k') | scripts/slave/recipe_modules/chromium_android/api.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698