132 lines
3.7 KiB
Bash
132 lines
3.7 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
function run_test {
|
|
tinitialize "Docker-Kong test suite" "${BASH_SOURCE[0]}"
|
|
|
|
if [[ -f Dockerfile.$BASE ]]; then
|
|
docker run -i --rm -v $PWD/hadolint.yaml:/.config/hadolint.yaml hadolint/hadolint:2.7.0 < Dockerfile.$BASE
|
|
fi
|
|
|
|
if [[ -f $BASE/Dockerfile ]]; then
|
|
docker run -i --rm -v $PWD/hadolint.yaml:/.config/hadolint.yaml hadolint/hadolint:2.7.0 < $BASE/Dockerfile
|
|
fi
|
|
|
|
if [[ ! -z "${SNYK_SCAN_TOKEN}" ]]; then
|
|
docker scan --accept-license --login --token "${SNYK_SCAN_TOKEN}"
|
|
docker scan --accept-license --exclude-base --severity=high --file $BASE/Dockerfile kong-$BASE
|
|
fi
|
|
|
|
# Test the proper version was buid
|
|
tchapter "test $BASE image"
|
|
ttest "the proper version was build"
|
|
|
|
if [[ -f Dockerfile.$BASE ]]; then
|
|
version_given="$(grep 'ARG KONG_VERSION' Dockerfile.$BASE | awk -F "=" '{print $2}')"
|
|
fi
|
|
|
|
if [[ -f $BASE/Dockerfile ]]; then
|
|
version_given="$(grep 'ARG KONG_VERSION' $BASE/Dockerfile | awk -F "=" '{print $2}')"
|
|
fi
|
|
|
|
version_built="$(docker run -i --rm kong-$BASE kong version | tr -d '[:space:]')"
|
|
|
|
if [[ "$version_given" != "$version_built" ]]; then
|
|
echo "Kong version mismatch:";
|
|
echo "\tVersion given is $version_given";
|
|
echo "\tVersion built is $version_built";
|
|
tfailure
|
|
else
|
|
tsuccess
|
|
fi
|
|
|
|
ttest "Dbless Test"
|
|
|
|
pushd compose
|
|
docker-compose up -d
|
|
until docker ps -f health=healthy | grep -q ${KONG_DOCKER_TAG}; do
|
|
docker-compose up -d
|
|
docker ps
|
|
sleep 15
|
|
done
|
|
|
|
curl -I localhost:8001 | grep -E '(openresty|kong)'
|
|
if [ $? -eq 0 ]; then
|
|
tsuccess
|
|
else
|
|
tfailure
|
|
fi
|
|
|
|
docker-compose kill
|
|
docker-compose rm -f
|
|
sleep 5
|
|
docker volume prune -f
|
|
popd
|
|
|
|
ttest "Upgrade Test"
|
|
|
|
export COMPOSE_PROFILES=database
|
|
export KONG_DATABASE=postgres
|
|
pushd compose
|
|
curl -fsSL https://raw.githubusercontent.com/Kong/docker-kong/1.5.0/swarm/docker-compose.yml | KONG_DOCKER_TAG=kong:1.5.0 docker-compose -p kong -f - up -d
|
|
until docker ps -f health=healthy | grep -q kong:1.5.0; do
|
|
curl -fsSL https://raw.githubusercontent.com/Kong/docker-kong/1.5.0/swarm/docker-compose.yml | docker-compose -p kong -f - ps
|
|
docker ps
|
|
sleep 15
|
|
curl -fsSL https://raw.githubusercontent.com/Kong/docker-kong/1.5.0/swarm/docker-compose.yml | KONG_DOCKER_TAG=kong:1.5.0 docker-compose -p kong -f - up -d
|
|
done
|
|
curl -I localhost:8001 | grep 'Server: openresty'
|
|
sed -i -e 's/127.0.0.1://g' docker-compose.yml
|
|
|
|
KONG_DOCKER_TAG=${KONG_DOCKER_TAG} docker-compose -p kong up -d
|
|
until docker ps -f health=healthy | grep -q ${KONG_DOCKER_TAG}; do
|
|
docker-compose -p kong ps
|
|
docker ps
|
|
sleep 15
|
|
done
|
|
|
|
curl -I localhost:8001 | grep -E '(openresty|kong)'
|
|
if [ $? -eq 0 ]; then
|
|
tsuccess
|
|
else
|
|
tfailure
|
|
fi
|
|
|
|
echo "cleanup"
|
|
|
|
docker-compose -p kong kill
|
|
docker-compose -p kong rm -f
|
|
sleep 5
|
|
docker volume prune -f
|
|
docker system prune -y
|
|
git checkout -- docker-compose.yml
|
|
popd
|
|
|
|
# Run Kong functional tests
|
|
ttest "Kong functional test"
|
|
|
|
git clone https://github.com/Kong/kong.git || true
|
|
pushd kong
|
|
git checkout $version_given || git checkout next
|
|
popd
|
|
|
|
pushd kong-build-tools
|
|
rm -rf test/tests/01-package
|
|
docker tag kong-$BASE $BASE:$BASE
|
|
KONG_VERSION=$version_given KONG_TEST_IMAGE_NAME=kong-$BASE RESTY_IMAGE_BASE=$BASE RESTY_IMAGE_TAG=$BASE make test
|
|
if [ $? -eq 0 ]; then
|
|
tsuccess
|
|
else
|
|
tfailure
|
|
fi
|
|
popd
|
|
|
|
|
|
tfinish
|
|
}
|
|
|
|
# No need to modify anything below this comment
|
|
|
|
# shellcheck disable=SC1090 # do not follow source
|
|
[[ "$T_PROJECT_NAME" == "" ]] && set -e && if [[ -f "${1:-$(dirname "$(realpath "$0")")/test.sh}" ]]; then source "${1:-$(dirname "$(realpath "$0")")/test.sh}"; else source "${1:-$(dirname "$(realpath "$0")")/run.sh}"; fi && set +e
|
|
run_test
|