Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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,
        },
Ejemplo n.º 5
0
    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,
        },
Ejemplo n.º 6
0
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])
Ejemplo n.º 7
0
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])