Skip to content

Commit

Permalink
phase1: factor out populateTargetsForBranch
Browse files Browse the repository at this point in the history
Going to make builders (build targets) configurable, so lets factor
current populateTargets into separate function populateTargetsForBranch
which takes a branch as argument. No functional changes.

Signed-off-by: Petr Štetiar <[email protected]>
  • Loading branch information
ynezz committed Jun 1, 2024
1 parent b5724de commit 8673562
Showing 1 changed file with 39 additions and 34 deletions.
73 changes: 39 additions & 34 deletions phase1/master.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -300,48 +300,53 @@ targets = dict()


def populateTargets():
"""fetch a shallow clone of each configured branch in turn:
execute dump-target-info.pl and collate the results to ensure
for branch in branchNames:
populateTargetsForBranch(branch)


def populateTargetsForBranch(branch):
"""fetches a shallow clone for passed `branch` and then
executes dump-target-info.pl and collates the results to ensure
targets that only exist in specific branches get built.
This takes a while during master startup but is executed only once.
"""
targets[branch] = set()
sourcegit = work_dir + "/source.git"
for branch in branchNames:
log.msg(f"Populating targets for {branch}, this will take time")

if os.path.isdir(sourcegit):
subprocess.call(["rm", "-rf", sourcegit])

subprocess.call(
[
"git",
"clone",
"-q",
"--depth=1",
"--branch=" + branch,
repo_url,
sourcegit,
]
)

os.makedirs(sourcegit + "/tmp", exist_ok=True)
findtargets = subprocess.Popen(
["./scripts/dump-target-info.pl", "targets"],
stdout=subprocess.PIPE,
stderr=subprocess.DEVNULL,
cwd=sourcegit,
)

targets[branch] = set()
while True:
line = findtargets.stdout.readline()
if not line:
break
ta = line.decode().strip().split(" ")
targets[branch].add(ta[0])
log.msg(f"Populating targets for {branch}, this will take time")

if os.path.isdir(sourcegit):
subprocess.call(["rm", "-rf", sourcegit])

subprocess.call(
[
"git",
"clone",
"-q",
"--depth=1",
"--branch=" + branch,
repo_url,
sourcegit,
]
)

os.makedirs(sourcegit + "/tmp", exist_ok=True)
findtargets = subprocess.Popen(
["./scripts/dump-target-info.pl", "targets"],
stdout=subprocess.PIPE,
stderr=subprocess.DEVNULL,
cwd=sourcegit,
)

while True:
line = findtargets.stdout.readline()
if not line:
break
ta = line.decode().strip().split(" ")
targets[branch].add(ta[0])

subprocess.call(["rm", "-rf", sourcegit])


populateTargets()

Expand Down

0 comments on commit 8673562

Please sign in to comment.