Chromium Code Reviews| Index: bin/cbuildbot.py |
| diff --git a/bin/cbuildbot.py b/bin/cbuildbot.py |
| index c4cf578c51fd0d75c5afb20fbb0b7c4d448f1cf9..c47b8a39f2705bfb977e8ceba8c163a5db851c83 100755 |
| --- a/bin/cbuildbot.py |
| +++ b/bin/cbuildbot.py |
| @@ -218,8 +218,41 @@ def _GetVMConstants(buildroot): |
| return (vdisk_size.strip(), statefulfs_size.strip()) |
| +def _GitCleanup(buildroot): |
| + """Clean up git branch after previous uprev attempt.""" |
| + cwd = os.path.join(buildroot, 'src', 'scripts') |
| + if os.path.exists(cwd): |
| + RunCommand(['./cros_mark_as_stable', '--srcroot=..', |
| + '--tracking_branch="cros/master"', 'clean'], |
| + cwd=cwd, error_ok=True) |
| + |
| + |
| +def _CleanUpMountPoints(buildroot): |
| + """Cleans up any stale mount points from previous runs.""" |
| + mount_output = RunCommand(['mount'], redirect_stdout=True) |
| + mount_pts_in_buildroot = RunCommand(['grep', buildroot], input=mount_output, |
| + redirect_stdout=True, error_ok=True) |
|
scottz
2010/10/22 00:07:32
if you are going to do this, you might as well jus
|
| + |
| + for mount_pt_str in mount_pts_in_buildroot.splitlines(): |
| + mount_pt = mount_pt_str.rpartition(' type ')[0].partition(' on ')[2] |
| + RunCommand(['sudo', 'umount', '-l', mount_pt], error_ok=True) |
| + |
| + |
| +def _WipeOldOutput(buildroot): |
| + """Wipes out build output directories.""" |
| + RunCommand(['rm', '-rf', 'src/build/images'], cwd=buildroot) |
| + |
| + |
| # =========================== Main Commands =================================== |
| + |
| +def _PreFlightRinse(buildroot): |
| + """Cleans up any leftover state from previous runs.""" |
| + _GitCleanup(buildroot) |
| + _CleanUpMountPoints(buildroot) |
| + RunCommand(['sudo', 'killall', 'kvm'], error_ok=True) |
| + |
| + |
| def _FullCheckout(buildroot, rw_checkout=True, retries=_DEFAULT_RETRIES): |
| """Performs a full checkout and clobbers any previous checkouts.""" |
| RunCommand(['sudo', 'rm', '-rf', buildroot]) |
| @@ -229,12 +262,6 @@ def _FullCheckout(buildroot, rw_checkout=True, retries=_DEFAULT_RETRIES): |
| RepoSync(buildroot, rw_checkout, retries) |
| -def _PreFlightRinse(buildroot): |
| - """Cleans up any leftover state from previous runs.""" |
| - RunCommand(['sudo', 'killall', 'kvm'], error_ok=True) |
| - _UprevCleanup(buildroot, error_ok=True) |
| - |
| - |
| def _IncrementalCheckout(buildroot, rw_checkout=True, |
| retries=_DEFAULT_RETRIES): |
| """Performs a checkout without clobbering previous checkout.""" |
| @@ -260,10 +287,6 @@ def _Build(buildroot): |
| RunCommand(['./build_packages'], cwd=cwd, enter_chroot=True) |
| -def _WipeOldOutput(buildroot): |
| - RunCommand(['rm', '-rf', 'src/build/images'], cwd=buildroot) |
| - |
| - |
| def _EnableLocalAccount(buildroot): |
| cwd = os.path.join(buildroot, 'src', 'scripts') |
| # Set local account for test images. |
| @@ -338,14 +361,6 @@ def _UprevPackages(buildroot, revisionfile, board): |
| _UprevAllPackages(buildroot) |
| -def _UprevCleanup(buildroot, error_ok=False): |
| - """Clean up after a previous uprev attempt.""" |
| - cwd = os.path.join(buildroot, 'src', 'scripts') |
| - RunCommand(['./cros_mark_as_stable', '--srcroot=..', |
| - '--tracking_branch="cros/master"', 'clean'], |
| - cwd=cwd, error_ok=error_ok) |
| - |
| - |
| def _UprevPush(buildroot): |
| """Pushes uprev changes to the main line.""" |
| cwd = os.path.join(buildroot, 'src', 'scripts') |
| @@ -398,10 +413,6 @@ def main(): |
| buildroot = options.buildroot |
| revisionfile = options.revisionfile |
| - # Passed option to clobber. |
| - if options.clobber: |
| - RunCommand(['sudo', 'rm', '-rf', buildroot]) |
| - |
| if len(args) >= 1: |
| buildconfig = _GetConfig(args[-1]) |
| else: |
| @@ -410,10 +421,10 @@ def main(): |
| sys.exit(1) |
| try: |
| - if not os.path.isdir(buildroot): |
| + _PreFlightRinse(buildroot) |
| + if options.clobber or not os.path.isdir(buildroot): |
| _FullCheckout(buildroot) |
| else: |
| - _PreFlightRinse(buildroot) |
| _IncrementalCheckout(buildroot) |
| chroot_path = os.path.join(buildroot, 'chroot') |
| @@ -446,8 +457,6 @@ def main(): |
| if cbuildbot_comm.HaveSlavesCompleted(config): |
| _UprevPush(buildroot) |
| else: |
| - # At least one of the slaves failed or we timed out. |
| - _UprevCleanup(buildroot) |
| Die('CBUILDBOT - One of the slaves has failed!!!') |
| else: |
| @@ -455,7 +464,6 @@ def main(): |
| if buildconfig['important']: |
| cbuildbot_comm.PublishStatus(cbuildbot_comm.STATUS_BUILD_COMPLETE) |
| - _UprevCleanup(buildroot) |
| except: |
| # Send failure to master bot. |
| if not buildconfig['master'] and buildconfig['important']: |