From 008775c416e1b91d29bdb1efbbec7fbf30087c74 Mon Sep 17 00:00:00 2001 From: Jan Tattermusch Date: Thu, 25 Oct 2018 21:09:17 +0200 Subject: [PATCH 1/4] stop using deprecated bazel_wrapper.py --- .../linux/grpc_bazel_on_foundry_base.sh | 8 +++----- tools/remote_build/kokoro.bazelrc | 19 ++++++++++++++++++- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/tools/internal_ci/linux/grpc_bazel_on_foundry_base.sh b/tools/internal_ci/linux/grpc_bazel_on_foundry_base.sh index 768e15b380f..4ad806c303a 100755 --- a/tools/internal_ci/linux/grpc_bazel_on_foundry_base.sh +++ b/tools/internal_ci/linux/grpc_bazel_on_foundry_base.sh @@ -21,23 +21,21 @@ set -ex mkdir -p ${KOKORO_KEYSTORE_DIR} cp ${KOKORO_GFILE_DIR}/GrpcTesting-d0eeee2db331.json ${KOKORO_KEYSTORE_DIR}/4321_grpc-testing-service +# Get latest release of bazel +# TODO(jtattermusch): replace by open-source installation of bazel temp_dir=$(mktemp -d) ln -f "${KOKORO_GFILE_DIR}/bazel-latest-release" ${temp_dir}/bazel chmod 755 "${KOKORO_GFILE_DIR}/bazel-latest-release" 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 -export KOKORO_FOUNDRY_PROJECT_ID="projects/grpc-testing/instances/default_instance" - -# TODO(adelez): implement size for test targets and change test_timeout back -"${KOKORO_GFILE_DIR}/bazel_wrapper.py" \ +bazel \ --bazelrc=tools/remote_build/kokoro.bazelrc \ test \ $@ \ diff --git a/tools/remote_build/kokoro.bazelrc b/tools/remote_build/kokoro.bazelrc index 0aacddf6631..b06fb83d112 100644 --- a/tools/remote_build/kokoro.bazelrc +++ b/tools/remote_build/kokoro.bazelrc @@ -16,8 +16,25 @@ import %workspace%/tools/remote_build/rbe_common.bazelrc +build --remote_cache=remotebuildexecution.googleapis.com +build --remote_executor=remotebuildexecution.googleapis.com +build --tls_enabled=true + +build --auth_enabled=true +# magic location where kokoro script puts the credentials +build --auth_credentials=/tmpfs/src/keystore/4321_grpc-testing-service +build --auth_scope=https://www.googleapis.com/auth/cloud-source-tools + +build --bes_backend=buildeventservice.googleapis.com +build --bes_best_effort=false +build --bes_timeout=600s +build --project_id=grpc-testing + +# required by kokoro for some reason +build --test_env=USER=anon + build --jobs=200 build --test_output=errors -build --keep_going +build --keep_going=true build --remote_accept_cached=true build --remote_local_fallback=true From 3c2f3e1eb380476fb40ea2178489e693d5a0e868 Mon Sep 17 00:00:00 2001 From: Jan Tattermusch Date: Thu, 25 Oct 2018 21:10:18 +0200 Subject: [PATCH 2/4] use set -ex in all bazel scripts --- tools/internal_ci/linux/grpc_asan_on_foundry.sh | 2 ++ tools/internal_ci/linux/grpc_bazel_on_foundry_dbg.sh | 2 ++ tools/internal_ci/linux/grpc_bazel_on_foundry_opt.sh | 2 ++ tools/internal_ci/linux/grpc_tsan_on_foundry.sh | 2 ++ tools/internal_ci/linux/grpc_ubsan_on_foundry.sh | 2 ++ tools/internal_ci/linux/pull_request/grpc_asan_on_foundry.sh | 2 ++ .../internal_ci/linux/pull_request/grpc_bazel_on_foundry_dbg.sh | 2 ++ .../internal_ci/linux/pull_request/grpc_bazel_on_foundry_opt.sh | 2 ++ tools/internal_ci/linux/pull_request/grpc_tsan_on_foundry.sh | 2 ++ tools/internal_ci/linux/pull_request/grpc_ubsan_on_foundry.sh | 2 ++ 10 files changed, 20 insertions(+) diff --git a/tools/internal_ci/linux/grpc_asan_on_foundry.sh b/tools/internal_ci/linux/grpc_asan_on_foundry.sh index 24fbdf74c23..87ec60c7c02 100755 --- a/tools/internal_ci/linux/grpc_asan_on_foundry.sh +++ b/tools/internal_ci/linux/grpc_asan_on_foundry.sh @@ -13,6 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +set -ex + export UPLOAD_TEST_RESULTS=true github/grpc/tools/internal_ci/linux/grpc_bazel_on_foundry_base.sh --config=asan --cache_test_results=no diff --git a/tools/internal_ci/linux/grpc_bazel_on_foundry_dbg.sh b/tools/internal_ci/linux/grpc_bazel_on_foundry_dbg.sh index 51cb66f5b86..d3cd9c20ccc 100644 --- a/tools/internal_ci/linux/grpc_bazel_on_foundry_dbg.sh +++ b/tools/internal_ci/linux/grpc_bazel_on_foundry_dbg.sh @@ -13,6 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +set -ex + export UPLOAD_TEST_RESULTS=true EXTRA_FLAGS="-c dbg --test_timeout=300,450,1200,3600 --cache_test_results=no" github/grpc/tools/internal_ci/linux/grpc_bazel_on_foundry_base.sh "${EXTRA_FLAGS}" diff --git a/tools/internal_ci/linux/grpc_bazel_on_foundry_opt.sh b/tools/internal_ci/linux/grpc_bazel_on_foundry_opt.sh index cbba9067ad3..48b3f9e6743 100644 --- a/tools/internal_ci/linux/grpc_bazel_on_foundry_opt.sh +++ b/tools/internal_ci/linux/grpc_bazel_on_foundry_opt.sh @@ -13,6 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +set -ex + export UPLOAD_TEST_RESULTS=true EXTRA_FLAGS="-c opt --test_timeout=300,450,1200,3600 --cache_test_results=no" github/grpc/tools/internal_ci/linux/grpc_bazel_on_foundry_base.sh "${EXTRA_FLAGS}" diff --git a/tools/internal_ci/linux/grpc_tsan_on_foundry.sh b/tools/internal_ci/linux/grpc_tsan_on_foundry.sh index 7686794784b..fcf3095d481 100644 --- a/tools/internal_ci/linux/grpc_tsan_on_foundry.sh +++ b/tools/internal_ci/linux/grpc_tsan_on_foundry.sh @@ -13,5 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +set -ex + export UPLOAD_TEST_RESULTS=true github/grpc/tools/internal_ci/linux/grpc_bazel_on_foundry_base.sh --config=tsan --cache_test_results=no diff --git a/tools/internal_ci/linux/grpc_ubsan_on_foundry.sh b/tools/internal_ci/linux/grpc_ubsan_on_foundry.sh index 4350cb1ba5b..f45be4d1c95 100644 --- a/tools/internal_ci/linux/grpc_ubsan_on_foundry.sh +++ b/tools/internal_ci/linux/grpc_ubsan_on_foundry.sh @@ -13,5 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +set -ex + export UPLOAD_TEST_RESULTS=true github/grpc/tools/internal_ci/linux/grpc_bazel_on_foundry_base.sh --config=ubsan --cache_test_results=no 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 index 84b65a3eb1e..00f92921de6 100644 --- a/tools/internal_ci/linux/pull_request/grpc_asan_on_foundry.sh +++ b/tools/internal_ci/linux/pull_request/grpc_asan_on_foundry.sh @@ -13,5 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +set -ex + github/grpc/tools/internal_ci/linux/grpc_bazel_on_foundry_base.sh --config=asan diff --git a/tools/internal_ci/linux/pull_request/grpc_bazel_on_foundry_dbg.sh b/tools/internal_ci/linux/pull_request/grpc_bazel_on_foundry_dbg.sh index 8e2aaebaee7..eb1c7320a71 100644 --- a/tools/internal_ci/linux/pull_request/grpc_bazel_on_foundry_dbg.sh +++ b/tools/internal_ci/linux/pull_request/grpc_bazel_on_foundry_dbg.sh @@ -13,5 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +set -ex + EXTRA_FLAGS="-c dbg --test_timeout=300,450,1200,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_bazel_on_foundry_opt.sh b/tools/internal_ci/linux/pull_request/grpc_bazel_on_foundry_opt.sh index ded0d368a5c..f179dc9483a 100644 --- a/tools/internal_ci/linux/pull_request/grpc_bazel_on_foundry_opt.sh +++ b/tools/internal_ci/linux/pull_request/grpc_bazel_on_foundry_opt.sh @@ -13,5 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +set -ex + EXTRA_FLAGS="-c opt --test_timeout=300,450,1200,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_tsan_on_foundry.sh b/tools/internal_ci/linux/pull_request/grpc_tsan_on_foundry.sh index 4a9687f7e2a..f3e98e63da8 100644 --- a/tools/internal_ci/linux/pull_request/grpc_tsan_on_foundry.sh +++ b/tools/internal_ci/linux/pull_request/grpc_tsan_on_foundry.sh @@ -13,4 +13,6 @@ # See the License for the specific language governing permissions and # limitations under the License. +set -ex + github/grpc/tools/internal_ci/linux/grpc_bazel_on_foundry_base.sh --config=tsan 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 index fb69d736353..b94935eab11 100644 --- a/tools/internal_ci/linux/pull_request/grpc_ubsan_on_foundry.sh +++ b/tools/internal_ci/linux/pull_request/grpc_ubsan_on_foundry.sh @@ -13,4 +13,6 @@ # See the License for the specific language governing permissions and # limitations under the License. +set -ex + github/grpc/tools/internal_ci/linux/grpc_bazel_on_foundry_base.sh --config=ubsan From 49650ef596e9b3b2830483be3f8bd3e4123435f6 Mon Sep 17 00:00:00 2001 From: Jan Tattermusch Date: Fri, 26 Oct 2018 08:51:41 +0200 Subject: [PATCH 3/4] post bazel invocation details from kokoro rbe jobs --- tools/internal_ci/linux/grpc_bazel_on_foundry_base.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/internal_ci/linux/grpc_bazel_on_foundry_base.sh b/tools/internal_ci/linux/grpc_bazel_on_foundry_base.sh index 4ad806c303a..c5eb9b398ba 100755 --- a/tools/internal_ci/linux/grpc_bazel_on_foundry_base.sh +++ b/tools/internal_ci/linux/grpc_bazel_on_foundry_base.sh @@ -35,6 +35,12 @@ cd $(dirname $0)/../../.. source tools/internal_ci/helper_scripts/prepare_build_linux_rc +# to get "bazel" link for kokoro build, we need to generate +# invocation UUID, set an env var for bazel to pick it up +# and upload "bazel_invocation_ids" file as artifact. +export BAZEL_INTERNAL_INVOCATION_ID="$(uuidgen)" +echo "${BAZEL_INTERNAL_INVOCATION_ID}" >"${KOKORO_ARTIFACTS_DIR}/bazel_invocation_ids" + bazel \ --bazelrc=tools/remote_build/kokoro.bazelrc \ test \ From ec36ca0df6dcd76937243151d1614b3ebab1dabf Mon Sep 17 00:00:00 2001 From: Jan Tattermusch Date: Fri, 26 Oct 2018 08:55:47 +0200 Subject: [PATCH 4/4] do not mention bazel_wrapper.py --- tools/run_tests/python_utils/upload_rbe_results.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/run_tests/python_utils/upload_rbe_results.py b/tools/run_tests/python_utils/upload_rbe_results.py index 74f329048fc..3f3bd382bb6 100644 --- a/tools/run_tests/python_utils/upload_rbe_results.py +++ b/tools/run_tests/python_utils/upload_rbe_results.py @@ -62,7 +62,7 @@ def _get_invocation_id(): bazel_id_directory = os.getenv('KOKORO_ARTIFACTS_DIR') bazel_id_file = os.path.join(bazel_id_directory, 'bazel_invocation_ids') assert os.path.isfile(bazel_id_file), 'bazel_invocation_ids file, written ' \ - 'by bazel_wrapper.py, expected but not found.' + 'by RBE initialization script, expected but not found.' with open(bazel_id_file, 'r') as f: return f.read().replace('\n', '')