load("@io_bazel_rules_docker//container:container.bzl", "container_push")
load("@io_bazel_rules_docker//docker/util:run.bzl", "container_run_and_commit")
load("//bazel:skia_app_container.bzl", "skia_app_container")

skia_app_container(
    name = "docsyserver_container",
    base_image = "@docsyserver-base//image",
    dirs = {
        "/usr/local/bin": [
            [
                "//docsyserver/go/docsyserver:docsyserver",
                "0755",
            ],
        ],
        "/": [
            [
                "//docsyserver/images:serve.sh",
                "0755",
            ],
            [
                "//docsyserver/images:build.sh",
                "0755",
            ],
        ],
        "/usr/local/share/docsy/layouts/partials": [
            [
                "//docsyserver/images:head.html",
                "0644",
            ],
            [
                "//docsyserver/images:page-meta-lastmod.html",
                "0644",
            ],
        ],
        "/usr/local/share/docsy/layouts/partials/hooks": [
            [
                "//docsyserver/images:head-end.html",
                "0644",
            ],
        ],
        "/usr/local/share/docsy/static/favicons": [
            [
                "//docsyserver/images:favicon.ico",
                "0644",
            ],
        ],
    },
    entrypoint = "/usr/local/bin/docsyserver",
    env = {
        "PATH": "$$PATH:/home/skia/node-v14.16.0-linux-x64/bin",
    },
    repository = "skia-public/docsyserver",
    run_commands_skia = [
        # Copy artifacts over.
        "cp -r /usr/local/share/docsy/layouts/partials /home/skia/docsy/layouts",
        "cp -r /usr/local/share/docsy/static /home/skia/docsy",
    ],
)

# Builds gcr.io/skia-public/docsyserver-base, a base image for docsyserver that contains docsy and
# its dependencies. This container takes several minutes to build and rarely changes. By pinning a
# revision of this container in //WORKSPACE and using it as the base image, we can build the
# docsyserver container much faster.
container_run_and_commit(
    name = "docsyserver_base_container",
    commands = [
        # Install golang.
        "cd && wget https://golang.org/dl/go1.16.2.linux-amd64.tar.gz && tar -xzf go1.16.2.linux-amd64.tar.gz",

        # Install hugo at a pinned version we know works.
        "cd && git clone https://github.com/gohugoio/hugo.git && cd hugo && git checkout 803f572e66c5e22213ddcc994c41b3e80e9c1f35 " +
        "&& ~/go/bin/go install --tags extended",

        # Install node.
        "cd && wget https://nodejs.org/dist/v14.16.0/node-v14.16.0-linux-x64.tar.gz && tar -xzf node-v14.16.0-linux-x64.tar.gz",

        # Install docsy at a pinned version we know works.
        "cd && git clone --recurse-submodules https://github.com/google/docsy-example.git docsy " +
        "&& cd docsy && git checkout 70e301f7861122ab129d2c46ee5ed625e92c04d0",
        "PATH=\"/home/skia/node-v14.16.0-linux-x64/bin:${PATH}\"",
        "/home/skia/node-v14.16.0-linux-x64/bin/npm install && rm config.toml && rm -rf content",
    ],
    docker_run_flags = [
        "--user",
        "skia",
    ],
    image = ":docsyserver_base_container_root_commit.tar",
    tags = [
        "manual",  # Exclude it from wildcard queries, e.g. "bazel build //...".
        # container_run_and_commit requires the docker daemon to be running. This is not possible
        # inside RBE.
        "no-remote",
    ],
)

# Subset of the docsy dependencies that need to be installed as the root user.
container_run_and_commit(
    name = "docsyserver_base_container_root",
    commands = [
        # Install required packages.
        "apt-get update",
        "apt-get install -y wget openssh-client procps unzip vim less build-essential gcc gcc-10 gcc-10-base libgcc-10-dev",
        "apt-get clean",
    ],
    docker_run_flags = [
        "--user",
        "root",
    ],
    image = "@base-cipd//image",
    tags = [
        "manual",  # Exclude it from wildcard queries, e.g. "bazel build //...".
        # container_run_and_commit requires the docker daemon to be running. This is not possible
        # inside RBE.
        "no-remote",
    ],
)

# Pushes a new release of the gcr.io/skia-public/docsyserver-base container.
container_push(
    name = "push_docsyserver_base_container",
    format = "Docker",
    image = ":docsyserver_base_container_commit.tar",
    registry = "gcr.io",
    repository = "skia-public/docsyserver-base",
    stamp = "@io_bazel_rules_docker//stamp:always",
    tag = "{STABLE_DOCKER_TAG}",
    tags = [
        "manual",  # Exclude it from wildcard queries, e.g. "bazel build //...".
        # container_push requires the docker daemon to be running. This is not possible inside RBE.
        "no-remote",
    ],
)
