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