def main(args: dict) -> None: # set current path as working dir os.chdir(HERE) version = args.get(build_utils.FLAG_VERSION) docker_image_prefix = args.get(build_docker.FLAG_DOCKER_IMAGE_PREFIX) if not docker_image_prefix: docker_image_prefix = DOCKER_IMAGE_PREFIX # type: ignore if args.get(build_utils.FLAG_MAKE): build_docker.build_docker_image(COMPONENT_NAME, version, exit_on_error=True) if args.get(build_utils.FLAG_CHECK): build_docker.lint_dockerfile(exit_on_error=True) # TODO: the python base image currently has vulnerabilities # build_docker.check_image( # image=build_docker.get_image_name(name=COMPONENT_NAME, tag=version), # exit_on_error=True, # ) if args.get(build_utils.FLAG_RELEASE): # TODO: commented to prevent template image to be released # build_docker.release_docker_image( # IMAGE_NAME, # version, # docker_image_prefix, # exit_on_error=True, # ) pass
def main(args: dict) -> None: # set current path as working dir os.chdir(HERE) version = args.get(build_utils.FLAG_VERSION) docker_image_prefix = DOCKER_IMAGE_PREFIX if args.get(build_docker.FLAG_DOCKER_IMAGE_PREFIX): docker_image_prefix = args.get( build_docker.FLAG_DOCKER_IMAGE_PREFIX) # type: ignore if args.get(build_utils.FLAG_MAKE): build_docker.build_docker_image(COMPONENT_NAME, version, exit_on_error=True) if args.get(build_utils.FLAG_CHECK): build_docker.lint_dockerfile(exit_on_error=False) exit_on_error = False if build_utils.FLAG_FORCE else True completed_process = build_docker.check_image( image=build_docker.get_image_name(name=COMPONENT_NAME, tag=version), exit_on_error=exit_on_error, ) if completed_process and completed_process.returncode != 0: build_utils.log( f"The security check failed, but is ignored because {build_utils.FLAG_FORCE} flag is set." ) if args.get(build_utils.FLAG_RELEASE): build_docker.release_docker_image(COMPONENT_NAME, version, docker_image_prefix, exit_on_error=True)
def main(args: dict) -> None: # set current path as working dir os.chdir(HERE) version = args.get(build_utils.FLAG_VERSION) docker_image_prefix = args.get(build_docker.FLAG_DOCKER_IMAGE_PREFIX) if not docker_image_prefix: docker_image_prefix = DOCKER_IMAGE_PREFIX # type: ignore if args.get(build_utils.FLAG_MAKE): build_docker.build_docker_image(COMPONENT_NAME, version, exit_on_error=True) if args.get(build_utils.FLAG_CHECK): build_docker.lint_dockerfile(exit_on_error=True) # TODO: the python base image currently has vulnerabilities # build_docker.check_image( # image=build_docker.get_image_name(name=COMPONENT_NAME, tag=version), # exit_on_error=True, # ) if args.get(build_utils.FLAG_RELEASE): # Bump all versions in some filess previous_version = build_utils.get_latest_version() if previous_version: build_utils.replace_in_files( previous_version, version, file_paths=["./README.md", "./workflows/update-best-of-list.yml"], regex=False, exit_on_error=True, ) # TODO: action should not be released right now # build_docker.release_docker_image( # IMAGE_NAME, # version, # docker_image_prefix, # exit_on_error=True, # ) pass
base_image = "ml-workspace:" + VERSION if args.get(build_utils.FLAG_RELEASE): base_image = docker_image_prefix + base_image base_image_build_arg = " --build-arg ARG_WORKSPACE_BASE_IMAGE=" + base_image vcs_ref_build_arg = " --build-arg ARG_VCS_REF=" + str(git_rev) build_date_build_arg = " --build-arg ARG_BUILD_DATE=" + str(build_date) flavor_build_arg = " --build-arg ARG_WORKSPACE_FLAVOR=" + str(flavor) version_build_arg = " --build-arg ARG_WORKSPACE_VERSION=" + VERSION if args.get(build_utils.FLAG_MAKE): build_args = f"{base_image_build_arg} {version_build_arg} {flavor_build_arg} {vcs_ref_build_arg} {build_date_build_arg}" build_docker.build_docker_image(docker_image_name, version=VERSION, build_args=build_args, exit_on_error=True) if args.get(build_utils.FLAG_TEST): import docker workspace_name = f"workspace-test-{flavor}" workspace_port = "8080" client = docker.from_env() container = client.containers.run( f"{docker_image_name}:{VERSION}", name=workspace_name, environment={ "WORKSPACE_NAME": workspace_name, "WORKSPACE_ACCESS_PORT": workspace_port, },
build_date = (subprocess.check_output( ["date", "-u", "+%Y-%m-%dT%H:%M:%SZ"]).decode("ascii").strip()) except Exception: pass vcs_ref_build_arg = " --build-arg ARG_VCS_REF=" + str(git_rev) build_date_build_arg = " --build-arg ARG_BUILD_DATE=" + str(build_date) flavor_build_arg = " --build-arg ARG_WORKSPACE_FLAVOR=" + str(flavor) version_build_arg = " --build-arg ARG_WORKSPACE_VERSION=" + VERSION if args[build_utils.FLAG_MAKE]: build_args = (version_build_arg + " " + flavor_build_arg + " " + vcs_ref_build_arg + " " + build_date_build_arg) completed_process = build_docker.build_docker_image(docker_image_name, version=VERSION, build_args=build_args) if completed_process.returncode > 0: build_utils.exit_process(1) if args[build_utils.FLAG_TEST]: workspace_name = f"workspace-test-{flavor}" workspace_port = "8080" client = docker.from_env() container = client.containers.run( f"{docker_image_name}:{VERSION}", name=workspace_name, environment={ "WORKSPACE_NAME": workspace_name, "WORKSPACE_ACCESS_PORT": workspace_port, },
from universal_build import build_utils from universal_build.helpers import build_docker COMPONENT_NAME = "simple-demo-job" args = build_utils.parse_arguments() if args[build_utils.FLAG_MAKE]: completed_process = build_docker.build_docker_image( COMPONENT_NAME, args[build_utils.FLAG_VERSION]) if completed_process.returncode > 0: build_utils.exit_process(completed_process.returncode) if args[build_utils.FLAG_RELEASE]: completed_process = build_docker.release_docker_image( COMPONENT_NAME, args[build_utils.FLAG_VERSION], args[build_docker.FLAG_DOCKER_IMAGE_PREFIX])
try: build_date = (subprocess.check_output( ["date", "-u", "+%Y-%m-%dT%H:%M:%SZ"]).decode("ascii").strip()) except Exception: pass vcs_ref_build_arg = " --build-arg ARG_VCS_REF=" + str(git_rev) build_date_build_arg = " --build-arg ARG_BUILD_DATE=" + str(build_date) base_image_build_arg = " --build-arg ARG_WORKSPACE_BASE_IMAGE=" + str( base_image) flavor_build_arg = " --build-arg ARG_WORKSPACE_FLAVOR=" + str( args[FLAG_FLAVOR]) version_build_arg = " --build-arg ARG_WORKSPACE_VERSION=" + str( args[build_utils.FLAG_VERSION]) if args[build_utils.FLAG_MAKE]: build_args = (version_build_arg + " " + flavor_build_arg + " " + base_image_build_arg + " " + vcs_ref_build_arg + " " + build_date_build_arg) completed_process = build_docker.build_docker_image( COMPONENT_NAME, version=args[build_utils.FLAG_VERSION], build_args=build_args) if completed_process.returncode > 0: build_utils.exit_process(1) if args[build_utils.FLAG_RELEASE]: build_docker.release_docker_image( COMPONENT_NAME, args[build_utils.FLAG_VERSION], args[build_docker.FLAG_DOCKER_IMAGE_PREFIX])