Add ability to run any image version from packager and runner

This commit is contained in:
alesapin 2020-06-30 16:08:12 +03:00
parent 4262fec1bb
commit 29c528235e
2 changed files with 12 additions and 4 deletions

View File

@ -31,7 +31,7 @@ def pull_image(image_name):
def build_image(image_name, filepath):
subprocess.check_call("docker build --network=host -t {} -f {} .".format(image_name, filepath), shell=True)
def run_docker_image_with_env(image_name, output, env_variables, ch_root, ccache_dir):
def run_docker_image_with_env(image_name, output, env_variables, ch_root, ccache_dir, docker_image_version):
env_part = " -e ".join(env_variables)
if env_part:
env_part = " -e " + env_part
@ -46,7 +46,7 @@ def run_docker_image_with_env(image_name, output, env_variables, ch_root, ccache
ch_root=ch_root,
ccache_dir=ccache_dir,
env=env_part,
img_name=image_name,
img_name=image_name + ":" + docker_image_version,
interactive=interactive
)
@ -189,6 +189,7 @@ if __name__ == "__main__":
parser.add_argument("--alien-pkgs", nargs='+', default=[])
parser.add_argument("--with-coverage", action="store_true")
parser.add_argument("--with-binaries", choices=("programs", "tests", ""), default="")
parser.add_argument("--docker-image-version", default="latest")
args = parser.parse_args()
if not os.path.isabs(args.output_dir):
@ -219,5 +220,6 @@ if __name__ == "__main__":
args.build_type, args.compiler, args.sanitizer, args.package_type, image_type,
args.cache, args.distcc_hosts, args.unbundled, args.split_binary, args.clang_tidy,
args.version, args.author, args.official, args.alien_pkgs, args.with_coverage, args.with_binaries)
run_docker_image_with_env(image_name, args.output_dir, env_prepared, ch_root, args.ccache_dir)
run_docker_image_with_env(image_name, args.output_dir, env_prepared, ch_root, args.ccache_dir, args.docker_image_version)
logging.info("Output placed into {}".format(args.output_dir))

View File

@ -76,6 +76,12 @@ if __name__ == "__main__":
default=False,
help="Don't use net host in parent docker container")
parser.add_argument(
"--docker-image-version",
default="latest",
help="Version of docker image which runner will use to run tests")
parser.add_argument('pytest_args', nargs='*', help="args for pytest command")
args = parser.parse_args()
@ -106,7 +112,7 @@ if __name__ == "__main__":
cfg=args.configs_dir,
pth=args.clickhouse_root,
opts=' '.join(args.pytest_args),
img=DIND_INTEGRATION_TESTS_IMAGE_NAME,
img=DIND_INTEGRATION_TESTS_IMAGE_NAME + ":" + args.docker_image_version,
name=CONTAINER_NAME,
command=args.command
)