Beispiel #1
0
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')
Beispiel #2
0
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'))