| 281 | self.Die("Can't find remote of %s" % name) |
| 282 | |
| 283 | def Tag(self, tag, remote, message): |
| 284 | # Wait for the commit to appear. Assumes unique commit message titles (this |
| 285 | # is the case for all automated merge and push commits - also no title is |
| 286 | # the prefix of another title). |
| 287 | commit = None |
| 288 | for wait_interval in [10, 30, 60, 60, 60, 60, 60]: |
| 289 | self.step.Git("fetch") |
| 290 | commit = self.step.GitLog(n=1, format="%H", grep=message, branch=remote) |
| 291 | if commit: |
| 292 | break |
| 293 | print("The commit has not replicated to git. Waiting for %s seconds." % |
| 294 | wait_interval) |
| 295 | self.step._side_effect_handler.Sleep(wait_interval) |
| 296 | else: |
| 297 | self.step.Die("Couldn't determine commit for setting the tag. Maybe the " |
| 298 | "git updater is lagging behind?") |
| 299 | |
| 300 | self.step.Git("tag %s %s" % (tag, commit)) |
| 301 | self.step.Git("push origin refs/tags/%s:refs/tags/%s" % (tag, tag)) |
| 302 | |
| 303 | def CLLand(self): |
| 304 | self.step.GitCLLand() |