aboutsummaryrefslogtreecommitdiffhomepage
path: root/scripts
diff options
context:
space:
mode:
authorGravatar Damien Martin-Guillerez <dmarting@google.com>2017-07-27 12:14:55 +0200
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2017-07-27 13:00:24 +0200
commita79ecf43aea2b5895f6a0dd9e5e915212fa70e32 (patch)
tree4315cb48e9c718c10ca3a583e5124e021a117ed4 /scripts
parent154cfb23c560f5677d6f559109b2922c62b84ae3 (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
Diffstat (limited to 'scripts')
-rw-r--r--scripts/ci/bazel-docker-tests.json13
-rw-r--r--scripts/ci/bazel-tests.json138
-rw-r--r--scripts/ci/bootstrap.json101
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"
+ ]
+ }
+ }
+]