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()