#!/usr/bin/env bash # run-oidc-test # Runs oidc auth tests. set -eu echo "Running remote MONGODB-OIDC authentication tests on $OIDC_ENV" DRIVERS_TAR_FILE=/tmp/mongo-go-driver.tar.gz # we need to statically link libc to avoid the situation where the VM has a different # version of libc go test -c -tags osusergo,netgo -ldflags '-w -extldflags "-static -lgcc -lc"' -o test ./internal/test/oidcauth rm "$DRIVERS_TAR_FILE" || true tar -cf $DRIVERS_TAR_FILE ./test tar -uf $DRIVERS_TAR_FILE ./etc rm "$DRIVERS_TAR_FILE".gz || true gzip $DRIVERS_TAR_FILE if [ $OIDC_ENV == "azure" ]; then export AZUREOIDC_DRIVERS_TAR_FILE=$DRIVERS_TAR_FILE # Define the command to run on the azure VM. # Ensure that we source the environment file created for us, set up any other variables we need, # and then run our test suite on the vm. export AZUREOIDC_TEST_CMD="PROJECT_DIRECTORY='.' OIDC_ENV=azure OIDC=oidc ./etc/run-oidc-test.sh ./test -test.v" bash ${DRIVERS_TOOLS}/.evergreen/auth_oidc/azure/run-driver-test.sh >> test.suite elif [ $OIDC_ENV == "gcp" ]; then export GCPOIDC_DRIVERS_TAR_FILE=$DRIVERS_TAR_FILE # Define the command to run on the gcp VM. # Ensure that we source the environment file created for us, set up any other variables we need, # and then run our test suite on the vm. export GCPOIDC_TEST_CMD="PROJECT_DIRECTORY='.' OIDC_ENV=gcp OIDC=oidc ./etc/run-oidc-test.sh ./test -test.v" bash ${DRIVERS_TOOLS}/.evergreen/auth_oidc/gcp/run-driver-test.sh >> test.suite elif [ $OIDC_ENV == "k8s" ]; then export K8S_VARIANT=${VARIANT} export K8S_DRIVERS_TAR_FILE=$DRIVERS_TAR_FILE export K8S_TEST_CMD="PROJECT_DIRECTORY='.' OIDC_ENV=k8s OIDC=oidc ./etc/run-oidc-test.sh ./test -test.v" bash ${DRIVERS_TOOLS}/.evergreen/auth_oidc/k8s/setup-pod.sh bash ${DRIVERS_TOOLS}/.evergreen/auth_oidc/k8s/run-driver-test.sh >> test.suite bash ${DRIVERS_TOOLS}/.evergreen/auth_oidc/k8s/teardown-pod.sh else echo "Unrecognized OIDC_ENV $OIDC_ENV" exit 1 fi