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

Side by Side Diff: bin/cbuildbot.py

Issue 3166019: Add repo sync all helper for non-pfq buildbots. (Closed) Base URL: http://src.chromium.org/git/crosutils.git
Patch Set: Fix ws Created 10 years, 4 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 | « no previous file | bin/cros_repo_sync_all » ('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/python 1 #!/usr/bin/python
2 2
3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 import errno 7 import errno
8 import optparse 8 import optparse
9 import os 9 import os
10 import shutil 10 import shutil
11 import subprocess 11 import subprocess
12 import sys 12 import sys
13 13
14 from cbuildbot_config import config 14 from cbuildbot_config import config
15 15
16 _DEFAULT_RETRIES=3
17
16 # Utility functions 18 # Utility functions
17 19
18 def RunCommand(cmd, error_ok=False, error_message=None, exit_code=False, 20 def RunCommand(cmd, error_ok=False, error_message=None, exit_code=False,
19 redirect_stdout=False, redirect_stderr=False, cwd=None, 21 redirect_stdout=False, redirect_stderr=False, cwd=None,
20 input=None): 22 input=None):
21 # Print out the command before running. 23 # Print out the command before running.
22 print >>sys.stderr, "CBUILDBOT -- RunCommand:", ' '.join(cmd) 24 print >>sys.stderr, "CBUILDBOT -- RunCommand:", ' '.join(cmd)
23 if redirect_stdout: 25 if redirect_stdout:
24 stdout = subprocess.PIPE 26 stdout = subprocess.PIPE
25 else: 27 else:
(...skipping 18 matching lines...) Expand all
44 46
45 def MakeDir(path, parents=False): 47 def MakeDir(path, parents=False):
46 try: 48 try:
47 os.makedirs(path) 49 os.makedirs(path)
48 except OSError,e: 50 except OSError,e:
49 if e.errno == errno.EEXIST and parents: 51 if e.errno == errno.EEXIST and parents:
50 pass 52 pass
51 else: 53 else:
52 raise 54 raise
53 55
56 def RepoSync(buildroot, retries=_DEFAULT_RETRIES):
57 while retries > 0:
58 try:
59 RunCommand(['repo', 'sync'], cwd=buildroot)
60 retries = 0
61 except:
62 retries -= 1
63 if retries > 0:
64 print >>sys.stderr, 'CBUILDBOT -- Repo Sync Failed, retrying'
65 else:
66 print >>sys.stderr, 'CBUILDBOT -- Retries exhausted'
67 raise
68
54 # Main functions 69 # Main functions
55 70
56 def _FullCheckout(buildroot): 71 def _FullCheckout(buildroot, rw_checkout=True, retries=_DEFAULT_RETRIES):
72 RunCommand(['sudo', 'rm', '-rf', buildroot])
57 MakeDir(buildroot, parents=True) 73 MakeDir(buildroot, parents=True)
58 RunCommand(['repo', 'init', '-u', 'http://src.chromium.org/git/manifest'], 74 RunCommand(['repo', 'init', '-u', 'http://src.chromium.org/git/manifest'],
59 cwd=buildroot, input='\n\ny\n') 75 cwd=buildroot, input='\n\ny\n')
60 RunCommand(['repo', 'sync'], cwd=buildroot) 76 RepoSync(buildroot, retries)
61 RunCommand(['repo', 'forall', '-c', 'git', 'config', 77 if rw_checkout:
62 'url.ssh://git@gitrw.chromium.org:9222.pushinsteadof', 78 RunCommand(['repo', 'forall', '-c', 'git', 'config',
63 'http://src.chromium.org/git'], cwd=buildroot) 79 'url.ssh://git@gitrw.chromium.org:9222.pushinsteadof',
80 'http://src.chromium.org/git'], cwd=buildroot)
64 81
65 def _IncrementalCheckout(buildroot): 82 def _IncrementalCheckout(buildroot, retries=_DEFAULT_RETRIES):
66 RunCommand(['repo', 'sync'], cwd=buildroot) 83 RepoSync(buildroot, retries)
67 84
68 def _MakeChroot(buildroot): 85 def _MakeChroot(buildroot):
69 cwd = os.path.join(buildroot, 'src', 'scripts') 86 cwd = os.path.join(buildroot, 'src', 'scripts')
70 RunCommand(['./make_chroot', '--fast'], cwd=cwd) 87 RunCommand(['./make_chroot', '--fast'], cwd=cwd)
71 88
72 def _SetupBoard(buildroot, board='x86-generic'): 89 def _SetupBoard(buildroot, board='x86-generic'):
73 cwd = os.path.join(buildroot, 'src', 'scripts') 90 cwd = os.path.join(buildroot, 'src', 'scripts')
74 RunCommand(['./setup_board', '--fast', '--default', '--board=%s' % board], 91 RunCommand(['./setup_board', '--fast', '--default', '--board=%s' % board],
75 cwd=cwd) 92 cwd=cwd)
76 93
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 if buildconfig['uprev']: 158 if buildconfig['uprev']:
142 _UprevPush(buildroot) 159 _UprevPush(buildroot)
143 _UprevCleanup(buildroot) 160 _UprevCleanup(buildroot)
144 except: 161 except:
145 # something went wrong, cleanup (being paranoid) for next build 162 # something went wrong, cleanup (being paranoid) for next build
146 RunCommand(['sudo', 'rm', '-rf', buildroot]) 163 RunCommand(['sudo', 'rm', '-rf', buildroot])
147 raise 164 raise
148 165
149 if __name__ == '__main__': 166 if __name__ == '__main__':
150 main() 167 main()
OLDNEW
« no previous file with comments | « no previous file | bin/cros_repo_sync_all » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698