def ci_generate(args): """Generate jobs file from a spack environment file containing CI info. Before invoking this command, you can set the environment variable SPACK_CDASH_AUTH_TOKEN to contain the CDash authorization token for creating a build group for the generated workload and registering all generated jobs under that build group. If this environment variable is not set, no build group will be created on CDash.""" env = ev.get_env(args, 'ci generate', required=True) output_file = args.output_file copy_yaml_to = args.copy_to run_optimizer = args.optimize use_dependencies = args.dependencies prune_dag = args.prune_dag index_only = args.index_only if not output_file: output_file = os.path.abspath(".gitlab-ci.yml") else: output_file_path = os.path.abspath(output_file) gen_ci_dir = os.path.dirname(output_file_path) if not os.path.exists(gen_ci_dir): os.makedirs(gen_ci_dir) # Generate the jobs spack_ci.generate_gitlab_ci_yaml( env, True, output_file, prune_dag=prune_dag, check_index_only=index_only, run_optimizer=run_optimizer, use_dependencies=use_dependencies) if copy_yaml_to: copy_to_dir = os.path.dirname(copy_yaml_to) if not os.path.exists(copy_to_dir): os.makedirs(copy_to_dir) shutil.copyfile(output_file, copy_yaml_to)
def ci_generate(args): """Generate jobs file from a spack environment file containing CI info. Before invoking this command, you can set the environment variable SPACK_CDASH_AUTH_TOKEN to contain the CDash authorization token for creating a build group for the generated workload and registering all generated jobs under that build group. If this environment variable is not set, no build group will be created on CDash.""" env = ev.get_env(args, 'ci generate', required=True) output_file = args.output_file copy_yaml_to = args.copy_to spack_repo = args.spack_repo spack_ref = args.spack_ref if not output_file: gen_ci_dir = os.getcwd() output_file = os.path.join(gen_ci_dir, '.gitlab-ci.yml') else: gen_ci_dir = os.path.dirname(output_file) if not os.path.exists(gen_ci_dir): os.makedirs(gen_ci_dir) # Generate the jobs spack_ci.generate_gitlab_ci_yaml(env, True, output_file, spack_repo, spack_ref) if copy_yaml_to: copy_to_dir = os.path.dirname(copy_yaml_to) if not os.path.exists(copy_to_dir): os.makedirs(copy_to_dir) shutil.copyfile(output_file, copy_yaml_to)