| Index: tools/gn/bin/roll_gn.py
|
| diff --git a/tools/gn/bin/roll_gn.py b/tools/gn/bin/roll_gn.py
|
| index a479bdcf49126ad5d9dae6b9cfd3e87bde86ed79..1e9dec9e79d594fa0c6410dad55fe602e5cf5680 100644
|
| --- a/tools/gn/bin/roll_gn.py
|
| +++ b/tools/gn/bin/roll_gn.py
|
| @@ -182,13 +182,26 @@ class GNRoller(object):
|
| print('Checking build')
|
| results = self.CheckBuild()
|
| while (len(results) < 3 or
|
| - any(r['state'] == 'pending' for r in results.values())):
|
| + any(r['state'] in ('pending', 'started')
|
| + for r in results.values())):
|
| print()
|
| print('Sleeping for 30 seconds')
|
| time.sleep(30)
|
| print('Checking build')
|
| results = self.CheckBuild()
|
| - return 0 if all(r['state'] == 'success' for r in results.values()) else 1
|
| +
|
| + ret = 0 if all(r['state'] == 'success' for r in results.values()) else 1
|
| + if ret:
|
| + print('Build failed.')
|
| + else:
|
| + print('Builds ready.')
|
| +
|
| + # Close the build CL and move off of the build branch back to whatever
|
| + # we were on before.
|
| + self.Call('git-cl set-close')
|
| + self.MovetoLastHead()
|
| +
|
| + return ret
|
|
|
| def CheckBuild(self):
|
| _, out, _ = self.Call('git-cl issue')
|
| @@ -264,7 +277,8 @@ class GNRoller(object):
|
|
|
| def RollBuildtools(self):
|
| results = self.CheckBuild()
|
| - if not all(r['state'] == 'success' for r in results.values()):
|
| + if (len(results) < 3 or
|
| + not all(r['state'] == 'success' for r in results.values())):
|
| print("Roll isn't done or didn't succeed, exiting:")
|
| return 1
|
|
|
| @@ -306,6 +320,11 @@ class GNRoller(object):
|
| # merged branch.
|
| self.Call('git checkout origin/master', cwd=self.buildtools_dir)
|
|
|
| + _, out, _ = self.Call('git rev-parse origin/master',
|
| + cwd=self.buildtools_dir)
|
| + new_buildtools_commitish = out.strip()
|
| + print('Ready to roll buildtools to %s in DEPS' % new_buildtools_commitish)
|
| +
|
| return 0
|
|
|
| def RollDEPS(self):
|
| @@ -336,7 +355,7 @@ class GNRoller(object):
|
| return 1
|
|
|
| with open('DEPS', 'w') as fp:
|
| - fp.write(''.join(new_deps_lines) + '\n')
|
| + fp.write(''.join(new_deps_lines))
|
|
|
| desc = self.GetDEPSRollDesc(old_buildtools_commitish,
|
| new_buildtools_commitish)
|
| @@ -349,11 +368,19 @@ class GNRoller(object):
|
| finally:
|
| os.remove(desc_file.name)
|
|
|
| - # Intentionally leave the src checkout on the new branch with the roll
|
| - # since we're not auto-committing it.
|
| + # Move off of the roll branch onto whatever we were on before.
|
| + # Do not explicitly close the roll CL issue, however; the CQ
|
| + # will close it when the roll lands, assuming it does so.
|
| + self.MoveToLastHead()
|
|
|
| return 0
|
|
|
| + def MovetoLastHead(self):
|
| + _, out, _ = self.Call('git reflog -1')
|
| + m = re.match('moving from ([^\s]+)', out)
|
| + last_head = m.group(1)
|
| + self.Call('git checkout %s' % last_head)
|
| +
|
| def GetBuildtoolsDesc(self):
|
| gn_changes = self.GetGNChanges()
|
| return (
|
| @@ -382,8 +409,7 @@ class GNRoller(object):
|
| '%s'
|
| '\n'
|
| 'TBR=%s\n'
|
| - 'CQ_EXTRA_TRYBOTS=tryserver.chromium.mac:mac_chromium_gn_rel,'
|
| - 'mac_chromium_gn_dbg;'
|
| + 'CQ_EXTRA_TRYBOTS=tryserver.chromium.mac:mac_chromium_gn_dbg;'
|
| 'tryserver.chromium.win:win8_chromium_gn_dbg,'
|
| 'win_chromium_gn_x64_rel\n' % (
|
| old_buildtools_commitish[:COMMITISH_DIGITS],
|
|
|