diff options
author | Adele Zhou <adelez@google.com> | 2018-06-26 10:05:54 -0700 |
---|---|---|
committer | Adele Zhou <adelez@google.com> | 2018-06-26 10:05:54 -0700 |
commit | 4ae9d8118e42c5700fb3f9601cace1b9f8b827ae (patch) | |
tree | 813d04cadd3cdec2f754a0c4bc0ac1bc5de1cc04 /tools/internal_ci | |
parent | ef4849f64c38c44bb3189f3d50f6a3464997547a (diff) |
Add asan and ubsan PR build for bazel
Diffstat (limited to 'tools/internal_ci')
-rw-r--r-- | tools/internal_ci/linux/pull_request/grpc_asan_on_foundry.sh | 19 | ||||
-rw-r--r-- | tools/internal_ci/linux/pull_request/grpc_ubsan_on_foundry.sh | 72 |
2 files changed, 91 insertions, 0 deletions
diff --git a/tools/internal_ci/linux/pull_request/grpc_asan_on_foundry.sh b/tools/internal_ci/linux/pull_request/grpc_asan_on_foundry.sh new file mode 100644 index 0000000000..791c56c086 --- /dev/null +++ b/tools/internal_ci/linux/pull_request/grpc_asan_on_foundry.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +# Copyright 2017 gRPC authors. +# +# 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. + +export UPLOAD_TEST_RESULTS=true +EXTRA_FLAGS="--copt=-gmlt --strip=never --copt=-fsanitize=address --linkopt=-fsanitize=address --test_timeout=3600" +github/grpc/tools/internal_ci/linux/grpc_bazel_on_foundry_base.sh "${EXTRA_FLAGS}" + diff --git a/tools/internal_ci/linux/pull_request/grpc_ubsan_on_foundry.sh b/tools/internal_ci/linux/pull_request/grpc_ubsan_on_foundry.sh new file mode 100644 index 0000000000..f5c12c27a3 --- /dev/null +++ b/tools/internal_ci/linux/pull_request/grpc_ubsan_on_foundry.sh @@ -0,0 +1,72 @@ +#!/usr/bin/env bash +# Copyright 2017 gRPC authors. +# +# 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. + +set -ex + +# A temporary solution to give Kokoro credentials. +# The file name 4321_grpc-testing-service needs to match auth_credential in +# the build config. +# TODO: Use keystore. +mkdir -p ${KOKORO_KEYSTORE_DIR} +cp ${KOKORO_GFILE_DIR}/GrpcTesting-d0eeee2db331.json ${KOKORO_KEYSTORE_DIR}/4321_grpc-testing-service + +temp_dir=$(mktemp -d) +ln -f "${KOKORO_GFILE_DIR}/bazel-rc-0.14.0rc5" ${temp_dir}/bazel +chmod 755 "${KOKORO_GFILE_DIR}/bazel-rc-0.14.0rc5" +export PATH="${temp_dir}:${PATH}" +# This should show ${temp_dir}/bazel +which bazel +chmod +x "${KOKORO_GFILE_DIR}/bazel_wrapper.py" + +# change to grpc repo root +cd $(dirname $0)/../../.. + +source tools/internal_ci/helper_scripts/prepare_build_linux_rc + +"${KOKORO_GFILE_DIR}/bazel_wrapper.py" \ + --host_jvm_args=-Dbazel.DigestFunction=SHA256 \ + test --jobs="200" \ + --test_timeout="3600,3600,3600,3600" \ + --test_output=errors \ + --verbose_failures=true \ + --keep_going \ + --remote_accept_cached=true \ + --spawn_strategy=remote \ + --remote_local_fallback=false \ + --remote_timeout=3600 \ + --strategy=Javac=remote \ + --strategy=Closure=remote \ + --genrule_strategy=remote \ + --experimental_strict_action_env=true \ + --experimental_remote_platform_override='properties:{name:"container-image" value:"docker://gcr.io/cloud-marketplace/google/rbe-ubuntu16-04@sha256:59bf0e191a6b5cc1ab62c2224c810681d1326bad5a27b1d36c9f40113e79da7f" }' \ + --define GRPC_PORT_ISOLATED_RUNTIME=1 \ + --copt=-gmlt \ + --strip=never \ + --copt=-fsanitize=undefined \ + --linkopt=-fsanitize=undefined \ + --crosstool_top=@com_github_bazelbuild_bazeltoolchains//configs/experimental/ubuntu16_04_clang/1.0/bazel_0.13.0/ubsan:toolchain \ + --action_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 \ + --extra_toolchains=@com_github_bazelbuild_bazeltoolchains//configs/ubuntu16_04_clang/1.0/bazel_0.13.0/cpp:cc-toolchain-clang-x86_64-default \ + --extra_execution_platforms=@com_github_bazelbuild_bazeltoolchains//configs/ubuntu16_04_clang/1.0:rbe_ubuntu1604 \ + -- //test/... || FAILED="true" + +# Sleep to let ResultStore finish writing results before querying +sleep 60 +python ./tools/run_tests/python_utils/upload_rbe_results.py + +if [ "$FAILED" != "" ] +then + exit 1 +fi |