From ef281ec9b68c975b6f7d3f5188507b68a108e55a Mon Sep 17 00:00:00 2001 From: Simon Westphahl Date: Fri, 24 Feb 2023 14:39:55 +0100 Subject: 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 --- zuul/manager/__init__.py | 26 +++++++++----------------- 1 file 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, -- cgit v1.2.1