diff options
-rw-r--r-- | src/buildstream/element.py | 3 | ||||
-rw-r--r-- | tests/sourcecache/push.py | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/src/buildstream/element.py b/src/buildstream/element.py index ffce257bf..134ca3024 100644 --- a/src/buildstream/element.py +++ b/src/buildstream/element.py @@ -1846,7 +1846,8 @@ class Element(Plugin): return True def _skip_source_push(self): - if not self.__sources or self._get_workspace(): + # Skip push if we have no sources, are workspaced or the given element failed to build + if any([not self.__sources, self._get_workspace(), not self._get_build_result()[0]]): return True return not (self.__sourcecache.has_push_remotes(plugin=self) and self._source_cached()) diff --git a/tests/sourcecache/push.py b/tests/sourcecache/push.py index 719860425..551593e18 100644 --- a/tests/sourcecache/push.py +++ b/tests/sourcecache/push.py @@ -254,5 +254,5 @@ def test_source_push_build_fail(cli, tmpdir, datafiles): res.assert_task_error(ErrorDomain.ELEMENT, None) # Sources are not pushed as the build queue is before the source push - # queue. + # queue. We explicitly don't want to push failed build source by default. assert "Pushed source " not in res.stderr |