def run_main(args): temp_dir = "" if args.temp_dir: temp_dir = args.temp_dir else: temp_dir = os.path.abspath( os.path.join(root_dir, "..", TEMP_FOLDER_NAME)) code_repo_root = os.path.join(temp_dir, GIT_REPO_NAME) # Make sure root_dir where script is running is not same as code repo which will be reverted to old released branch to run test if root_dir == code_repo_root: logging.error( "Invalid path to clone github code repo. Temporary path can not be same as current source root directory" ) exit(1) # Make sure temp path exists if not os.path.exists(temp_dir): os.mkdir(temp_dir) if args.service: service_dir = os.path.join("sdk", args.service) target_dir = os.path.join(root_dir, service_dir) else: target_dir = root_dir targeted_packages = process_glob_string(args.glob_string, target_dir, "", "Regression") if len(targeted_packages) == 0: exit(0) # clone code repo only if it doesn't exist if not os.path.exists(code_repo_root): clone_repo(temp_dir, AZURE_SDK_FOR_PYTHON_GIT_URL) else: logging.info( "Path {} already exists. Skipping step to clone github repo". format(code_repo_root)) # find package dependency map for azure sdk pkg_dependency = find_package_dependency(AZURE_GLOB_STRING, code_repo_root, args.dependent_service) logging.info("Package dependency: {}".format(pkg_dependency)) # Create regression text context. One context object will be reused for all packages context = RegressionContext(args.whl_dir, temp_dir, str_to_bool(args.verify_latest), args.mark_arg) for pkg_path in targeted_packages: context.init_for_pkg(pkg_path) RegressionTest(context, pkg_dependency).run() logging.info("Regression test is completed successfully")
default="", dest="package_filter_string", help= ("An additional string used to filter the set of artifacts by a simple CONTAINS clause. This filters packages AFTER the set is built with compatibility and omission lists accounted." ), ) parser.add_argument( "--devbuild", default=False, dest="is_dev_build", help= ("Set build type to dev build so package requirements will be updated if required package is not available on PyPI" ), ) args = parser.parse_args() # We need to support both CI builds of everything and individual service # folders. This logic allows us to do both. if args.service: service_dir = os.path.join("sdk", args.service) target_dir = os.path.join(root_dir, service_dir) else: target_dir = root_dir targeted_packages = process_glob_string(args.glob_string, target_dir, args.package_filter_string) build_packages(targeted_packages, args.distribution_directory, str_to_bool(args.is_dev_build))