diff options
author | Damien Martin-Guillerez <dmarting@google.com> | 2017-07-27 12:14:55 +0200 |
---|---|---|
committer | Damien Martin-Guillerez <dmarting@google.com> | 2017-07-27 13:00:24 +0200 |
commit | a79ecf43aea2b5895f6a0dd9e5e915212fa70e32 (patch) | |
tree | 4315cb48e9c718c10ca3a583e5124e021a117ed4 | |
parent | 154cfb23c560f5677d6f559109b2922c62b84ae3 (diff) |
Move the configuration file for Bazel jobs to our own repository
This will allow to update the file that explains how to build
and test Bazel at the same time that Bazel evolves.
Fixes bazelbuild/continuous-integration#99
Change-Id: I2ab8641a6eb5d8cf7ea95667bd6b3af42be5a420
PiperOrigin-RevId: 163320005
-rw-r--r-- | scripts/ci/bazel-docker-tests.json | 13 | ||||
-rw-r--r-- | scripts/ci/bazel-tests.json | 138 | ||||
-rw-r--r-- | scripts/ci/bootstrap.json | 101 |
3 files changed, 252 insertions, 0 deletions
diff --git a/scripts/ci/bazel-docker-tests.json b/scripts/ci/bazel-docker-tests.json new file mode 100644 index 0000000000..cc427aa209 --- /dev/null +++ b/scripts/ci/bazel-docker-tests.json @@ -0,0 +1,13 @@ +[ + { + "node": "docker", + "variation": "", + "parameters": { + "targets": [], + "tests": [ + "//tools/cpp/...", + "filter(\"^//src/test/docker\", //src/test/...)" + ] + } + } +] diff --git a/scripts/ci/bazel-tests.json b/scripts/ci/bazel-tests.json new file mode 100644 index 0000000000..05a5279cd5 --- /dev/null +++ b/scripts/ci/bazel-tests.json @@ -0,0 +1,138 @@ +// 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", + "variation": "" + }, + { + "node": "ubuntu_16.04-x86_64", + "variation": "" + } + ], + "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/...", + "filter(\"^(?!//src/test/docker).*$\", //src/test/...)", + "//third_party/ijar/...", + "//tools/android/..." + ], + "targets": [] + } + }, { + "configurations": [ + { + "node": "freebsd-11", + "variation": "" + }, + { + "node": "freebsd-12", + "variation": "" + } + ], + "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/..." + ], + "targets": [] + } + }, { + "node": "darwin-x86_64", + "variation": "", + "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/...", + "filter(\"^(?!//src/test/docker).*$\", //src/test/...)", + "//third_party/ijar/...", + "//tools/android/..." + ], + "targets": [] + } + }, { + "toolchain": "msvc", + "configurations": [{ + "node": "windows-x86_64", + "variation": "" + }], + "parameters": { + "build_opts": [ + "--copt=-w", + "--host_copt=-w", + // TODO(pcloudy):. + // Remove it after wrapper-less CROSSTOOL becomes default + "--action_env=NO_MSVC_WRAPPER=1" + ], + "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", + ], + "test_tag_filters": ["-no_windows"], + "tests": [ + "//src/test/py/...", + "//src/test/java/...", + "//src/test/cpp/...", + "//src/test/native:all_tests", + "//src/tools/launcher/util/...", + "//src/test/shell/bazel:bazel_bootstrap_distfile_test", + "//src/test/shell/bazel:bazel_windows_example_test" + ], + "targets": ["//src:bazel"] + } + }, { + "toolchain": "msys", + "configurations": [{ + "node": "windows-x86_64", + "variation": "" + }], + "parameters": { + "build_opts": ["--cpu=x64_windows_msys", "--host_cpu=x64_windows_msys"], + "test_tag_filters": ["-no_windows"], + "tests": ["//src/test/shell/bazel:bazel_windows_example_test"], + "targets": [] + } + } +] diff --git a/scripts/ci/bootstrap.json b/scripts/ci/bootstrap.json new file mode 100644 index 0000000000..b229d23eaf --- /dev/null +++ b/scripts/ci/bootstrap.json @@ -0,0 +1,101 @@ +// Configure the nodes to bootstrap bazel on. +// See https://github.com/bazelbuild/continuous-integration/blob/master/docs/owner.md#bazel-bootstrap +[ + { + "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" + ] + } + }, + { "node": "ubuntu_16.04-x86_64", "variation": "" }, + { + "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" + ] + } + } +] |