mirror of
https://github.com/flatcar/scripts.git
synced 2025-09-26 08:01:14 +02:00
Add branch support to preflight
Change-Id: Ia2592c6384e94e4e8e5400eddbf2e03aac150eef BUG=7905 TEST=run cbuildbot on my workstation. Review URL: http://codereview.chromium.org/4040002
This commit is contained in:
parent
01693fec80
commit
a6b1390fc5
@ -177,7 +177,7 @@ def _ParseRevisionString(revision_string, repo_dictionary):
|
|||||||
return revisions.items()
|
return revisions.items()
|
||||||
|
|
||||||
|
|
||||||
def _UprevFromRevisionList(buildroot, revision_list):
|
def _UprevFromRevisionList(buildroot, tracking_branch, revision_list):
|
||||||
"""Uprevs based on revision list."""
|
"""Uprevs based on revision list."""
|
||||||
if not revision_list:
|
if not revision_list:
|
||||||
Info('No packages found to uprev')
|
Info('No packages found to uprev')
|
||||||
@ -191,17 +191,17 @@ def _UprevFromRevisionList(buildroot, revision_list):
|
|||||||
|
|
||||||
cwd = os.path.join(buildroot, 'src', 'scripts')
|
cwd = os.path.join(buildroot, 'src', 'scripts')
|
||||||
RunCommand(['./cros_mark_as_stable',
|
RunCommand(['./cros_mark_as_stable',
|
||||||
'--tracking_branch="cros/master"',
|
'--tracking_branch="%s"' % tracking_branch,
|
||||||
'--packages="%s"' % package_str,
|
'--packages="%s"' % package_str,
|
||||||
'commit'],
|
'commit'],
|
||||||
cwd=cwd, enter_chroot=True)
|
cwd=cwd, enter_chroot=True)
|
||||||
|
|
||||||
|
|
||||||
def _UprevAllPackages(buildroot):
|
def _UprevAllPackages(buildroot, tracking_branch):
|
||||||
"""Uprevs all packages that have been updated since last uprev."""
|
"""Uprevs all packages that have been updated since last uprev."""
|
||||||
cwd = os.path.join(buildroot, 'src', 'scripts')
|
cwd = os.path.join(buildroot, 'src', 'scripts')
|
||||||
RunCommand(['./cros_mark_as_stable', '--all',
|
RunCommand(['./cros_mark_as_stable', '--all',
|
||||||
'--tracking_branch="cros/master"', 'commit'],
|
'--tracking_branch="%s"' % tracking_branch, 'commit'],
|
||||||
cwd=cwd, enter_chroot=True)
|
cwd=cwd, enter_chroot=True)
|
||||||
|
|
||||||
|
|
||||||
@ -253,12 +253,16 @@ def _PreFlightRinse(buildroot):
|
|||||||
RunCommand(['sudo', 'killall', 'kvm'], error_ok=True)
|
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."""
|
"""Performs a full checkout and clobbers any previous checkouts."""
|
||||||
RunCommand(['sudo', 'rm', '-rf', buildroot])
|
RunCommand(['sudo', 'rm', '-rf', buildroot])
|
||||||
MakeDir(buildroot, parents=True)
|
MakeDir(buildroot, parents=True)
|
||||||
RunCommand(['repo', 'init', '-u', 'http://git.chromium.org/git/manifest'],
|
branch = tracking_branch.split('/');
|
||||||
cwd=buildroot, input='\n\ny\n')
|
RunCommand(['repo', 'init', '-u',
|
||||||
|
url, '-b',
|
||||||
|
'%s' % branch[-1]], cwd=buildroot, input='\n\ny\n')
|
||||||
RepoSync(buildroot, rw_checkout, retries)
|
RepoSync(buildroot, rw_checkout, retries)
|
||||||
|
|
||||||
|
|
||||||
@ -326,7 +330,7 @@ def _RunSmokeSuite(buildroot):
|
|||||||
], cwd=cwd, error_ok=False)
|
], cwd=cwd, error_ok=False)
|
||||||
|
|
||||||
|
|
||||||
def _UprevPackages(buildroot, revisionfile, board):
|
def _UprevPackages(buildroot, tracking_branch, revisionfile, board):
|
||||||
"""Uprevs a package based on given revisionfile.
|
"""Uprevs a package based on given revisionfile.
|
||||||
|
|
||||||
If revisionfile is set to None or does not resolve to an actual file, this
|
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
|
# print >> sys.stderr, 'CBUILDBOT Revision list found %s' % revisions
|
||||||
# revision_list = _ParseRevisionString(revisions,
|
# revision_list = _ParseRevisionString(revisions,
|
||||||
# _CreateRepoDictionary(buildroot, board))
|
# _CreateRepoDictionary(buildroot, board))
|
||||||
# _UprevFromRevisionList(buildroot, revision_list)
|
# _UprevFromRevisionList(buildroot, tracking_branch, revision_list)
|
||||||
#else:
|
#else:
|
||||||
Info('CBUILDBOT Revving all')
|
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."""
|
"""Pushes uprev changes to the main line."""
|
||||||
cwd = os.path.join(buildroot, 'src', 'scripts')
|
cwd = os.path.join(buildroot, 'src', 'scripts')
|
||||||
RunCommand(['./cros_mark_as_stable', '--srcroot=..',
|
RunCommand(['./cros_mark_as_stable', '--srcroot=..',
|
||||||
'--tracking_branch="cros/master"',
|
'--tracking_branch="%s"' % tracking_branch,
|
||||||
'--push_options="--bypass-hooks -f"', 'push'],
|
'--push_options="--bypass-hooks -f"', 'push'],
|
||||||
cwd=cwd)
|
cwd=cwd)
|
||||||
|
|
||||||
@ -408,10 +412,17 @@ def main():
|
|||||||
parser.add_option('--debug', action='store_true', dest='debug',
|
parser.add_option('--debug', action='store_true', dest='debug',
|
||||||
default=False,
|
default=False,
|
||||||
help='Override some options to run as a developer.')
|
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()
|
(options, args) = parser.parse_args()
|
||||||
|
|
||||||
buildroot = options.buildroot
|
buildroot = options.buildroot
|
||||||
revisionfile = options.revisionfile
|
revisionfile = options.revisionfile
|
||||||
|
tracking_branch = options.tracking_branch
|
||||||
|
|
||||||
if len(args) >= 1:
|
if len(args) >= 1:
|
||||||
buildconfig = _GetConfig(args[-1])
|
buildconfig = _GetConfig(args[-1])
|
||||||
@ -423,7 +434,7 @@ def main():
|
|||||||
try:
|
try:
|
||||||
_PreFlightRinse(buildroot)
|
_PreFlightRinse(buildroot)
|
||||||
if options.clobber or not os.path.isdir(buildroot):
|
if options.clobber or not os.path.isdir(buildroot):
|
||||||
_FullCheckout(buildroot)
|
_FullCheckout(buildroot, tracking_branch, url=options.url)
|
||||||
else:
|
else:
|
||||||
_IncrementalCheckout(buildroot)
|
_IncrementalCheckout(buildroot)
|
||||||
|
|
||||||
@ -436,7 +447,8 @@ def main():
|
|||||||
_SetupBoard(buildroot, board=buildconfig['board'])
|
_SetupBoard(buildroot, board=buildconfig['board'])
|
||||||
|
|
||||||
if buildconfig['uprev']:
|
if buildconfig['uprev']:
|
||||||
_UprevPackages(buildroot, revisionfile, board=buildconfig['board'])
|
_UprevPackages(buildroot, tracking_branch, revisionfile,
|
||||||
|
board=buildconfig['board'])
|
||||||
|
|
||||||
_EnableLocalAccount(buildroot)
|
_EnableLocalAccount(buildroot)
|
||||||
_Build(buildroot)
|
_Build(buildroot)
|
||||||
@ -455,7 +467,7 @@ def main():
|
|||||||
if buildconfig['master']:
|
if buildconfig['master']:
|
||||||
# Master bot needs to check if the other slaves completed.
|
# Master bot needs to check if the other slaves completed.
|
||||||
if cbuildbot_comm.HaveSlavesCompleted(config):
|
if cbuildbot_comm.HaveSlavesCompleted(config):
|
||||||
_UprevPush(buildroot)
|
_UprevPush(buildroot, tracking_branch)
|
||||||
else:
|
else:
|
||||||
Die('CBUILDBOT - One of the slaves has failed!!!')
|
Die('CBUILDBOT - One of the slaves has failed!!!')
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user