Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(119)

Side by Side Diff: tools/push-to-trunk/push_to_trunk.py

Issue 716153002: Switch release scripts to pure git. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Review. Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « tools/push-to-trunk/merge_to_branch.py ('k') | tools/push-to-trunk/releases.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2013 the V8 project authors. All rights reserved. 2 # Copyright 2013 the V8 project authors. All rights reserved.
3 # Redistribution and use in source and binary forms, with or without 3 # Redistribution and use in source and binary forms, with or without
4 # modification, are permitted provided that the following conditions are 4 # modification, are permitted provided that the following conditions are
5 # met: 5 # met:
6 # 6 #
7 # * Redistributions of source code must retain the above copyright 7 # * Redistributions of source code must retain the above copyright
8 # notice, this list of conditions and the following disclaimer. 8 # notice, this list of conditions and the following disclaimer.
9 # * Redistributions in binary form must reproduce the above 9 # * Redistributions in binary form must reproduce the above
10 # copyright notice, this list of conditions and the following 10 # copyright notice, this list of conditions and the following
(...skipping 16 matching lines...) Expand all
27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 28
29 import argparse 29 import argparse
30 import os 30 import os
31 import sys 31 import sys
32 import tempfile 32 import tempfile
33 import urllib2 33 import urllib2
34 34
35 from common_includes import * 35 from common_includes import *
36 36
37 PUSH_MSG_SVN_RE = re.compile(r".* \(based on bleeding_edge revision r(\d+)\)$")
38 PUSH_MSG_GIT_SUFFIX = " (based on %s)" 37 PUSH_MSG_GIT_SUFFIX = " (based on %s)"
39 PUSH_MSG_GIT_RE = re.compile(r".* \(based on (?P<git_rev>[a-fA-F0-9]+)\)$") 38 PUSH_MSG_GIT_RE = re.compile(r".* \(based on (?P<git_rev>[a-fA-F0-9]+)\)$")
40 39
41 class Preparation(Step): 40 class Preparation(Step):
42 MESSAGE = "Preparation." 41 MESSAGE = "Preparation."
43 42
44 def RunStep(self): 43 def RunStep(self):
45 self.InitialEnvironmentChecks(self.default_cwd) 44 self.InitialEnvironmentChecks(self.default_cwd)
46 self.CommonPrepare() 45 self.CommonPrepare()
47 46
48 if(self["current_branch"] == self.Config("TRUNKBRANCH") 47 if(self["current_branch"] == self.Config("TRUNKBRANCH")
49 or self["current_branch"] == self.Config("BRANCHNAME")): 48 or self["current_branch"] == self.Config("BRANCHNAME")):
50 print "Warning: Script started on branch %s" % self["current_branch"] 49 print "Warning: Script started on branch %s" % self["current_branch"]
51 50
52 self.PrepareBranch() 51 self.PrepareBranch()
53 self.DeleteBranch(self.Config("TRUNKBRANCH")) 52 self.DeleteBranch(self.Config("TRUNKBRANCH"))
54 53
54 # Allow directly pushing to candidates.
55 if not self.Git("config --get remote.origin.push").strip():
56 self.Git("config --add remote.origin.push "
57 "refs/remotes/origin/candidates:refs/pending/heads/candidates")
58
tandrii(chromium) 2014/11/12 13:52:31 lgtm
55 59
56 class FreshBranch(Step): 60 class FreshBranch(Step):
57 MESSAGE = "Create a fresh branch." 61 MESSAGE = "Create a fresh branch."
58 62
59 def RunStep(self): 63 def RunStep(self):
60 self.GitCreateBranch(self.Config("BRANCHNAME"), 64 self.GitCreateBranch(self.Config("BRANCHNAME"),
61 self.vc.RemoteMasterBranch()) 65 self.vc.RemoteMasterBranch())
62 66
63 67
64 class PreparePushRevision(Step): 68 class PreparePushRevision(Step):
(...skipping 21 matching lines...) Expand all
86 last_push = self.FindLastTrunkPush(parent_hash=last_push) 90 last_push = self.FindLastTrunkPush(parent_hash=last_push)
87 91
88 if self._options.last_bleeding_edge: 92 if self._options.last_bleeding_edge:
89 # Read the bleeding edge revision of the last push from a command-line 93 # Read the bleeding edge revision of the last push from a command-line
90 # option. 94 # option.
91 last_push_bleeding_edge = self._options.last_bleeding_edge 95 last_push_bleeding_edge = self._options.last_bleeding_edge
92 else: 96 else:
93 # Retrieve the bleeding edge revision of the last push from the text in 97 # Retrieve the bleeding edge revision of the last push from the text in
94 # the push commit message. 98 # the push commit message.
95 last_push_title = self.GitLog(n=1, format="%s", git_hash=last_push) 99 last_push_title = self.GitLog(n=1, format="%s", git_hash=last_push)
96 # TODO(machenbach): This is only needed for the git transition. Can be 100 last_push_bleeding_edge = PUSH_MSG_GIT_RE.match(
97 # removed after one successful trunk push. 101 last_push_title).group("git_rev")
98 match = PUSH_MSG_SVN_RE.match(last_push_title)
99 if match:
100 last_push_be_svn = match.group(1)
101 if not last_push_be_svn: # pragma: no cover
102 self.Die("Could not retrieve bleeding edge rev for trunk push %s"
103 % last_push)
104 last_push_bleeding_edge = self.vc.SvnGit(last_push_be_svn)
105 else:
106 last_push_bleeding_edge = PUSH_MSG_GIT_RE.match(
107 last_push_title).group("git_rev")
108 102
109 if not last_push_bleeding_edge: # pragma: no cover 103 if not last_push_bleeding_edge: # pragma: no cover
110 self.Die("Could not retrieve bleeding edge git hash for trunk push %s" 104 self.Die("Could not retrieve bleeding edge git hash for trunk push %s"
111 % last_push) 105 % last_push)
112 106
113 # This points to the git hash of the last push on trunk. 107 # This points to the git hash of the last push on trunk.
114 self["last_push_trunk"] = last_push 108 self["last_push_trunk"] = last_push
115 # This points to the last bleeding_edge revision that went into the last 109 # This points to the last bleeding_edge revision that went into the last
116 # push. 110 # push.
117 # TODO(machenbach): Do we need a check to make sure we're not pushing a 111 # TODO(machenbach): Do we need a check to make sure we're not pushing a
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
350 344
351 def RunStep(self): 345 def RunStep(self):
352 # TODO(machenbach): Run presubmit script here as it is now missing in the 346 # TODO(machenbach): Run presubmit script here as it is now missing in the
353 # prepare push process. 347 # prepare push process.
354 if not self.Confirm("Please check if your local checkout is sane: Inspect " 348 if not self.Confirm("Please check if your local checkout is sane: Inspect "
355 "%s, compile, run tests. Do you want to commit this new trunk " 349 "%s, compile, run tests. Do you want to commit this new trunk "
356 "revision to the repository?" % VERSION_FILE): 350 "revision to the repository?" % VERSION_FILE):
357 self.Die("Execution canceled.") # pragma: no cover 351 self.Die("Execution canceled.") # pragma: no cover
358 352
359 353
360 class CommitSVN(Step): 354 class Land(Step):
361 MESSAGE = "Commit to SVN." 355 MESSAGE = "Land the patch."
362 356
363 def RunStep(self): 357 def RunStep(self):
364 if self._options.svn: 358 self.vc.Land()
365 self.SVNCommit("trunk", self["commit_title"])
366 else:
367 self.vc.Land()
368 359
369 360
370 class TagRevision(Step): 361 class TagRevision(Step):
371 MESSAGE = "Tag the new revision." 362 MESSAGE = "Tag the new revision."
372 363
373 def RunStep(self): 364 def RunStep(self):
374 self.vc.Tag( 365 self.vc.Tag(
375 self["version"], self.vc.RemoteCandidateBranch(), self["commit_title"]) 366 self["version"], self.vc.RemoteCandidateBranch(), self["commit_title"])
376 367
377 368
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
438 PrepareChangeLog, 429 PrepareChangeLog,
439 EditChangeLog, 430 EditChangeLog,
440 StragglerCommits, 431 StragglerCommits,
441 SquashCommits, 432 SquashCommits,
442 NewBranch, 433 NewBranch,
443 ApplyChanges, 434 ApplyChanges,
444 AddChangeLog, 435 AddChangeLog,
445 SetVersion, 436 SetVersion,
446 CommitTrunk, 437 CommitTrunk,
447 SanityCheck, 438 SanityCheck,
448 CommitSVN, 439 Land,
449 TagRevision, 440 TagRevision,
450 CleanUp, 441 CleanUp,
451 ] 442 ]
452 443
453 444
454 if __name__ == "__main__": # pragma: no cover 445 if __name__ == "__main__": # pragma: no cover
455 sys.exit(PushToTrunk().Run()) 446 sys.exit(PushToTrunk().Run())
OLDNEW
« no previous file with comments | « tools/push-to-trunk/merge_to_branch.py ('k') | tools/push-to-trunk/releases.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698