| #!/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 |