Add workdir feature to release scripts.

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

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

Cr-Commit-Position: refs/heads/master@{#25056}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25056 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent c63f0596
...@@ -48,7 +48,7 @@ from git_recipes import GitFailedException ...@@ -48,7 +48,7 @@ from git_recipes import GitFailedException
VERSION_FILE = os.path.join("src", "version.cc") VERSION_FILE = os.path.join("src", "version.cc")
# V8 base directory. # V8 base directory.
DEFAULT_CWD = os.path.dirname( V8_BASE = os.path.dirname(
os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
...@@ -470,7 +470,8 @@ class Step(GitRecipesMixin): ...@@ -470,7 +470,8 @@ class Step(GitRecipesMixin):
self.vc.InjectStep(self) self.vc.InjectStep(self)
# The testing configuration might set a different default cwd. # The testing configuration might set a different default cwd.
self.default_cwd = self._config.get("DEFAULT_CWD") or DEFAULT_CWD self.default_cwd = (self._config.get("DEFAULT_CWD") or
os.path.join(self._options.work_dir, "v8"))
assert self._number >= 0 assert self._number >= 0
assert self._config is not None assert self._config is not None
...@@ -607,6 +608,18 @@ class Step(GitRecipesMixin): ...@@ -607,6 +608,18 @@ class Step(GitRecipesMixin):
msg = "Can't continue. Please delete branch %s and try again." % name msg = "Can't continue. Please delete branch %s and try again." % name
self.Die(msg) self.Die(msg)
def BootstrapV8Checkout(self):
if os.path.realpath(self.default_cwd) == os.path.realpath(V8_BASE):
self.Die("Can't use v8 checkout with calling script as work checkout.")
# Directory containing the working v8 checkout.
work_dir = os.path.dirname(self.default_cwd)
assert os.path.join(work_dir, "v8") == self.default_cwd
if not os.path.exits(work_dir):
os.makedirs(work_dir)
if not os.path.exits(self.default_cwd):
self.Command("fetch", "v8")
def InitialEnvironmentChecks(self, cwd): def InitialEnvironmentChecks(self, cwd):
# Cancel if this is not a git checkout. # Cancel if this is not a git checkout.
if not os.path.exists(os.path.join(cwd, ".git")): # pragma: no cover if not os.path.exists(os.path.join(cwd, ".git")): # pragma: no cover
...@@ -859,6 +872,9 @@ class ScriptsBase(object): ...@@ -859,6 +872,9 @@ class ScriptsBase(object):
parser.add_argument("--vc-interface", parser.add_argument("--vc-interface",
help=("Choose VC interface out of git_svn|" help=("Choose VC interface out of git_svn|"
"git_read_svn_write.")) "git_read_svn_write."))
parser.add_argument("--work-dir",
help=("Location where to bootstrap a working v8 "
"checkout."))
self._PrepareOptions(parser) self._PrepareOptions(parser)
if args is None: # pragma: no cover if args is None: # pragma: no cover
...@@ -898,6 +914,8 @@ class ScriptsBase(object): ...@@ -898,6 +914,8 @@ class ScriptsBase(object):
if not options.vc_interface: if not options.vc_interface:
options.vc_interface = "git_read_svn_write" options.vc_interface = "git_read_svn_write"
if not options.work_dir:
options.work_dir = "/tmp/v8-release-scripts-work-dir"
return options return options
def RunSteps(self, step_classes, args=None): def RunSteps(self, step_classes, args=None):
......
...@@ -967,7 +967,8 @@ Performance and stability improvements on all platforms.""", commit) ...@@ -967,7 +967,8 @@ Performance and stability improvements on all platforms.""", commit)
args = ["-a", "author@chromium.org", "--revision", "push_hash", args = ["-a", "author@chromium.org", "--revision", "push_hash",
"--vc-interface", "git", "-f", "-r", "reviewer@chromium.org", "--vc-interface", "git", "-f", "-r", "reviewer@chromium.org",
"--svn", svn_root, "--svn-config", "[CONFIG_DIR]"] "--svn", svn_root, "--svn-config", "[CONFIG_DIR]",
"--work-dir", TEST_CONFIG["DEFAULT_CWD"]]
PushToTrunk(TEST_CONFIG, self).Run(args) PushToTrunk(TEST_CONFIG, self).Run(args)
cl = FileToText(TEST_CONFIG["CHANGELOG_FILE"]) cl = FileToText(TEST_CONFIG["CHANGELOG_FILE"])
......
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