| OLD | NEW |
| 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 | 16 _DEFAULT_RETRIES = 3 |
| 17 | 17 |
| 18 # Utility functions | 18 # Utility functions |
| 19 | 19 |
| 20 def RunCommand(cmd, print_cmd=True, error_ok=False, error_message=None, | 20 def RunCommand(cmd, print_cmd=True, error_ok=False, error_message=None, |
| 21 exit_code=False, redirect_stdout=False, redirect_stderr=False, | 21 exit_code=False, redirect_stdout=False, redirect_stderr=False, |
| 22 cwd=None, input=None): | 22 cwd=None, input=None): |
| 23 # Print out the command before running. | 23 # Print out the command before running. |
| 24 if print_cmd: | 24 if print_cmd: |
| 25 print >> sys.stderr, "CBUILDBOT -- RunCommand:", ' '.join(cmd) | 25 print >> sys.stderr, "CBUILDBOT -- RunCommand:", ' '.join(cmd) |
| 26 if redirect_stdout: | 26 if redirect_stdout: |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 61 if rw_checkout: | 61 if rw_checkout: |
| 62 # Always re-run in case of new git repos or repo sync | 62 # Always re-run in case of new git repos or repo sync |
| 63 # failed in a previous run because of a forced Stop Build. | 63 # failed in a previous run because of a forced Stop Build. |
| 64 RunCommand(['repo', 'forall', '-c', 'git', 'config', | 64 RunCommand(['repo', 'forall', '-c', 'git', 'config', |
| 65 'url.ssh://git@gitrw.chromium.org:9222.pushinsteadof', | 65 'url.ssh://git@gitrw.chromium.org:9222.pushinsteadof', |
| 66 'http://src.chromium.org/git'], cwd=buildroot) | 66 'http://src.chromium.org/git'], cwd=buildroot) |
| 67 retries = 0 | 67 retries = 0 |
| 68 except: | 68 except: |
| 69 retries -= 1 | 69 retries -= 1 |
| 70 if retries > 0: | 70 if retries > 0: |
| 71 print >>sys.stderr, 'CBUILDBOT -- Repo Sync Failed, retrying' | 71 print >> sys.stderr, 'CBUILDBOT -- Repo Sync Failed, retrying' |
| 72 else: | 72 else: |
| 73 print >>sys.stderr, 'CBUILDBOT -- Retries exhausted' | 73 print >> sys.stderr, 'CBUILDBOT -- Retries exhausted' |
| 74 raise | 74 raise |
| 75 | 75 |
| 76 # Main functions | 76 # Main functions |
| 77 | 77 |
| 78 def _FullCheckout(buildroot, rw_checkout=True, retries=_DEFAULT_RETRIES): | 78 def _FullCheckout(buildroot, rw_checkout=True, retries=_DEFAULT_RETRIES): |
| 79 RunCommand(['sudo', 'rm', '-rf', buildroot]) | 79 RunCommand(['sudo', 'rm', '-rf', buildroot]) |
| 80 MakeDir(buildroot, parents=True) | 80 MakeDir(buildroot, parents=True) |
| 81 RunCommand(['repo', 'init', '-u', 'http://src.chromium.org/git/manifest'], | 81 RunCommand(['repo', 'init', '-u', 'http://src.chromium.org/git/manifest'], |
| 82 cwd=buildroot, input='\n\ny\n') | 82 cwd=buildroot, input='\n\ny\n') |
| 83 RepoSync(buildroot, rw_checkout, retries) | 83 RepoSync(buildroot, rw_checkout, retries) |
| (...skipping 17 matching lines...) Expand all Loading... |
| 101 | 101 |
| 102 def _UprevAllPackages(buildroot): | 102 def _UprevAllPackages(buildroot): |
| 103 cwd = os.path.join(buildroot, 'src', 'scripts') | 103 cwd = os.path.join(buildroot, 'src', 'scripts') |
| 104 RunCommand(['./enter_chroot.sh', '--', './cros_mark_all_as_stable', | 104 RunCommand(['./enter_chroot.sh', '--', './cros_mark_all_as_stable', |
| 105 '--tracking_branch="cros/master"'], | 105 '--tracking_branch="cros/master"'], |
| 106 cwd=cwd) | 106 cwd=cwd) |
| 107 | 107 |
| 108 def _UprevPackages(buildroot, revisionfile): | 108 def _UprevPackages(buildroot, revisionfile): |
| 109 revisions = None | 109 revisions = None |
| 110 if (revisionfile): | 110 if (revisionfile): |
| 111 rev_file = revisionfile.open(revisionfile) | 111 try: |
| 112 revisions = rev_file.read() | 112 rev_file = open(revisionfile) |
| 113 rev_file.close() | 113 revisions = rev_file.read() |
| 114 rev_file.close() |
| 115 except: |
| 116 print >> sys.stderr, 'Error reading %s' % revisionfile |
| 117 revisions = None |
| 114 | 118 |
| 115 # Note: Revisions == "None" indicates a Force Build. | 119 # Note: Revisions == "None" indicates a Force Build. |
| 116 if revisions and revisions != 'None': | 120 if revisions and revisions != 'None': |
| 117 print 'CBUILDBOT - Revision list found %s' % revisions | 121 print 'CBUILDBOT - Revision list found %s' % revisions |
| 118 print 'Revision list not yet propagating to build, marking all instead' | 122 print 'Revision list not yet propagating to build, marking all instead' |
| 119 | 123 |
| 120 _UprevAllPackages(buildroot) | 124 _UprevAllPackages(buildroot) |
| 121 | 125 |
| 122 def _UprevCleanup(buildroot): | 126 def _UprevCleanup(buildroot): |
| 123 cwd = os.path.join(buildroot, 'src', 'scripts') | 127 cwd = os.path.join(buildroot, 'src', 'scripts') |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 185 _UprevPush(buildroot) | 189 _UprevPush(buildroot) |
| 186 _UprevCleanup(buildroot) | 190 _UprevCleanup(buildroot) |
| 187 except: | 191 except: |
| 188 # something went wrong, cleanup (being paranoid) for next build | 192 # something went wrong, cleanup (being paranoid) for next build |
| 189 if clobber: | 193 if clobber: |
| 190 RunCommand(['sudo', 'rm', '-rf', buildroot], print_cmd=False) | 194 RunCommand(['sudo', 'rm', '-rf', buildroot], print_cmd=False) |
| 191 raise | 195 raise |
| 192 | 196 |
| 193 if __name__ == '__main__': | 197 if __name__ == '__main__': |
| 194 main() | 198 main() |
| OLD | NEW |