summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Westphahl <simon.westphahl@bmw.de>2023-02-24 14:39:55 +0100
committerSimon Westphahl <simon.westphahl@bmw.de>2023-02-24 14:39:55 +0100
commitef281ec9b68c975b6f7d3f5188507b68a108e55a (patch)
tree752126817fd0975db3fda300ecf081d252e1e8f9
parentd74d40be5302d710410cc9fd8fdaaad352f3ebe6 (diff)
downloadzuul-ef281ec9b68c975b6f7d3f5188507b68a108e55a.tar.gz
Use buildset merger items to collect extra config
Instead of deciding in the pipeline manager which items are relevant when collecting extra config dirs and files we'll use the buildset's merger items for that. The merger items don't contain the canonical project name, but we can get this info from the source project. Change-Id: I5885fd8687a85b44d6a5c202cf66bc78920e3b58
-rw-r--r--zuul/manager/__init__.py26
1 files changed, 9 insertions, 17 deletions
diff --git a/zuul/manager/__init__.py b/zuul/manager/__init__.py
index 104ded38a..d7a95e9b5 100644
--- a/zuul/manager/__init__.py
+++ b/zuul/manager/__init__.py
@@ -1448,25 +1448,17 @@ class PipelineManager(metaclass=ABCMeta):
item.bundle and
item.bundle.updatesConfig(tenant) and tpc is not None
):
- # Here we can not use build_set.merger_items because it does
- # not contain the project canonical_name
- merger_items = {item}
- merger_items.update(item.items_ahead)
- if item.bundle:
- merger_items.update(item.bundle.items)
-
- # Merge extra_config_files and extra_config_dirs of the
- # dependent change
+ # Collect extra config files and dirs of required changes.
extra_config_files = set()
extra_config_dirs = set()
- for merger_item in merger_items:
- merger_item_tpc = tenant.project_configs.get(
- merger_item.change.project.canonical_name)
- if merger_item_tpc:
- extra_config_files.update(
- merger_item_tpc.extra_config_files)
- extra_config_dirs.update(
- merger_item_tpc.extra_config_dirs)
+ for merger_item in item.current_build_set.merger_items:
+ source = self.sched.connections.getSource(
+ merger_item["connection"])
+ project = source.getProject(merger_item["project"])
+ tpc = tenant.project_configs.get(project.canonical_name)
+ if tpc:
+ extra_config_files.update(tpc.extra_config_files)
+ extra_config_dirs.update(tpc.extra_config_dirs)
ready = self.scheduleMerge(
item,