def main(): parser = argparse.ArgumentParser(description='catapult tests runner') parser.add_argument('--image', help='docker tests image', required=True) parser.add_argument('--compiler-configuration', help='path to compiler configuration yaml', required=True) parser.add_argument('--user', help='docker user', required=True) parser.add_argument('--mode', help='test mode', choices=('bench', 'test', 'lint'), required=True) parser.add_argument('--verbosity', help='verbosity level', default='max') parser.add_argument('--dry-run', help='outputs desired commands without running them', action='store_true') args = parser.parse_args() process_manager = ProcessManager(args.dry_run) compose_template_directory = Path(__file__).parent / 'templates' compose_template_filepath = compose_template_directory / 'Run{}.yaml'.format( args.mode.capitalize()) print('processing template from {}'.format(compose_template_filepath)) prepare_replacements = { 'image_name': args.image, 'compiler_configuration': args.compiler_configuration, 'user': args.user, 'verbosity': args.verbosity } prepare_docker_compose_file(compose_template_filepath, prepare_replacements, sys.stdout) if not args.dry_run: with open('docker-compose.yaml', 'wt') as outfile: prepare_docker_compose_file(compose_template_filepath, prepare_replacements, outfile) environment_manager = EnvironmentManager(args.dry_run) environment_manager.set_env_var('COMPOSE_HTTP_TIMEOUT', '200') environment_manager.mkdirs(OUTPUT_DIR / 'logs', exist_ok=True) environment_manager.mkdirs(OUTPUT_DIR / 'workdir', exist_ok=True) if 'test' == args.mode: environment_manager.mkdirs(MONGO_DIR / get_image_label(args.image)) docker_compose_args = create_docker_compose_command(args.mode) if process_manager.dispatch_subprocess(docker_compose_args, handle_error=False): print('tests failed') sys.exit(1) print('tests succeeded')
def main(): parser = argparse.ArgumentParser(description='catapult lint runner') parser.add_argument('--out-dir', help='directory in which to store lint output files', required=True) parser.add_argument('--dry-run', help='outputs desired commands without runing them', action='store_true') args = parser.parse_args() process_manager = ProcessManager(args.dry_run) environment_manager = EnvironmentManager(args.dry_run) environment_manager.set_env_var('HOME', '/tmp') run_cpp_linters(process_manager, args.out_dir) environment_manager.chdir('scripts') linter_runner = LinterRunner(process_manager, args.out_dir, args.dry_run) run_shell_linters(linter_runner, find_files_with_extension(environment_manager, '.sh')) run_python_linters(linter_runner, find_files_with_extension(environment_manager, '.py'))