def build_zones(cmd_line_args): base_image = get_base_image(cmd_line_args.platform_target, cmd_line_args.image_tag) federation_tag_list=[] for x in range(cmd_line_args.zones): zone_id = x + 1 stage = 'federation_zone_' + str(zone_id) federation_tag = get_build_tag(cmd_line_args.platform_target, stage, cmd_line_args.build_id) docker_cmds_utilities.build_irods_zone(federation_tag, base_image, cmd_line_args.database_type, 'Dockerfile.fed') federation_tag_list.append(federation_tag) network_name = cmd_line_args.platform_target + '_' + cmd_line_args.test_type + '_' + cmd_line_args.database_type + '_' + cmd_line_args.build_id create_federation(federation_tag_list, network_name, cmd_line_args)
def build_topo_containers(cmd_line_args): base_image = ci_utilities.get_base_image(cmd_line_args.platform_target, cmd_line_args.image_tag) provider_tag = ci_utilities.get_build_tag(cmd_line_args.platform_target, 'topo_provider', cmd_line_args.database_type, cmd_line_args.build_id) docker_cmds_utilities.build_irods_zone(provider_tag, base_image, cmd_line_args.database_type, 'Dockerfile.topo', 'True') consumer_tag_list = [] machine_list = [] for x in range(cmd_line_args.consumers): consumer_id = x + 1 stage = 'topo_consumer_' + str(consumer_id) consumer_tag = ci_utilities.get_build_tag(cmd_line_args.platform_target, stage, cmd_line_args.database_type, cmd_line_args.build_id) docker_cmds_utilities.build_irods_zone(consumer_tag, base_image, cmd_line_args.database_type, 'Dockerfile.topo', 'False') consumer_tag_list.append(consumer_tag) consumer_name = cmd_line_args.platform_target + '-' + cmd_line_args.test_name_prefix + '-consumer-' + str(consumer_id) machine_list.append(consumer_name) network_name = cmd_line_args.platform_target + '_' + cmd_line_args.test_type + '_' + cmd_line_args.database_type + '_' + cmd_line_args.build_id create_topology(cmd_line_args, provider_tag, consumer_tag_list, machine_list, network_name)
def main(): parser = argparse.ArgumentParser(description='Run tests in os-containers') parser.add_argument('-p', '--platform_target', type=str, required=True) parser.add_argument('--image_tag', type=str, required=True, help='Tag id or name for the base image') parser.add_argument('-b', '--build_id', type=str, required=True) parser.add_argument('--irods_repo', type=str, required=False) parser.add_argument('--irods_commitish', type=str, required=False) parser.add_argument('--test_name_prefix', type=str, required=True) parser.add_argument('--irods_build_dir', type=str, required=True) parser.add_argument('--test_plugin', action='store_true', default=False) parser.add_argument('--externals_dir', type=str, help='externals build directory') parser.add_argument('--plugin_build_dir', type=str, help='plugin build directory') parser.add_argument('--plugin_repo', help='plugin git repo') parser.add_argument('--plugin_commitish', help='plugin git commit sha') parser.add_argument('--database_type', default='postgres', help='database type', required=True) parser.add_argument('--test_parallelism', default='4', help='The number of tests to run in parallel', required=False) parser.add_argument('-o', '--output_directory', type=str, required=True) parser.add_argument('--passthrough_arguments', type=str) parser.add_argument('--run_unit_tests', action='store_true', default=False) parser.add_argument('--run_timing_tests', action='store_true', default=False) args = parser.parse_args() build_tag = None base_image = ci_utilities.get_base_image(args.platform_target, args.image_tag) if not args.test_plugin: build_tag = ci_utilities.get_build_tag(args.platform_target, 'irods-install', args.database_type, args.build_id) else: build_tag = ci_utilities.get_build_tag(args.platform_target, 'plugin-install', args.database_type, args.build_id) docker_cmds_utilities.build_irods_zone(build_tag, base_image, args.database_type, 'Dockerfile.install_and_test', True) test_name_prefix = args.platform_target + '_' + args.test_name_prefix.replace( '-', '_') if not args.test_plugin: irods_sha = ci_utilities.get_sha_from_commitish( args.irods_repo, args.irods_commitish) run_tests(build_tag, irods_sha, test_name_prefix, args) else: plugin_repo = args.plugin_repo plugin_repo_split = plugin_repo.split('/') plugin = plugin_repo_split[len(plugin_repo_split) - 1] plugin_name = plugin.split('.git')[0] if 'audit' in plugin_name: if '--message_broker' in args.passthrough_arguments: message_broker = args.passthrough_arguments.split(' ')[1] machine_name = args.platform_target + '-' + plugin_name + '-' + message_broker + '-' + args.database_type + '-' + args.build_id elif 'storage' in plugin_name and args.passthrough_arguments is not None and 'unified' in args.passthrough_arguments: plugin_name = plugin_name + '-unified' machine_name = args.platform_target + '-' + plugin_name + '-' + args.database_type + '-' + args.build_id else: machine_name = args.platform_target + '-' + plugin_name + '-' + args.database_type + '-' + args.build_id plugin_sha = ci_utilities.get_sha_from_commitish( args.plugin_repo, args.plugin_commitish) run_plugin_tests(build_tag, plugin_sha, machine_name, plugin_name, test_name_prefix, args)