#!/bin/bash set -ex if [[ -z "${CONTAINER_IMAGE}" ]]; then CONTAINER_IMAGE=gcr.io/protobuf-build/bazel/linux@sha256:2bfd061284eff8234f2fcca16d71d43c69ccf3a22206628b54c204a6a9aac277 fi cd $(dirname $0)/../.. GIT_REPO_ROOT=`pwd` ENVS=() # Check for specific versions pinned to the docker image. In these cases we # want to forward the environment variable to tests, so that they can verify # that the correct version is being picked up by Bazel. ENVS+=("--test_env=KOKORO_JAVA_VERSION") ENVS+=("--test_env=KOKORO_PYTHON_VERSION") ENVS+=("--test_env=KOKORO_RUBY_VERSION") if [ -n "$BAZEL_ENV" ]; then for env in $BAZEL_ENV; do ENVS+="--action_env=${env}" done fi function run { local CONFIG=$1 local BAZEL_CONFIG=$2 tmpfile=$(mktemp -u) rm -rf $GIT_REPO_ROOT/bazel-out $GIT_REPO_ROOT/bazel-bin rm -rf $GIT_REPO_ROOT/logs docker run \ --cidfile $tmpfile \ --cap-add=SYS_PTRACE \ -v $GIT_REPO_ROOT:/workspace \ $CONTAINER_IMAGE \ test \ $(${GIT_REPO_ROOT}/kokoro/common/bazel_flags.sh) \ ${ENVS[@]} \ $PLATFORM_CONFIG \ $BAZEL_CONFIG \ $BAZEL_EXTRA_FLAGS \ $BAZEL_TARGETS # Save logs for Kokoro docker cp \ `cat $tmpfile`:/workspace/logs $KOKORO_ARTIFACTS_DIR/$CONFIG } if [ -n "$BAZEL_CONFIGS" ]; then for config in $BAZEL_CONFIGS; do run $config "--config=$config" done else run fi