diff options
author | Javier Jardón <jjardon@gnome.org> | 2019-02-08 20:29:05 +0000 |
---|---|---|
committer | Javier Jardón <jjardon@gnome.org> | 2019-02-08 20:29:05 +0000 |
commit | a937f99a5676f4284a2a4d578db18d2113eb3e24 (patch) | |
tree | fa10a359f59c0c5f571a44065871eef286083676 | |
parent | 77ce0c1607d060eda098779228d5b0ab62ec04ef (diff) | |
parent | 24c0de16faec2b8b9bd6a03504ce951dc49afbe2 (diff) | |
download | buildstream-a937f99a5676f4284a2a4d578db18d2113eb3e24.tar.gz |
Merge branch 'abderrahim/artifact-cache-junction' into 'master'
Use artifact cache specs from the parent project before those defined in junctions
Closes #618 and #401
See merge request BuildStream/buildstream!1113
-rw-r--r-- | buildstream/_artifactcache.py | 7 | ||||
-rw-r--r-- | buildstream/_project.py | 10 |
2 files changed, 11 insertions, 6 deletions
diff --git a/buildstream/_artifactcache.py b/buildstream/_artifactcache.py index 48ab278c4..5404dc12e 100644 --- a/buildstream/_artifactcache.py +++ b/buildstream/_artifactcache.py @@ -467,7 +467,7 @@ class ArtifactCache(): # on_failure (callable): Called if we fail to contact one of the caches. # def initialize_remotes(self, *, on_failure=None): - remote_specs = self.global_remote_specs + remote_specs = list(self.global_remote_specs) for project in self.project_remote_specs: remote_specs += self.project_remote_specs[project] @@ -1046,8 +1046,5 @@ class ArtifactCache(): # A list of ArtifactCacheSpec instances describing the remote artifact caches. # def _configured_remote_artifact_cache_specs(context, project): - project_overrides = context.get_overrides(project.name) - project_extra_specs = ArtifactCache.specs_from_config_node(project_overrides) - return list(utils._deduplicate( - project_extra_specs + project.artifact_cache_specs + context.artifact_cache_specs)) + project.artifact_cache_specs + context.artifact_cache_specs)) diff --git a/buildstream/_project.py b/buildstream/_project.py index 3ec141d58..5f4389edb 100644 --- a/buildstream/_project.py +++ b/buildstream/_project.py @@ -549,7 +549,15 @@ class Project(): # # Load artifacts pull/push configuration for this project - self.artifact_cache_specs = ArtifactCache.specs_from_config_node(config, self.directory) + project_specs = ArtifactCache.specs_from_config_node(config, self.directory) + override_specs = ArtifactCache.specs_from_config_node( + self._context.get_overrides(self.name), self.directory) + + self.artifact_cache_specs = override_specs + project_specs + + if self.junction: + parent = self.junction._get_project() + self.artifact_cache_specs = parent.artifact_cache_specs + self.artifact_cache_specs # Load remote-execution configuration for this project project_specs = SandboxRemote.specs_from_config_node(config, self.directory) |