53 lines
1.8 KiB
Bash
Executable File
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_BUILD_ID} == ${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
|