You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildstream.apache.org by no...@apache.org on 2020/12/29 12:38:08 UTC
[buildstream] 05/09: Add no-fetch flag for 'bst source-bundle'
This is an automated email from the ASF dual-hosted git repository.
not-in-ldap pushed a commit to branch gokcen/add_no_fetch_flag
in repository https://gitbox.apache.org/repos/asf/buildstream.git
commit 633911efc36768c5587855157171b0aff6385bbd
Author: Gökçen Nurlu <gn...@bloomberg.net>
AuthorDate: Mon Oct 29 11:37:46 2018 +0000
Add no-fetch flag for 'bst source-bundle'
---
buildstream/_frontend/cli.py | 7 +++++--
buildstream/_stream.py | 14 +++++++++++---
2 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/buildstream/_frontend/cli.py b/buildstream/_frontend/cli.py
index 5d083ee..d733890 100644
--- a/buildstream/_frontend/cli.py
+++ b/buildstream/_frontend/cli.py
@@ -849,9 +849,11 @@ def workspace_list(app):
help="The directory to write the tarball to")
@click.argument('element',
type=click.Path(readable=False))
+@click.option('--no-fetch', 'no_fetch', default=False, is_flag=True,
+ help="Disable auto-fetching of junction(s)")
@click.pass_obj
def source_bundle(app, element, force, directory,
- track_, compression, except_):
+ track_, compression, except_, no_fetch):
"""Produce a source bundle to be manually executed
"""
with app.initialized():
@@ -859,4 +861,5 @@ def source_bundle(app, element, force, directory,
track_first=track_,
force=force,
compression=compression,
- except_targets=except_)
+ except_targets=except_,
+ no_fetch=no_fetch)
diff --git a/buildstream/_stream.py b/buildstream/_stream.py
index 2e88d5a..bf0e66f 100644
--- a/buildstream/_stream.py
+++ b/buildstream/_stream.py
@@ -729,12 +729,15 @@ class Stream():
# track_first (bool): Track new source references before bundling
# compression (str): The compression type to use
# force (bool): Overwrite an existing tarball
+ # no_fetch (bool): Flag to disable auto-fetch of `target` and junction(s)
+ # needed by `target`
#
def source_bundle(self, target, directory, *,
track_first=False,
force=False,
compression="gz",
- except_targets=()):
+ except_targets=(),
+ no_fetch):
if track_first:
track_targets = (target,)
@@ -745,7 +748,7 @@ class Stream():
selection=PipelineSelection.ALL,
except_targets=except_targets,
track_selection=PipelineSelection.ALL,
- fetch_subprojects=True)
+ fetch_subprojects=not no_fetch)
# source-bundle only supports one target
target = self.targets[0]
@@ -770,7 +773,12 @@ class Stream():
# Fetch and possibly track first
#
- self._fetch(elements, track_elements=track_elements)
+ if not no_fetch:
+ self._fetch(elements, track_elements=track_elements)
+ else:
+ # No fetch, just tracking
+ self._fetch([], track_elements=track_elements)
+ self._pipeline.assert_sources_cached(elements)
# We don't use the scheduler for this as it is almost entirely IO
# bound.