mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 21:14:14 +08:00
[GHF][BE] Delete land checks branch when done (#84767)
Also, don't create this branch if running with dry-run Pull Request resolved: https://github.com/pytorch/pytorch/pull/84767 Approved by: https://github.com/clee2000, https://github.com/huydhn
This commit is contained in:
committed by
PyTorch MergeBot
parent
b7d2818598
commit
ddc56732ae
19
.github/scripts/trymerge.py
vendored
19
.github/scripts/trymerge.py
vendored
@ -912,6 +912,8 @@ class GitHubPR:
|
||||
|
||||
repo.push(self.default_branch(), dry_run)
|
||||
if not dry_run:
|
||||
if land_check_commit:
|
||||
self.delete_land_time_check_branch(repo)
|
||||
gh_add_labels(self.org, self.project, self.pr_num, ["merged"])
|
||||
|
||||
def merge_changes(self,
|
||||
@ -962,6 +964,11 @@ class GitHubPR:
|
||||
repo.checkout(orig_branch)
|
||||
return commit
|
||||
|
||||
def delete_land_time_check_branch(self,
|
||||
repo: GitRepo) -> None:
|
||||
land_check_branch = f'landchecks/{self.pr_num}'
|
||||
repo._run_git('push', 'origin', '-d', land_check_branch)
|
||||
|
||||
|
||||
class MandatoryChecksMissingError(Exception):
|
||||
pass
|
||||
@ -1344,7 +1351,7 @@ def merge(pr_num: int, repo: GitRepo,
|
||||
# here to stop the merge process right away
|
||||
find_matching_merge_rule(pr, repo, skip_mandatory_checks=True)
|
||||
|
||||
if land_checks:
|
||||
if land_checks and not dry_run:
|
||||
land_check_commit = pr.create_land_time_check_branch(
|
||||
repo,
|
||||
'viable/strict',
|
||||
@ -1354,6 +1361,8 @@ def merge(pr_num: int, repo: GitRepo,
|
||||
|
||||
gh_post_pr_comment(org, project, pr.pr_num, explainer.get_merge_message(land_check_commit))
|
||||
if (datetime.utcnow() - pr.last_pushed_at()).days > stale_pr_days:
|
||||
if land_checks and not dry_run:
|
||||
pr.delete_land_time_check_branch(repo)
|
||||
raise RuntimeError("This PR is too stale; the last push date was more than 3 days ago. Please rebase and try again.")
|
||||
|
||||
start_time = time.time()
|
||||
@ -1366,6 +1375,8 @@ def merge(pr_num: int, repo: GitRepo,
|
||||
print(f"Attempting merge of https://github.com/{org}/{project}/pull/{pr_num} ({elapsed_time / 60} minutes elapsed)")
|
||||
pr = GitHubPR(org, project, pr_num)
|
||||
if initial_commit_sha != pr.last_commit()['oid']:
|
||||
if land_checks and not dry_run:
|
||||
pr.delete_land_time_check_branch(repo)
|
||||
raise RuntimeError("New commits were pushed while merging. Please rerun the merge command.")
|
||||
try:
|
||||
find_matching_merge_rule(pr, repo)
|
||||
@ -1400,10 +1411,16 @@ def merge(pr_num: int, repo: GitRepo,
|
||||
last_exception = str(ex)
|
||||
print(f"Merge of https://github.com/{org}/{project}/pull/{pr_num} failed due to: {ex}. Retrying in 5 min")
|
||||
time.sleep(5 * 60)
|
||||
except RuntimeError:
|
||||
if land_checks and not dry_run:
|
||||
pr.delete_land_time_check_branch(repo)
|
||||
raise
|
||||
# Finally report timeout back
|
||||
msg = f"Merged timed out after {timeout_minutes} minutes. Please contact the pytorch_dev_infra team."
|
||||
msg += f"The last exception was: {last_exception}"
|
||||
if not dry_run:
|
||||
if land_checks:
|
||||
pr.delete_land_time_check_branch(repo)
|
||||
gh_add_labels(org, project, pr_num, ["land-failed"])
|
||||
raise RuntimeError(msg)
|
||||
|
||||
|
Reference in New Issue
Block a user