github.com/snowflakedb/gosnowflake@v1.9.0/ci/test.sh (about) 1 #!/bin/bash 2 # 3 # Test Golang driver 4 # 5 set -e 6 set -o pipefail 7 8 CI_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 9 10 if [[ -n "$JENKINS_HOME" ]]; then 11 ROOT_DIR="$(cd "${CI_DIR}/.." && pwd)" 12 export WORKSPACE=${WORKSPACE:-/tmp} 13 14 source $CI_DIR/_init.sh 15 source $CI_DIR/scripts/login_internal_docker.sh 16 17 echo "Use /sbin/ip" 18 IP_ADDR=$(/sbin/ip -4 addr show scope global dev eth0 | grep inet | awk '{print $2}' | cut -d / -f 1) 19 20 declare -A TARGET_TEST_IMAGES 21 if [[ -n "$TARGET_DOCKER_TEST_IMAGE" ]]; then 22 echo "[INFO] TARGET_DOCKER_TEST_IMAGE: $TARGET_DOCKER_TEST_IMAGE" 23 IMAGE_NAME=${TEST_IMAGE_NAMES[$TARGET_DOCKER_TEST_IMAGE]} 24 if [[ -z "$IMAGE_NAME" ]]; then 25 echo "[ERROR] The target platform $TARGET_DOCKER_TEST_IMAGE doesn't exist. Check $CI_DIR/_init.sh" 26 exit 1 27 fi 28 TARGET_TEST_IMAGES=([$TARGET_DOCKER_TEST_IMAGE]=$IMAGE_NAME) 29 else 30 echo "[ERROR] Set TARGET_DOCKER_TEST_IMAGE to the docker image name to run the test" 31 for name in "${!TEST_IMAGE_NAMES[@]}"; do 32 echo " " $name 33 done 34 exit 2 35 fi 36 37 for name in "${!TARGET_TEST_IMAGES[@]}"; do 38 echo "[INFO] Testing $DRIVER_NAME on $name" 39 docker container run \ 40 --rm \ 41 --add-host=snowflake.reg.local:${IP_ADDR} \ 42 --add-host=s3testaccount.reg.local:${IP_ADDR} \ 43 -v $ROOT_DIR:/mnt/host \ 44 -v $WORKSPACE:/mnt/workspace \ 45 -e LOCAL_USER_ID=$(id -u ${USER}) \ 46 -e GIT_COMMIT \ 47 -e GIT_BRANCH \ 48 -e GIT_URL \ 49 -e AWS_ACCESS_KEY_ID \ 50 -e AWS_SECRET_ACCESS_KEY \ 51 -e GITHUB_ACTIONS \ 52 -e GITHUB_SHA \ 53 -e GITHUB_REF \ 54 -e RUNNER_TRACKING_ID \ 55 -e JOB_NAME \ 56 -e BUILD_NUMBER \ 57 -e JENKINS_HOME \ 58 ${TEST_IMAGE_NAMES[$name]} \ 59 /mnt/host/ci/container/test_component.sh 60 echo "[INFO] Test Results: $WORKSPACE/junit.xml" 61 done 62 else 63 source $CI_DIR/scripts/setup_connection_parameters.sh 64 cd $CI_DIR/.. 65 make test 66 fi