Switch auto push script to git.

BUG=410721
LOG=n
TEST=script_test.py
TBR=tandrii@chromium.org

Review URL: https://codereview.chromium.org/698513002

Cr-Commit-Position: refs/heads/master@{#25033}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25033 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent de672226
......@@ -36,7 +36,7 @@ import urllib
from common_includes import *
import push_to_trunk
PUSH_MESSAGE_RE = re.compile(r".* \(based on bleeding_edge revision r(\d+)\)$")
PUSH_MESSAGE_RE = re.compile(r".* \(based on ([a-fA-F0-9]+)\)$")
class Preparation(Step):
MESSAGE = "Preparation."
......@@ -94,19 +94,16 @@ class CheckLastPush(Step):
self.Die("Could not retrieve bleeding edge revision for trunk push %s"
% last_push)
# TODO(machenbach): This metric counts all revisions. It could be
# improved by counting only the revisions on bleeding_edge.
if int(self["lkgr"]) - int(last_push_be) < 10: # pragma: no cover
# This makes sure the script doesn't push twice in a row when the cron
# job retries several times.
self.Die("Last push too recently: %s" % last_push_be)
if self["lkgr"] == last_push_be:
print "Already pushed current lkgr %s" % last_push_be
return True
class PushToTrunk(Step):
MESSAGE = "Pushing to trunk if specified."
class PushToCandidates(Step):
MESSAGE = "Pushing to candidates if specified."
def RunStep(self):
print "Pushing lkgr %s to trunk." % self["lkgr"]
print "Pushing lkgr %s to candidates." % self["lkgr"]
# TODO(machenbach): Update the script before calling it.
if self._options.push:
......@@ -144,7 +141,7 @@ class AutoPush(ScriptsBase):
CheckTreeStatus,
FetchLKGR,
CheckLastPush,
PushToTrunk,
PushToCandidates,
]
......
......@@ -930,14 +930,12 @@ def get_list():
"\"^Version [[:digit:]]*\.[[:digit:]]*\.[[:digit:]]* (based\" "
"origin/candidates"), "hash2\n"),
Cmd("git log -1 --format=%s hash2",
"Version 3.4.5 (based on bleeding_edge revision r99)\n"),
"Version 3.4.5 (based on abc123)\n"),
])
self._state["lkgr"] = "101"
self.assertRaises(Exception, lambda: self.RunStep(auto_push.AutoPush,
CheckLastPush,
AUTO_PUSH_ARGS))
self._state["lkgr"] = "abc123"
self.assertEquals(0, self.RunStep(
auto_push.AutoPush, CheckLastPush, AUTO_PUSH_ARGS))
def testAutoPush(self):
TextToFile("", os.path.join(TEST_CONFIG["DEFAULT_CWD"], ".git"))
......@@ -951,12 +949,12 @@ def get_list():
URL("https://v8-status.appspot.com/current?format=json",
"{\"message\": \"Tree is throttled\"}"),
URL("https://v8-status.appspot.com/lkgr", Exception("Network problem")),
URL("https://v8-status.appspot.com/lkgr", "100"),
URL("https://v8-status.appspot.com/lkgr", "abc123"),
Cmd(("git log -1 --format=%H --grep=\""
"^Version [[:digit:]]*\.[[:digit:]]*\.[[:digit:]]* (based\""
" origin/candidates"), "push_hash\n"),
Cmd("git log -1 --format=%s push_hash",
"Version 3.4.5 (based on bleeding_edge revision r79)\n"),
"Version 3.4.5 (based on abc101)\n"),
])
auto_push.AutoPush(TEST_CONFIG, self).Run(AUTO_PUSH_ARGS + ["--push"])
......@@ -964,7 +962,7 @@ def get_list():
state = json.loads(FileToText("%s-state.json"
% TEST_CONFIG["PERSISTFILE_BASENAME"]))
self.assertEquals("100", state["lkgr"])
self.assertEquals("abc123", state["lkgr"])
def testAutoPushStoppedBySettings(self):
TextToFile("", os.path.join(TEST_CONFIG["DEFAULT_CWD"], ".git"))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment