# Copyright 2015 The Bazel Authors. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

package(default_visibility = ["//jenkins:__subpackages__"])

# Configuration for our Jenkins instance
load("@io_bazel_rules_docker//docker:docker.bzl", "docker_build")
load("//jenkins/build_defs:jenkins.bzl", "jenkins_node", "jenkins_docker_build", "jenkins_job", "jenkins_nodes", "jenkins_node_names")
load("//jenkins/jobs:jobs.bzl", "JOBS_SUBSTITUTIONS", "STAGING_JOBS_SUBSTITUTIONS")

#
# Nodes
#

DARWIN_PREFIX = "darwin-x86_64"

DARWIN_COUNT = 4

WINDOWS_PREFIX = "windows-x86_64"

WINDOWS_COUNT = 4

WINDOWS_MSVC_PREFIX = "windows-msvc-x86_64"

WINDOWS_MSVC_COUNT = 4

UBUNTU_1404_PREFIX = "ubuntu_14.04-x86_64"

UBUNTU_1404_COUNT = 8

UBUNTU_1404_BENCHMARK_PREFIX = "ubuntu_14.04-x86_64-benchmark"

UBUNTU_1404_BENCHMARK_COUNT = 1

UBUNTU_1604_PREFIX = "ubuntu_16.04-x86_64"

UBUNTU_1604_COUNT = 8

UBUNTU_DOCKER_PREFIX = "ubuntu_15.10-x86_64-docker"

UBUNTU_DOCKER_COUNT = 2

FREEBSD_11_PREFIX = "freebsd-11"

FREEBSD_11_COUNT = 1

FREEBSD_12_PREFIX = "freebsd-12"

FREEBSD_12_COUNT = 1

# Physical machines
jenkins_nodes(
    DARWIN_PREFIX,
    DARWIN_COUNT,
    prod_args = {
        "num_executors": 2,
    },
    remote_fs = "/Users/ci",
)

# GCE machines
jenkins_nodes(
    WINDOWS_PREFIX,
    WINDOWS_COUNT,
    num_executors = 1,
    preference = 1,
    remote_fs = "c:\\jenkins",
)

jenkins_nodes(
    WINDOWS_MSVC_PREFIX,
    WINDOWS_MSVC_COUNT,
    num_executors = 1,
    preference = 1,
    remote_fs = "c:\\jenkins",
)

jenkins_nodes(
    UBUNTU_1404_PREFIX,
    UBUNTU_1404_COUNT,
    labels = ["linux-x86_64"],
)

jenkins_nodes(
    UBUNTU_1404_BENCHMARK_PREFIX,
    UBUNTU_1404_BENCHMARK_COUNT,
    install_bazel = False,
    labels = ["benchmark"],
    mode = "EXCLUSIVE",
)

jenkins_nodes(
    UBUNTU_DOCKER_PREFIX,
    UBUNTU_DOCKER_COUNT,
    labels = ["docker"],
)

# Non-release nodes
jenkins_nodes(
    UBUNTU_1604_PREFIX,
    UBUNTU_1604_COUNT,
    labels = ["no-release"],
)

jenkins_nodes(
    FREEBSD_11_PREFIX,
    FREEBSD_11_COUNT,
    labels = ["no-release"],
)

jenkins_nodes(
    FREEBSD_12_PREFIX,
    FREEBSD_12_COUNT,
    labels = ["no-release"],
)

#
# A deploy slave used for release work and syncing
# our repositories.
#

# A little hack to remove path consideration
DEPLOY_FILES = [
    "hoedown",
    "github_release",
]

genrule(
    name = "deploy-files",
    srcs = ["@%s//file" % f for f in DEPLOY_FILES],
    outs = ["%s.tar.gz" % f for f in DEPLOY_FILES],
    cmd = "\n".join([
        "cp $(location @%s//file) $(location %s.tar.gz)" % (f, f)
        for f in DEPLOY_FILES
    ]),
)

docker_build(
    name = "deploy-base",
    base = "//base:ubuntu-wily-amd64-deploy",
    directory = "/opt/data",
    env = {
        # We have to put those files on some secrets volume.
        "BOTO_CONFIG": "/opt/secrets/boto_config",
        "GITHUB_TOKEN_FILE": "/opt/secrets/github_token",
        "GSUTIL": "/opt/data/gsutil/gsutil",
        "GITHUB_RELEASE": "/opt/data/github-release/github-release",
        "HOEDOWN": "/opt/data/hoedown/hoedown",
        "APT_GPG_KEY_PATH": "/opt/secrets/apt-key.sec.gpg",
        "APT_GPG_KEY_ID_FILE": "/opt/secrets/apt-key.id",
    },
    files = [":deploy-files"],
    volumes = ["/opt/secrets"],
)

docker_build(
    name = "deploy-full",
    base = ":deploy-base",
    directory = "/opt/run",
    files = ["setup-deploy.sh"],
)

jenkins_node(
    name = "deploy",
    docker_base = "deploy-full",
    num_executors = 2,
    visibility = ["//visibility:public"],
)

jenkins_node(
    name = "deploy-staging",
    docker_base = "deploy-full",
    labels = ["deploy"],
    num_executors = 2,
    visibility = ["//visibility:public"],
)

docker_build(
    name = "ubuntu-with-bazel-installer",
    base = "//base:ubuntu-wily-amd64-deploy",
    data_path = "/gce",
    directory = "/opt/run",
    files = ["//gce:bootstrap-bazel.sh"],
)

jenkins_node(
    name = "ubuntu-docker",
    docker_base = ":ubuntu-with-bazel-installer",
    labels = [
        "linux-x86_64",
        "install-bazel",
    ],
)

# Jenkins job for Gerrit vetting
jenkins_job(
    name = "CR/gerrit-verifier",
    config = "gerrit-verifier.xml.tpl",
    project_url = "https://bazel-review.googlesource.com",
    deps = ["gerrit-verifier.groovy"],
)

#
# Jenkins permissions
#

# Public permissions
PUBLIC_PERMS = [
    "Hudson.Read",  # Read the public dashboard
    "Item.Read",  # Read the result of a build
    "Item.Workspace",  # Read a job workspace
    "View.Read",  # Read views
    "Computer.Connect",  # Connect a new node, needed by the node themselves
]

# Permissions for @google.com emails
AUTHENTICATED_PERMS = PUBLIC_PERMS

# Permissions for admin users (Beware it is dangerous)
ADMIN_PERMS = AUTHENTICATED_PERMS + [
    "Item.Build",  # Launch a build
    "Item.Cancel",  # Cancel a build
    "Run.Delete",  # Delete one build's information
    "Run.Update",  # Run one build's information
    "View.Configure",  # Configure views
    "View.Create",  # Create a new view
    "View.Delete",  # Delete existing view
    # Dangerous area: touch to nodes
    "Computer.Disconnect",  # Disconnect a node, normally never needed
    "Computer.Configure",  # Configure a node, normally never needed
    "Computer.Delete",  # Delete a node, almost never needed
    "Computer.Build",  # Build on a node, needed for debugging
    # Very dangerous area, administer jenkins
    "Hudson.Administer",  # Only used for restarting jenkins.
]

PERMS_TEMPLATE = "<permission>hudson.model.%s:%s</permission>"

#
# Creates the permissions info
#
# This is a config file generated by the build.sh script.
load(":config.bzl", "ADMIN_USERS")

SECURITY_CONFIG = """
  <useSecurity>true</useSecurity>
  <authorizationStrategy class="hudson.security.GlobalMatrixAuthorizationStrategy">
    %s
  </authorizationStrategy>
  <securityRealm class="org.jenkinsci.plugins.googlelogin.GoogleOAuth2SecurityRealm" plugin="google-login@1.1">
    <clientId>##SECRET:google.oauth.clientid##</clientId>
    <clientSecret>##SECRET:google.oauth.secret##</clientSecret>
    <domain>google.com</domain>
  </securityRealm>
""" % "\n".join([
    PERMS_TEMPLATE % (perm, "anonymous")
    for perm in PUBLIC_PERMS
] + [
    PERMS_TEMPLATE % (perm, "authenticated")
    for perm in AUTHENTICATED_PERMS
] + [
    PERMS_TEMPLATE % (perm, user)
    for user in ADMIN_USERS
    for perm in ADMIN_PERMS
])

#
# Finally the Jenkins image
#
jenkins_docker_build(
    name = "jenkins",
    configs = [
                  ":deploy",
                  ":jenkins-common-configs",
                  ":config/org.jenkinsci.plugins.ghprb.GhprbTrigger.xml",
              ] + jenkins_node_names(DARWIN_PREFIX, DARWIN_COUNT) +
              jenkins_node_names(WINDOWS_PREFIX, WINDOWS_COUNT) +
              jenkins_node_names(WINDOWS_MSVC_PREFIX, WINDOWS_MSVC_COUNT) +
              jenkins_node_names(UBUNTU_DOCKER_PREFIX, UBUNTU_DOCKER_COUNT) +
              jenkins_node_names(UBUNTU_1404_PREFIX, UBUNTU_1404_COUNT) +
              jenkins_node_names(UBUNTU_1404_BENCHMARK_PREFIX, UBUNTU_1404_BENCHMARK_COUNT) +
              jenkins_node_names(UBUNTU_1604_PREFIX, UBUNTU_1604_COUNT) +
              jenkins_node_names(FREEBSD_11_PREFIX, FREEBSD_11_COUNT) +
              jenkins_node_names(FREEBSD_12_PREFIX, FREEBSD_12_COUNT),
    jobs = [
        "//jenkins/jobs",
        ":CR/gerrit-verifier",
    ],
    substitutions = {
        "SECURITY_CONFIG": SECURITY_CONFIG,
        "PUBLIC_JENKINS_URL": "http://ci.bazel.io/",
    } + JOBS_SUBSTITUTIONS,
    tars = ["//jenkins/lib"],
    visibility = ["//visibility:public"],
)

jenkins_docker_build(
    name = "jenkins-staging",
    configs = [
        ":darwin-x86_64-staging",
        ":deploy-staging",
        ":freebsd-11-staging",
        ":freebsd-12-staging",
        ":jenkins-common-configs",
        ":ubuntu_14.04-x86_64-staging",
        ":ubuntu_15.10-x86_64-docker-staging",
        ":ubuntu_16.04-x86_64-staging",
        ":windows-msvc-x86_64-staging",
        ":windows-x86_64-staging",
    ],
    jobs = [
        "//jenkins/jobs:staging-jobs",
        ":CR/gerrit-verifier/staging",
    ],
    substitutions = {
        "SECURITY_CONFIG": SECURITY_CONFIG,
        "PUBLIC_JENKINS_URL": "http://ci-staging.bazel.io/",
    } + STAGING_JOBS_SUBSTITUTIONS,
    tars = ["//jenkins/lib"],
    visibility = ["//gcr:__pkg__"],
)

#
# A jenkins image for testing purpose
jenkins_docker_build(
    name = "jenkins-test",
    configs = [
        ":deploy",
        ":jenkins-common-configs",
        ":ubuntu-docker",
    ],
    jobs = [
        "//jenkins/jobs:test-jobs",
        ":CR/gerrit-verifier/test",
    ],
    substitutions = {
        "SECURITY_CONFIG": "<useSecurity>false</useSecurity>",
        "PUBLIC_JENKINS_URL": "##ENV:JENKINS_SERVER##",
    } + JOBS_SUBSTITUTIONS,
    tars = ["//jenkins/lib"],
)

filegroup(
    name = "jenkins-common-configs",
    srcs = glob(
        ["config/**"],
        exclude = ["config/org.jenkinsci.plugins.ghprb.GhprbTrigger.xml"],
    ),
)

alias(
    name = "test",
    actual = "//jenkins/test",
)
