Chromium Code Reviews| Index: bin/cbuildbot.py |
| diff --git a/bin/cbuildbot.py b/bin/cbuildbot.py |
| index c47b8a39f2705bfb977e8ceba8c163a5db851c83..dabb723cfd41a0172aa02cf2e51eef07b04f381b 100755 |
| --- a/bin/cbuildbot.py |
| +++ b/bin/cbuildbot.py |
| @@ -177,7 +177,7 @@ def _ParseRevisionString(revision_string, repo_dictionary): |
| return revisions.items() |
| -def _UprevFromRevisionList(buildroot, revision_list): |
| +def _UprevFromRevisionList(buildroot, tracking_branch, revision_list): |
| """Uprevs based on revision list.""" |
| if not revision_list: |
| Info('No packages found to uprev') |
| @@ -191,17 +191,17 @@ def _UprevFromRevisionList(buildroot, revision_list): |
| cwd = os.path.join(buildroot, 'src', 'scripts') |
| RunCommand(['./cros_mark_as_stable', |
| - '--tracking_branch="cros/master"', |
| + '--tracking_branch="%s"' % tracking_branch, |
| '--packages="%s"' % package_str, |
| 'commit'], |
| cwd=cwd, enter_chroot=True) |
| -def _UprevAllPackages(buildroot): |
| +def _UprevAllPackages(buildroot, tracking_branch): |
| """Uprevs all packages that have been updated since last uprev.""" |
| cwd = os.path.join(buildroot, 'src', 'scripts') |
| RunCommand(['./cros_mark_as_stable', '--all', |
| - '--tracking_branch="cros/master"', 'commit'], |
| + '--tracking_branch="%s"' % tracking_branch, 'commit'], |
| cwd=cwd, enter_chroot=True) |
| @@ -253,12 +253,16 @@ def _PreFlightRinse(buildroot): |
| RunCommand(['sudo', 'killall', 'kvm'], error_ok=True) |
| -def _FullCheckout(buildroot, rw_checkout=True, retries=_DEFAULT_RETRIES): |
| +def _FullCheckout(buildroot, tracking_branch, rw_checkout=True, |
| + retries=_DEFAULT_RETRIES, |
| + url='http://git.chromium.org/git/manifest'): |
| """Performs a full checkout and clobbers any previous checkouts.""" |
| RunCommand(['sudo', 'rm', '-rf', buildroot]) |
| MakeDir(buildroot, parents=True) |
| - RunCommand(['repo', 'init', '-u', 'http://git.chromium.org/git/manifest'], |
| - cwd=buildroot, input='\n\ny\n') |
| + branch = tracking_branch.split('/'); |
|
sosa
2010/10/22 06:20:06
Nit: may wanna consider just using os.path.basenam
|
| + RunCommand(['repo', 'init', '-u', |
| + url, '-b', |
| + '%s' % branch[-1]], cwd=buildroot, input='\n\ny\n') |
| RepoSync(buildroot, rw_checkout, retries) |
| @@ -326,7 +330,7 @@ def _RunSmokeSuite(buildroot): |
| ], cwd=cwd, error_ok=False) |
| -def _UprevPackages(buildroot, revisionfile, board): |
| +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 |
| @@ -355,17 +359,17 @@ def _UprevPackages(buildroot, revisionfile, board): |
| # print >> sys.stderr, 'CBUILDBOT Revision list found %s' % revisions |
| # revision_list = _ParseRevisionString(revisions, |
| # _CreateRepoDictionary(buildroot, board)) |
| - # _UprevFromRevisionList(buildroot, revision_list) |
| + # _UprevFromRevisionList(buildroot, tracking_branch, revision_list) |
| #else: |
| Info('CBUILDBOT Revving all') |
| - _UprevAllPackages(buildroot) |
| + _UprevAllPackages(buildroot, tracking_branch) |
| -def _UprevPush(buildroot): |
| +def _UprevPush(buildroot, tracking_branch): |
| """Pushes uprev changes to the main line.""" |
| cwd = os.path.join(buildroot, 'src', 'scripts') |
| RunCommand(['./cros_mark_as_stable', '--srcroot=..', |
| - '--tracking_branch="cros/master"', |
| + '--tracking_branch="%s"' % tracking_branch, |
| '--push_options="--bypass-hooks -f"', 'push'], |
| cwd=cwd) |
| @@ -408,10 +412,17 @@ def main(): |
| parser.add_option('--debug', action='store_true', dest='debug', |
| default=False, |
| help='Override some options to run as a developer.') |
| + parser.add_option('-t', '--tracking-branch', dest='tracking_branch', |
| + default='cros/master', help='Run the buildbot on a branch') |
| + parser.add_option('-u', '--url', dest='url', |
| + default='http://git.chromium.org/git/manifest', |
| + help='Run the buildbot on internal manifest') |
| + |
| (options, args) = parser.parse_args() |
| buildroot = options.buildroot |
| revisionfile = options.revisionfile |
| + tracking_branch = options.tracking_branch |
| if len(args) >= 1: |
| buildconfig = _GetConfig(args[-1]) |
| @@ -423,7 +434,7 @@ def main(): |
| try: |
| _PreFlightRinse(buildroot) |
| if options.clobber or not os.path.isdir(buildroot): |
| - _FullCheckout(buildroot) |
| + _FullCheckout(buildroot, tracking_branch, url=options.url) |
| else: |
| _IncrementalCheckout(buildroot) |
| @@ -436,7 +447,8 @@ def main(): |
| _SetupBoard(buildroot, board=buildconfig['board']) |
| if buildconfig['uprev']: |
| - _UprevPackages(buildroot, revisionfile, board=buildconfig['board']) |
| + _UprevPackages(buildroot, tracking_branch, revisionfile, |
| + board=buildconfig['board']) |
| _EnableLocalAccount(buildroot) |
| _Build(buildroot) |
| @@ -455,7 +467,7 @@ def main(): |
| if buildconfig['master']: |
| # Master bot needs to check if the other slaves completed. |
| if cbuildbot_comm.HaveSlavesCompleted(config): |
| - _UprevPush(buildroot) |
| + _UprevPush(buildroot, tracking_branch) |
| else: |
| Die('CBUILDBOT - One of the slaves has failed!!!') |