blob: 6d522421b604bce57b7cc1b3178467fb28e4d7e6 [file] [log] [blame]
import os
from functions import get_release_prs, get_files_for_pr, update_lockfiles, clone_repo
lockfile_names = {"MODULE.bazel.lock", "src/test/tools/bzlmod/MODULE.bazel.lock"}
original_pr_number = os.environ["PR_NUMBER"]
original_pr_files_list = get_files_for_pr(original_pr_number)
can_proceed = False
for f in original_pr_files_list:
if f["filename"] in lockfile_names:
can_proceed = True
break
if can_proceed == False:
print("The PR does not contain any lockfile. Therefore, it does not require lockfile updates")
raise SystemExit(0)
release_branch = os.environ["RELEASE_BRANCH"]
release_version = release_branch.split("release-")[1]
milestone_name = release_version + " release blockers"
# Get a list of the prs made to the release branch
pr_list = get_release_prs(release_branch)
# Get all the files from each PR and find out if any of the files is a lockfile and update the lockfile if a pr contains any lockfile
requires_clone = True
for pr in pr_list:
pr["lockfiles"] = set()
files_list = get_files_for_pr(pr["number"])
for file in files_list:
if file["filename"] in lockfile_names:
pr["lockfiles"].add(file["filename"])
if len(pr["lockfiles"]) > 0:
if requires_clone == True: clone_repo()
try:
update_lockfiles(pr["lockfiles"], pr["head"]["ref"], release_branch, lockfile_names)
except Exception as e:
print(f"Failed updating lockfiles: {pr['number']} in {pr['head']['ref']}")
requires_clone = False