pytest-bdd-feedstock/build-locally.py

59 lines
1.6 KiB
Python
Executable File

#!/usr/bin/env python3
#
# This file has been generated by conda-smithy in order to build the recipe
# locally.
#
import os
import glob
import subprocess
from argparse import ArgumentParser
def setup_environment(ns):
os.environ["CONFIG"] = ns.config
os.environ["UPLOAD_PACKAGES"] = "False"
def run_docker_build(ns):
script = glob.glob(".*/run_docker_build.sh")[0]
subprocess.check_call(script)
def verify_config(ns):
valid_configs = {os.path.basename(f)[:-5] for f in glob.glob(".ci_support/*.yaml")}
print(f"valid configs are {valid_configs}")
if ns.config in valid_configs:
print("Using " + ns.config + " configuration")
return
elif len(valid_configs) == 1:
ns.config = valid_configs.pop()
print("Found " + ns.config + " configuration")
elif ns.config is None:
print("config not selected, please choose from the following:\n")
selections = list(enumerate(sorted(valid_configs), 1))
for i, c in selections:
print(f"{i}. {c}")
s = input("\n> ")
idx = int(s) - 1
ns.config = selections[idx][1]
print(f"selected {ns.config}")
else:
raise ValueError("config " + ns.config + " is not valid")
# Remove the following, as implemented
if not ns.config.startswith('linux'):
raise ValueError(f"only Linux configs currently supported, got {ns.config}")
def main(args=None):
p = ArgumentParser("build-locally")
p.add_argument("config", default=None, nargs="?")
ns = p.parse_args(args=args)
verify_config(ns)
setup_environment(ns)
run_docker_build(ns)
if __name__ == "__main__":
main()