Skip to content
Snippets Groups Projects
Commit eb8924ee authored by Samuel GAIST's avatar Samuel GAIST
Browse files

[bootstrap] Add option to use local channel

This allows to test bootstrapping the environment with new packages
without the need to first have them integrated in bob.conda.
parent b85f7874
No related branches found
No related tags found
1 merge request!1Add option to use local channel to bootstrap
Pipeline #25815 passed
...@@ -80,7 +80,7 @@ def get_env_directory(conda, name): ...@@ -80,7 +80,7 @@ def get_env_directory(conda, name):
return None return None
def conda_create(conda, name, overwrite, condarc, packages, dry_run): def conda_create(conda, name, overwrite, condarc, packages, dry_run, use_local):
specs = [] specs = []
for k in packages: for k in packages:
...@@ -104,9 +104,12 @@ def conda_create(conda, name, overwrite, condarc, packages, dry_run): ...@@ -104,9 +104,12 @@ def conda_create(conda, name, overwrite, condarc, packages, dry_run):
raise RuntimeError('environment `%s\' exists in `%s\' - use ' raise RuntimeError('environment `%s\' exists in `%s\' - use '
'--overwrite to overwrite' % (name, envdir)) '--overwrite to overwrite' % (name, envdir))
cmd = [conda, 'create', '--yes', '--name', name] + sorted(specs) cmd = [conda, 'create', '--yes', '--name', name]
if dry_run: if dry_run:
cmd.insert(2, '--dry-run') cmd.append('--dry-run')
if use_local:
cmd.append('--use-local')
cmd.extend(sorted(specs))
logger.debug('$ ' + ' '.join(cmd)) logger.debug('$ ' + ' '.join(cmd))
status = subprocess.call(cmd) status = subprocess.call(cmd)
if status != 0: if status != 0:
......
...@@ -76,10 +76,12 @@ Examples: ...@@ -76,10 +76,12 @@ Examples:
help='Only goes through the actions, but does not execute them ' \ help='Only goes through the actions, but does not execute them ' \
'(combine with the verbosity flags - e.g. ``-vvv``) to enable ' \ '(combine with the verbosity flags - e.g. ``-vvv``) to enable ' \
'printing to help you understand what will be done') 'printing to help you understand what will be done')
@click.option('--use-local', default=False,
help='Allow the use of local channels for package retrieval')
@verbosity_option() @verbosity_option()
@bdt.raise_on_error @bdt.raise_on_error
def bootstrap(name, recipe_dir, python, overwrite, condarc, config, def bootstrap(name, recipe_dir, python, overwrite, condarc, config,
append_file, docserver, dry_run): append_file, docserver, dry_run, use_local):
"""Creates a development environment for a recipe """Creates a development environment for a recipe
It uses the conda render API to render a recipe and install an environment It uses the conda render API to render a recipe and install an environment
...@@ -117,5 +119,5 @@ def bootstrap(name, recipe_dir, python, overwrite, condarc, config, ...@@ -117,5 +119,5 @@ def bootstrap(name, recipe_dir, python, overwrite, condarc, config,
conda_config = make_conda_config(config, python, append_file, condarc) conda_config = make_conda_config(config, python, append_file, condarc)
deps = parse_dependencies(recipe_dir, conda_config) deps = parse_dependencies(recipe_dir, conda_config)
status = conda_create(conda, name, overwrite, condarc, deps, dry_run) status = conda_create(conda, name, overwrite, condarc, deps, dry_run, use_local)
click.echo('Execute on your shell: "conda activate %s"' % name) click.echo('Execute on your shell: "conda activate %s"' % name)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment