// Configure the nodes to bootstrap bazel on. Possible parameters are:
//   - archive: list of file to archive as a map of target, new name. %{release_name} string will
//     be replaced by the release name. An empty list means we do not archive anything
//     (for non release build).
//   - stash: list of artifacts to stash (to be released / push but no need to keep it forever)
//   - targets: list of targets to build, in addition to //src:bazel.
//   - configure: list of configuration step to run before bazel
[
    {
        "node": "linux-x86_64",
        "variation": "",
        "parameters": {
            "archive": {
                "bazel-bin/src/bazel": "bazel",
                "bazel-bin/scripts/packages/with-jdk/install.sh": "bazel-%{release_name}-installer-linux-x86_64.sh",
                "bazel-bin/scripts/packages/without-jdk/install.sh": "bazel-%{release_name}-without-jdk-installer-linux-x86_64.sh",
                "bazel-bin/scripts/packages/debian/bazel-debian.deb": "bazel_%{release_name}-linux-x86_64.deb",
                "bazel-genfiles/bazel-distfile.zip": "bazel-%{release_name}-dist.zip"
            },
            "stash": {
                "bazel-genfiles/scripts/packages/debian/bazel.dsc": "bazel.dsc",
                "bazel-genfiles/scripts/packages/debian/bazel.tar.gz": "bazel.tar.gz",
                "bazel-genfiles/site/jekyll-tree.tar": "docs.bazel.build.tar",
                "bazel-bin/src/tools/benchmark/webapp/site.tar": "perf.bazel.build.tar.nobuild"
            },
            "targets": [
                "//scripts/packages",
                "//site:jekyll-tree",
                "//src/tools/benchmark/webapp:site"
            ]
        }
    },
    { "variation": "", "node": "ubuntu_16.04-x86_64" },
    {
        "variation": "",
        "node": "freebsd-11",
        "parameters": {
            "configure": [
                "find -E . -type f -iregex '.*(sh|txt|_stub|stub_.*|bazel|get_workspace_status|protobuf_support|_so)' \\",
                "-exec sed -i '' \\",
                "-e '1s|^\\#![[:space:]]*/bin/bash\\([[:space:]]\\)|\\#!/usr/local/bin/bash\\1|' \\",
                "-e '1s|^\\#![[:space:]]*/bin/bash$|\\#!/usr/local/bin/bash|' \\",
                "-e '1s|^\\#![[:space:]]*/usr/bin/env bash\\([[:space:]]\\)|\\#!/usr/local/bin/bash\\1|' \\",
                "-e '1s|^\\#![[:space:]]*/usr/bin/env bash$|\\#!/usr/local/bin/bash|' \\",
                "{} +"
            ],
            "archive": {"bazel-bin/src/bazel": "bazel"}
        }
    },
    {
        "variation": "",
        "node": "freebsd-12",
        "parameters": {
            "configure": [
                "find -E . -type f -iregex '.*(sh|txt|_stub|stub_.*|bazel|get_workspace_status|protobuf_support|_so)' \\",
                "-exec sed -i '' \\",
                "-e '1s|^\\#![[:space:]]*/bin/bash\\([[:space:]]\\)|\\#!/usr/local/bin/bash\\1|' \\",
                "-e '1s|^\\#![[:space:]]*/bin/bash$|\\#!/usr/local/bin/bash|' \\",
                "-e '1s|^\\#![[:space:]]*/usr/bin/env bash\\([[:space:]]\\)|\\#!/usr/local/bin/bash\\1|' \\",
                "-e '1s|^\\#![[:space:]]*/usr/bin/env bash$|\\#!/usr/local/bin/bash|' \\",
                "{} +"
            ],
            "archive": {"bazel-bin/src/bazel": "bazel"}
        }
    },
    {
        "variation": "",
        "node": "darwin-x86_64",
        "parameters": {
            "archive": {
                "bazel-bin/src/bazel": "bazel",
                "bazel-bin/scripts/packages/with-jdk/install.sh": "bazel-%{release_name}-installer-darwin-x86_64.sh",
                "bazel-bin/scripts/packages/without-jdk/install.sh": "bazel-%{release_name}-without-jdk-installer-darwin-x86_64.sh"
            },
            "targets": [
                "//scripts/packages"
            ],
            // TODO(dmarting): Do we still needs that? this could be done as an external repo
            // instead.
            "opts": ["--define IPHONE_SDK=1"]
        }
    },
    // TODO(dmarting): windows build zip with "zip -j", add it to //packages
    {
        "variation": "",
        "node": "windows-x86_64",
        "parameters": {
            "archive": {
                "bazel-bin/src/bazel": ["bazel.exe", "bazel-%{release_name}-without-jdk-windows-x86_64.exe"],
                "bazel-bin/src/bazel_with_jdk": "bazel-%{release_name}-windows-x86_64.exe",
                "bazel-genfiles/scripts/packages/bazel.zip": "bazel-%{release_name}-without-jdk-windows-x86_64.zip",
                "bazel-genfiles/scripts/packages/bazel_with_jdk.zip": "bazel-%{release_name}-windows-x86_64.zip"
            },
            "targets": [
                "//scripts/packages"
            ],
            "opts": [
                "--copt=-w",
                "--host_copt=-w",
                // TODO(pcloudy):
                // Remove it after wrapper-less CROSSTOOL becomes default
                "--action_env=NO_MSVC_WRAPPER=1"
            ]
        }
    }
]
