summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbderrahim Kitouni <akitouni@gnome.org>2019-01-28 11:01:08 +0100
committerJavier Jardón <jjardon@gnome.org>2019-02-08 16:42:23 +0000
commit24c0de16faec2b8b9bd6a03504ce951dc49afbe2 (patch)
treefa10a359f59c0c5f571a44065871eef286083676
parent1ee4a4ba3a91e27515967d5e2daaedf664f10c78 (diff)
downloadbuildstream-abderrahim/artifact-cache-junction.tar.gz
_project.py: use artifact caches from the parent project for junctionsabderrahim/artifact-cache-junction
This makes a junction use the artifact cache of the parent project before the ones defined for the junction Fixes #401
-rw-r--r--buildstream/_artifactcache.py5
-rw-r--r--buildstream/_project.py10
2 files changed, 10 insertions, 5 deletions
diff --git a/buildstream/_artifactcache.py b/buildstream/_artifactcache.py
index de63d30f1..5404dc12e 100644
--- a/buildstream/_artifactcache.py
+++ b/buildstream/_artifactcache.py
@@ -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)