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 """CBuildbot is wrapper around the build process used by the pre-flight queue""" | 7 """CBuildbot is wrapper around the build process used by the pre-flight queue""" |
8 | 8 |
9 import errno | 9 import errno |
10 import re | 10 import re |
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
226 | 226 |
227 def _FullCheckout(buildroot, rw_checkout=True, retries=_DEFAULT_RETRIES): | 227 def _FullCheckout(buildroot, rw_checkout=True, retries=_DEFAULT_RETRIES): |
228 """Performs a full checkout and clobbers any previous checkouts.""" | 228 """Performs a full checkout and clobbers any previous checkouts.""" |
229 RunCommand(['sudo', 'rm', '-rf', buildroot]) | 229 RunCommand(['sudo', 'rm', '-rf', buildroot]) |
230 MakeDir(buildroot, parents=True) | 230 MakeDir(buildroot, parents=True) |
231 RunCommand(['repo', 'init', '-u', 'http://git.chromium.org/git/manifest'], | 231 RunCommand(['repo', 'init', '-u', 'http://git.chromium.org/git/manifest'], |
232 cwd=buildroot, input='\n\ny\n') | 232 cwd=buildroot, input='\n\ny\n') |
233 RepoSync(buildroot, rw_checkout, retries) | 233 RepoSync(buildroot, rw_checkout, retries) |
234 | 234 |
235 | 235 |
| 236 def _PreFlightRinse(buildroot): |
| 237 """Cleans up any leftover state from previous runs.""" |
| 238 RunCommand(['sudo', 'killall', 'kvm'], error_ok=True) |
| 239 _UprevCleanup(buildroot, error_ok=True) |
| 240 |
| 241 |
236 def _IncrementalCheckout(buildroot, rw_checkout=True, | 242 def _IncrementalCheckout(buildroot, rw_checkout=True, |
237 retries=_DEFAULT_RETRIES): | 243 retries=_DEFAULT_RETRIES): |
238 """Performs a checkout without clobbering previous checkout.""" | 244 """Performs a checkout without clobbering previous checkout.""" |
239 _UprevCleanup(buildroot, error_ok=True) | |
240 RepoSync(buildroot, rw_checkout, retries) | 245 RepoSync(buildroot, rw_checkout, retries) |
241 | 246 |
242 | 247 |
243 def _MakeChroot(buildroot): | 248 def _MakeChroot(buildroot): |
244 """Wrapper around make_chroot.""" | 249 """Wrapper around make_chroot.""" |
245 cwd = os.path.join(buildroot, 'src', 'scripts') | 250 cwd = os.path.join(buildroot, 'src', 'scripts') |
246 RunCommand(['./make_chroot', '--fast'], cwd=cwd) | 251 RunCommand(['./make_chroot', '--fast'], cwd=cwd) |
247 | 252 |
248 | 253 |
249 def _SetupBoard(buildroot, board='x86-generic'): | 254 def _SetupBoard(buildroot, board='x86-generic'): |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
403 buildconfig = _GetConfig(args[-1]) | 408 buildconfig = _GetConfig(args[-1]) |
404 else: | 409 else: |
405 Warning('Missing configuration description') | 410 Warning('Missing configuration description') |
406 parser.print_usage() | 411 parser.print_usage() |
407 sys.exit(1) | 412 sys.exit(1) |
408 | 413 |
409 try: | 414 try: |
410 if not os.path.isdir(buildroot): | 415 if not os.path.isdir(buildroot): |
411 _FullCheckout(buildroot) | 416 _FullCheckout(buildroot) |
412 else: | 417 else: |
| 418 _PreFlightRinse(buildroot) |
413 _IncrementalCheckout(buildroot) | 419 _IncrementalCheckout(buildroot) |
414 | 420 |
415 chroot_path = os.path.join(buildroot, 'chroot') | 421 chroot_path = os.path.join(buildroot, 'chroot') |
416 if not os.path.isdir(chroot_path): | 422 if not os.path.isdir(chroot_path): |
417 _MakeChroot(buildroot) | 423 _MakeChroot(buildroot) |
418 | 424 |
419 boardpath = os.path.join(chroot_path, 'build', buildconfig['board']) | 425 boardpath = os.path.join(chroot_path, 'build', buildconfig['board']) |
420 if not os.path.isdir(boardpath): | 426 if not os.path.isdir(boardpath): |
421 _SetupBoard(buildroot, board=buildconfig['board']) | 427 _SetupBoard(buildroot, board=buildconfig['board']) |
422 | 428 |
(...skipping 30 matching lines...) Expand all Loading... |
453 except: | 459 except: |
454 # Send failure to master bot. | 460 # Send failure to master bot. |
455 if not buildconfig['master'] and buildconfig['important']: | 461 if not buildconfig['master'] and buildconfig['important']: |
456 cbuildbot_comm.PublishStatus(cbuildbot_comm.STATUS_BUILD_FAILED) | 462 cbuildbot_comm.PublishStatus(cbuildbot_comm.STATUS_BUILD_FAILED) |
457 | 463 |
458 raise | 464 raise |
459 | 465 |
460 | 466 |
461 if __name__ == '__main__': | 467 if __name__ == '__main__': |
462 main() | 468 main() |
OLD | NEW |