// This is a list of configuration for the bazel-tests job.
// See https://github.com/bazelbuild/continuous-integration/blob/master/docs/owner.md#customizing-a-project.
[
    {
        "configurations": [
            {"node": "linux-x86_64"},
            {"node": "ubuntu_16.04-x86_64"}
        ],
        "parameters": {
            "configure": [
                "echo >>WORKSPACE",
                "cat >>WORKSPACE <<EOF",
                "android_sdk_repository(",
                "    name = \"androidsdk\",",
                "    path = \"${ANDROID_SDK_PATH}\",",
                ")",
                "android_ndk_repository(",
                "    name = \"androidndk\",",
                "    path = \"${ANDROID_NDK_PATH}\",",
                ")",
                "EOF"
            ],
            "tests": [
                "//scripts/...",
                "//src/test/...",
                "//third_party/ijar/...",
                "//tools/android/..."
            ],
            "test_tag_filters": ["-slow"],
            "targets": []
        }
    }, {
        "configurations": [
            {"node": "freebsd-11"},
            {"node": "freebsd-12"}
        ],
        "parameters": {
            // As configure step, we redo the USES=shebangfix of the devel/bazel
            // port. In other words, we replace every #!-line calling bash by a
            // line containing the correct path to bash on our test machines.
            "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|' \\",
                "{} +"
            ],
            "tests": [
                "//src/test/shell/integration/...",
                "let bazel=\"//src/test/shell/bazel/...\" in $bazel - filter(\"all_tests\", $bazel) - filter(\"jdk\", $bazel) - filter(\"maven\", $bazel) - filter(\"android\", $bazel) - filter(\"java\", $bazel) - filter(\"workspace\", $bazel) - filter(\"external\", $bazel) - filter(\"example\", $bazel) - filter(\"skylark_repository\", $bazel) - filter(\"repository_cache\", $bazel)"
            ],
            "test_tag_filters": ["-slow"],
            "targets": []
        }
    }, {
        "node": "darwin-x86_64",
        "parameters": {
            "configure": [
                "echo >>WORKSPACE",
                "cat >>WORKSPACE <<EOF",
                "android_sdk_repository(",
                "    name = \"androidsdk\",",
                "    path = \"${ANDROID_SDK_PATH}\",",
                ")",
                "android_ndk_repository(",
                "    name = \"androidndk\",",
                "    path = \"${ANDROID_NDK_PATH}\",",
                ")",
                "EOF"
            ],
            "build_opts": ["--define IPHONE_SDK=1"],
            "tests": [
                "//scripts/...",
                "//src/test/...",
                "//third_party/ijar/...",
                "//tools/android/..."
            ],
            "test_tag_filters": ["-slow"],
            "targets": []
        }
    }, {
        "toolchain": "msvc",
        "node": "windows-x86_64",
        "parameters": {
            "build_opts": [
                "--copt=-w",
                "--host_copt=-w"
            ],
            "test_opts": [
                // TODO(pcloudy): Remove this after TEMP is properly set.
                // A workaround for ASSERT_DEATH in gtest on Windows.
                // When running tests, Bazel doesn't set TEMP,
                // ASSERT_DEATH will try to write to C:/Windows, then fails.
                "--test_env=TEMP"
            ],
            "tests": [
                "//src:all_windows_tests"
            ],
            "targets": ["//src:bazel"]
        }
    }, {
        "toolchain": "msys",
        "node": "windows-x86_64",
        "parameters": {
            "build_opts": ["--cpu=x64_windows_msys", "--host_cpu=x64_windows_msys"],
            "test_tag_filters": [
                "-no_windows",
                "-slow"
            ],
            "tests": [],
            "targets": ["//examples/cpp:hello-world"]
        }
    }
]
