diff options
Diffstat (limited to 'tools/run_tests/dockerize/build_interop_image.sh')
-rwxr-xr-x | tools/run_tests/dockerize/build_interop_image.sh | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/tools/run_tests/dockerize/build_interop_image.sh b/tools/run_tests/dockerize/build_interop_image.sh index dbc6bdeea5..90605d9463 100755 --- a/tools/run_tests/dockerize/build_interop_image.sh +++ b/tools/run_tests/dockerize/build_interop_image.sh @@ -28,7 +28,7 @@ set -x # GRPC_GO_ROOT - grpc-go base directory, default to '$GRPC_ROOT/../grpc-go' # GRPC_JAVA_ROOT - grpc-java base directory, default to '$GRPC_ROOT/../grpc-java' -cd `dirname $0`/../../.. +cd "$(dirname "$0")/../../.." echo "GRPC_ROOT: ${GRPC_ROOT:=$(pwd)}" MOUNT_ARGS="-v $GRPC_ROOT:/var/local/jenkins/grpc:ro" @@ -61,7 +61,7 @@ mkdir -p /tmp/ccache # Mount service account dir if available. # If service_directory does not contain the service account JSON file, # some of the tests will fail. -if [ -e $HOME/service_account ] +if [ -e "$HOME/service_account" ] then MOUNT_ARGS+=" -v $HOME/service_account:/var/local/jenkins/service_account:ro" fi @@ -70,18 +70,18 @@ fi # on OSX use md5 instead of sha1sum if which sha1sum > /dev/null; then - BASE_IMAGE=${BASE_NAME}_`sha1sum tools/dockerfile/interoptest/$BASE_NAME/Dockerfile | cut -f1 -d\ ` + BASE_IMAGE=${BASE_NAME}_$(sha1sum "tools/dockerfile/interoptest/$BASE_NAME/Dockerfile" | cut -f1 -d\ ) else - BASE_IMAGE=${BASE_NAME}_`md5 -r tools/dockerfile/interoptest/$BASE_NAME/Dockerfile | cut -f1 -d\ ` + BASE_IMAGE=${BASE_NAME}_$(md5 -r "tools/dockerfile/interoptest/$BASE_NAME/Dockerfile" | cut -f1 -d\ ) fi if [ "$DOCKERHUB_ORGANIZATION" != "" ] then BASE_IMAGE=$DOCKERHUB_ORGANIZATION/$BASE_IMAGE - time docker pull $BASE_IMAGE + time docker pull "$BASE_IMAGE" else # Make sure docker image has been built. Should be instantaneous if so. - docker build -t $BASE_IMAGE --force-rm=true tools/dockerfile/interoptest/$BASE_NAME || exit $? + docker build -t "$BASE_IMAGE" --force-rm=true "tools/dockerfile/interoptest/$BASE_NAME" || exit $? fi # Create a local branch so the child Docker script won't complain @@ -90,22 +90,28 @@ git branch -f jenkins-docker CONTAINER_NAME="build_${BASE_NAME}_$(uuidgen)" # Prepare image for interop tests, commit it on success. +# TODO: Figure out if is safe to eliminate the suppression. It's currently here +# because $MOUNT_ARGS and $BUILD_INTEROP_DOCKER_EXTRA_ARGS can have legitimate +# spaces, but the "correct" way to do this is to utilize proper arrays. +# Same for $TTY_FLAG +# shellcheck disable=SC2086 (docker run \ -e CCACHE_DIR=/tmp/ccache \ -e THIS_IS_REALLY_NEEDED='see https://github.com/docker/docker/issues/14203 for why docker is awful' \ -e THIS_IS_REALLY_NEEDED_ONCE_AGAIN='For issue 4835. See https://github.com/docker/docker/issues/14203 for why docker is awful' \ - -i $TTY_FLAG \ + -i \ + $TTY_FLAG \ $MOUNT_ARGS \ $BUILD_INTEROP_DOCKER_EXTRA_ARGS \ -v /tmp/ccache:/tmp/ccache \ - --name=$CONTAINER_NAME \ - $BASE_IMAGE \ - bash -l /var/local/jenkins/grpc/tools/dockerfile/interoptest/$BASE_NAME/build_interop.sh \ - && docker commit $CONTAINER_NAME $INTEROP_IMAGE \ + --name="$CONTAINER_NAME" \ + "$BASE_IMAGE" \ + bash -l "/var/local/jenkins/grpc/tools/dockerfile/interoptest/$BASE_NAME/build_interop.sh" \ + && docker commit "$CONTAINER_NAME" "$INTEROP_IMAGE" \ && echo "Successfully built image $INTEROP_IMAGE") EXITCODE=$? # remove intermediate container, possibly killing it first -docker rm -f $CONTAINER_NAME +docker rm -f "$CONTAINER_NAME" exit $EXITCODE |