OLD | NEW |
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 328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
339 def Land(self): | 339 def Land(self): |
340 self.step.GitSVNDCommit() | 340 self.step.GitSVNDCommit() |
341 | 341 |
342 def CLLand(self): | 342 def CLLand(self): |
343 self.step.GitDCommit() | 343 self.step.GitDCommit() |
344 | 344 |
345 def Tag(self, tag): | 345 def Tag(self, tag): |
346 self.step.GitSVNTag(tag) | 346 self.step.GitSVNTag(tag) |
347 | 347 |
348 | 348 |
349 class GitReadOnlyMixin(VCInterface): | 349 class GitTagsOnlyMixin(VCInterface): |
350 def Pull(self): | 350 def Pull(self): |
351 self.step.GitPull() | 351 self.step.GitPull() |
352 | 352 |
353 def Fetch(self): | 353 def Fetch(self): |
354 self.step.Git("fetch") | 354 self.step.Git("fetch") |
355 | 355 |
356 def GetTags(self): | 356 def GetTags(self): |
357 return self.step.Git("tag").strip().splitlines() | 357 return self.step.Git("tag").strip().splitlines() |
358 | 358 |
359 def GetBranches(self): | 359 def GetBranches(self): |
360 # Get relevant remote branches, e.g. "origin/branch-heads/3.25". | 360 # Get relevant remote branches, e.g. "origin/branch-heads/3.25". |
361 branches = filter( | 361 branches = filter( |
362 lambda s: re.match(r"^origin/branch\-heads/\d+\.\d+$", s), | 362 lambda s: re.match(r"^origin/branch\-heads/\d+\.\d+$", s), |
363 self.step.GitRemotes()) | 363 self.step.GitRemotes()) |
364 # Remove 'origin/branch-heads/' prefix. | 364 # Remove 'origin/branch-heads/' prefix. |
365 return map(lambda s: s[20:], branches) | 365 return map(lambda s: s[20:], branches) |
366 | 366 |
367 def RemoteMasterBranch(self): | 367 def RemoteMasterBranch(self): |
368 return "origin/master" | 368 return "origin/master" |
369 | 369 |
370 def RemoteCandidateBranch(self): | 370 def RemoteCandidateBranch(self): |
371 return "origin/candidates" | 371 return "origin/candidates" |
372 | 372 |
373 def RemoteBranch(self, name): | 373 def RemoteBranch(self, name): |
374 if name in ["candidates", "master"]: | 374 if name in ["candidates", "master"]: |
375 return "origin/%s" % name | 375 return "origin/%s" % name |
376 return "origin/branch-heads/%s" % name | 376 return "origin/branch-heads/%s" % name |
377 | 377 |
| 378 def Tag(self, tag): |
| 379 self.step.Git("tag %s" % tag) |
| 380 self.step.Git("push origin %s" % tag) |
378 | 381 |
379 class GitReadSvnWriteInterface(GitReadOnlyMixin, GitSvnInterface): | 382 |
| 383 class GitReadSvnWriteInterface(GitTagsOnlyMixin, GitSvnInterface): |
380 pass | 384 pass |
381 | 385 |
382 | 386 |
383 VC_INTERFACES = { | 387 VC_INTERFACES = { |
384 "git_svn": GitSvnInterface, | 388 "git_svn": GitSvnInterface, |
385 "git_read_svn_write": GitReadSvnWriteInterface, | 389 "git_read_svn_write": GitReadSvnWriteInterface, |
386 } | 390 } |
387 | 391 |
388 | 392 |
389 class Step(GitRecipesMixin): | 393 class Step(GitRecipesMixin): |
(...skipping 446 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
836 for (number, step_class) in enumerate(step_classes): | 840 for (number, step_class) in enumerate(step_classes): |
837 steps.append(MakeStep(step_class, number, self._state, self._config, | 841 steps.append(MakeStep(step_class, number, self._state, self._config, |
838 options, self._side_effect_handler)) | 842 options, self._side_effect_handler)) |
839 for step in steps[options.step:]: | 843 for step in steps[options.step:]: |
840 if step.Run(): | 844 if step.Run(): |
841 return 0 | 845 return 0 |
842 return 0 | 846 return 0 |
843 | 847 |
844 def Run(self, args=None): | 848 def Run(self, args=None): |
845 return self.RunSteps(self._Steps(), args) | 849 return self.RunSteps(self._Steps(), args) |
OLD | NEW |