From 867356244ac2ed9abb4be3e7ccda55c96b10b71a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Petr=20=C5=A0tetiar?= Date: Sat, 1 Jun 2024 11:21:23 +0000 Subject: [PATCH] phase1: factor out populateTargetsForBranch MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- phase1/master.cfg | 73 +++++++++++++++++++++++++---------------------- 1 file changed, 39 insertions(+), 34 deletions(-) diff --git a/phase1/master.cfg b/phase1/master.cfg index 4e7cbc1..970f7f9 100644 --- a/phase1/master.cfg +++ b/phase1/master.cfg @@ -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() -- 2.30.2