Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions doc/source/using_config.rst
Original file line number Diff line number Diff line change
Expand Up @@ -381,6 +381,7 @@ Attributes
values for this attribute are:

* ``none``: Only build elements required to generate the expected target artifacts
* ``run``: Build required elements and their their runtime dependencies
* ``all``: Build elements even if they are build dependencies of artifacts which are already cached


Expand Down
4 changes: 2 additions & 2 deletions src/buildstream/_context.py
Original file line number Diff line number Diff line change
Expand Up @@ -465,10 +465,10 @@ def load(self, config: Optional[str] = None) -> None:
self.build_retry_failed = build.get_bool("retry-failed")

dependencies = build.get_str("dependencies")
if dependencies not in ["none", "all"]:
if dependencies not in ["none", "run", "all"]:
provenance = build.get_scalar("dependencies").get_provenance()
raise LoadError(
"{}: Invalid value for 'dependencies'. Choose 'none' or 'all'.".format(provenance),
"{}: Invalid value for 'dependencies'. Choose 'none', 'run', or 'all'.".format(provenance),
LoadErrorReason.INVALID_DATA,
)
self.build_dependencies = _PipelineSelection(dependencies)
Expand Down
9 changes: 7 additions & 2 deletions src/buildstream/_stream.py
Original file line number Diff line number Diff line change
Expand Up @@ -1766,7 +1766,7 @@ def _load(
# rely on state changes during processing to determine which elements
# must be processed.
#
if selection == _PipelineSelection.NONE:
if selection in (_PipelineSelection.NONE, _PipelineSelection.RUN):
required_elements = elements
elif selection == _PipelineSelection.BUILD:
required_elements = list(_pipeline.dependencies(elements, _Scope.BUILD, recurse=False))
Expand All @@ -1775,8 +1775,13 @@ def _load(
if not required_elements:
required_elements = selected

if selection == _PipelineSelection.NONE:
scope = _Scope.NONE
else:
scope = _Scope.RUN

for element in required_elements:
element._set_required()
element._set_required(scope)

return selected

Expand Down
2 changes: 1 addition & 1 deletion src/buildstream/data/userconfig.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ build:
#
# Control which dependencies to build
#
dependencies: none
dependencies: run


#
Expand Down
Loading