def collect_tasks(path, folders, matrix_base_dir, channels=None, steps=0, test=False,
max_downstream=5, variant_config_files=None):
# runs = ['test']
# not testing means build and test
# if not test:
# runs.insert(0, 'build')
runs = ['build']
task_graph = nx.DiGraph()
config = conda_build.api.Config()
for run in runs:
platforms = parse_platforms(matrix_base_dir, run)
# loop over platforms here because each platform may have different dependencies
# each platform will be submitted with a different label
for platform in platforms:
index_key = '-'.join([platform['platform'], str(platform['arch'])])
config.channel_urls = channels or []
config.variant_config_files = variant_config_files or []
conda_resolve = Resolve(get_build_index(subdir=index_key,
bldpkgs_dir=config.bldpkgs_dir)[0])
# this graph is potentially different for platform and for build or test mode ("run")
g = construct_graph(path, worker=platform, folders=folders, run=run,
matrix_base_dir=matrix_base_dir, conda_resolve=conda_resolve,
config=config)
# Apply the build label to any nodes that need (re)building or testing
expand_run(g, conda_resolve=conda_resolve, worker=platform, run=run,
steps=steps, max_downstream=max_downstream, recipes_dir=path,
matrix_base_dir=matrix_base_dir)
# merge this graph with the main one
task_graph = nx.compose(task_graph, g)
return task_graph
评论列表
文章目录