Index: bin/cbuildbot.py |
diff --git a/bin/cbuildbot.py b/bin/cbuildbot.py |
index c255f2f7e0204a7c25c7e498fbe7e1fd4b78035a..372ddcaf5ff646d2a966b897cffe00c95d9beea7 100755 |
--- a/bin/cbuildbot.py |
+++ b/bin/cbuildbot.py |
@@ -181,35 +181,37 @@ def _ParseRevisionString(revision_string, repo_dictionary): |
return revisions.items() |
-def _UprevFromRevisionList(buildroot, tracking_branch, revision_list, board, |
- overlays): |
+def _UprevFromRevisionList(buildroot, tracking_branch, revision_list, board): |
"""Uprevs based on revision list.""" |
if not revision_list: |
Info('No packages found to uprev') |
return |
- packages = [] |
+ package_str = '' |
for package, revision in revision_list: |
- assert ':' not in package, 'Invalid package name: %s' % package |
- packages.append(package) |
+ package_str += package + ' ' |
+ |
+ package_str = package_str.strip() |
cwd = os.path.join(buildroot, 'src', 'scripts') |
+ # TODO(davidjames): --foo="bar baz" only works here because we're using |
+ # enter_chroot. |
RunCommand(['./cros_mark_as_stable', |
'--board=%s' % board, |
- '--tracking_branch=%s' % tracking_branch, |
- '--overlays=%s' % ':'.join(overlays), |
- '--packages=%s' % ':'.join(packages), |
+ '--tracking_branch="%s"' % tracking_branch, |
+ '--packages="%s"' % package_str, |
'commit'], |
cwd=cwd, enter_chroot=True) |
-def _UprevAllPackages(buildroot, tracking_branch, board, overlays): |
+def _UprevAllPackages(buildroot, tracking_branch, board): |
"""Uprevs all packages that have been updated since last uprev.""" |
cwd = os.path.join(buildroot, 'src', 'scripts') |
+ # TODO(davidjames): --foo="bar baz" only works here because we're using |
+ # enter_chroot. |
RunCommand(['./cros_mark_as_stable', '--all', |
'--board=%s' % board, |
- '--overlays=%s' % ':'.join(overlays), |
- '--tracking_branch=%s' % tracking_branch, 'commit'], |
+ '--tracking_branch="%s"' % tracking_branch, 'commit'], |
cwd=cwd, enter_chroot=True) |
@@ -226,13 +228,12 @@ def _GetVMConstants(buildroot): |
return (vdisk_size.strip(), statefulfs_size.strip()) |
-def _GitCleanup(buildroot, board, tracking_branch, overlays): |
+def _GitCleanup(buildroot, board, tracking_branch): |
"""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=..', |
'--board=%s' % board, |
- '--overlays=%s' % ':'.join(overlays), |
'--tracking_branch=%s' % tracking_branch, 'clean'], |
cwd=cwd, error_ok=True) |
@@ -256,9 +257,9 @@ def _WipeOldOutput(buildroot): |
# =========================== Main Commands =================================== |
-def _PreFlightRinse(buildroot, board, tracking_branch, overlays): |
+def _PreFlightRinse(buildroot, board, tracking_branch): |
"""Cleans up any leftover state from previous runs.""" |
- _GitCleanup(buildroot, board, tracking_branch, overlays) |
+ _GitCleanup(buildroot, board, tracking_branch) |
_CleanUpMountPoints(buildroot) |
RunCommand(['sudo', 'killall', 'kvm'], error_ok=True) |
@@ -346,7 +347,7 @@ def _RunSmokeSuite(buildroot, results_dir): |
], cwd=cwd, error_ok=False) |
-def _UprevPackages(buildroot, tracking_branch, revisionfile, board, overlays): |
+def _UprevPackages(buildroot, tracking_branch, revisionfile, board): |
"""Uprevs a package based on given revisionfile. |
If revisionfile is set to None or does not resolve to an actual file, this |
@@ -375,19 +376,26 @@ def _UprevPackages(buildroot, tracking_branch, revisionfile, board, overlays): |
# print >> sys.stderr, 'CBUILDBOT Revision list found %s' % revisions |
# revision_list = _ParseRevisionString(revisions, |
# _CreateRepoDictionary(buildroot, board)) |
- # _UprevFromRevisionList(buildroot, tracking_branch, revision_list, board, |
- # overlays) |
+ # _UprevFromRevisionList(buildroot, tracking_branch, revision_list, board) |
#else: |
Info('CBUILDBOT Revving all') |
- _UprevAllPackages(buildroot, tracking_branch, board, overlays) |
+ _UprevAllPackages(buildroot, tracking_branch, board) |
def _UprevPush(buildroot, tracking_branch, board, overlays): |
"""Pushes uprev changes to the main line.""" |
cwd = os.path.join(buildroot, 'src', 'scripts') |
+ public_overlay = '%s/src/third_party/chromiumos-overlay' % buildroot |
+ private_overlay = '%s/src/private-overlays/chromeos-overlay' % buildroot |
+ if overlays == 'private': |
+ overlays = [private_overlay] |
+ elif overlays == 'public': |
+ overlays = [public_overlay] |
+ else: |
+ overlays = [public_overlay, private_overlay] |
RunCommand(['./cros_mark_as_stable', '--srcroot=..', |
'--board=%s' % board, |
- '--overlays=%s' % ':'.join(overlays), |
+ '--overlays=%s' % " ".join(overlays), |
'--tracking_branch=%s' % tracking_branch, |
'--push_options=--bypass-hooks -f', 'push'], |
cwd=cwd) |
@@ -459,32 +467,6 @@ def _GetConfig(config_name): |
return buildconfig |
-def ResolveOverlays(buildroot, overlays): |
- """Return the list of overlays to use for a given buildbot. |
- |
- Args: |
- overlays: A string describing which overlays you want. |
- 'private': Just the private overlay. |
- 'public': Just the public overlay. |
- 'both': Both the public and private overlays. |
- """ |
- public_overlay = '%s/src/third_party/chromiumos-overlay' % buildroot |
- private_overlay = '%s/src/private-overlays/chromeos-overlay' % buildroot |
- if overlays == 'private': |
- dirs = [private_overlay] |
- elif overlays == 'public': |
- dirs = [public_overlay] |
- elif overlays == 'both': |
- dirs = [public_overlay, private_overlay] |
- else: |
- Die('Incorrect overlay configuration: %s' % overlays) |
- for dir in dirs: |
- assert ':' not in dir, 'Overlay must not contain colons: %s' % dir |
- if not os.path.exists(dir): |
- Die('Missing overlay: %s' % dir) |
- return dirs |
- |
- |
def main(): |
# Parse options |
usage = "usage: %prog [options] cbuildbot_config" |
@@ -520,11 +502,8 @@ def main(): |
parser.print_usage() |
sys.exit(1) |
- # Calculate list of overlay directories. |
- overlays = ResolveOverlays(buildroot, buildconfig['overlays']) |
- |
try: |
- _PreFlightRinse(buildroot, buildconfig['board'], tracking_branch, overlays) |
+ _PreFlightRinse(buildroot, buildconfig['board'], tracking_branch) |
if options.clobber or not os.path.isdir(buildroot): |
_FullCheckout(buildroot, tracking_branch, url=options.url) |
else: |
@@ -540,7 +519,7 @@ def main(): |
if buildconfig['uprev']: |
_UprevPackages(buildroot, tracking_branch, revisionfile, |
- buildconfig['board'], overlays) |
+ board=buildconfig['board']) |
_EnableLocalAccount(buildroot) |
_Build(buildroot) |
@@ -566,7 +545,7 @@ def main(): |
# Master bot needs to check if the other slaves completed. |
if cbuildbot_comm.HaveSlavesCompleted(config): |
_UprevPush(buildroot, tracking_branch, buildconfig['board'], |
- overlays) |
+ buildconfig['overlays']) |
else: |
Die('CBUILDBOT - One of the slaves has failed!!!') |