Files
fission-src/test/test.sh
T

53 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
# Unbound variables cause failure, so this readable if block instead of Parameter Expansion
if [[ ${TRAVIS_EVENT_TYPE+NOVALUE} == "cronNOVALUE" ]]
then
echo "Skipping build & test, this is cron job for fission upgrade tests"
exit 0
fi
if [ ! -f ${HOME}/.kube/config ]
then
echo "Skipping end to end tests, no cluster credentials"
exit 0
fi
source $(dirname $0)/test_utils.sh
dump_system_info
setupCIBuildEnv
while true; do
# ensure that gke cluster is now free for testing
previous_build_id=$(kubectl --namespace default get configmap in-test --ignore-not-found -o=jsonpath='{.metadata.labels.travisID}')
if [[ ! -z ${previous_build_id} ]]; then
build_state=$(curl -s -X GET https://api.travis-ci.org/build/${previous_build_id} \
-H "Authorization: token ${TRAVIS_TOKEN}" \
-H "Travis-API-Version: 3" | python -c "import sys,json; print json.load(sys.stdin)['state']")
# If previous build state is not equal to "started" or the previous build id
# equals to the current build ID means the previous build is end or restart.
# We can remove the configmap safely and start next k8s test safely.
if [[ ${TRAVIS_TOKEN} == ${previous_build_id} ]] || [[ $build_state != "started" ]]; then
kubectl --namespace default delete configmap -l travisID=${previous_build_id}
fi
fi
created=$(kubectl --namespace default create configmap in-test|grep "created"||true)
if [[ -z $created ]]; then
echo "Cluster is now in used. Retrying after 15 seconds..."
sleep 15
continue
fi
kubectl --namespace default label configmap in-test travisID=${TRAVIS_BUILD_ID}
break
done
install_and_test $REPO $IMAGE $TAG $FETCHER_IMAGE $TAG $PRUNE_INTERVAL $ROUTER_SERVICE_TYPE $SERVICE_TYPE $PRE_UPGRADE_CHECK_IMAGE