202 lines
6.0 KiB
Bash
202 lines
6.0 KiB
Bash
#!/bin/bash
|
|
|
|
function exec_docker_example() {
|
|
if [ -d "/tmp/tests/$1" ] ; then
|
|
sudo rm -rf "/tmp/tests/$1"
|
|
if [ $? -ne 0 ] ; then
|
|
return 1
|
|
fi
|
|
fi
|
|
if [ ! -d "/tmp/tests" ] ; then
|
|
mkdir /tmp/tests
|
|
if [ $? -ne 0 ] ; then
|
|
return 1
|
|
fi
|
|
fi
|
|
cp -r "examples/$1" "/tmp/tests"
|
|
if [ $? -ne 0 ] ; then
|
|
return 1
|
|
fi
|
|
current_dir="$(pwd)"
|
|
cd "/tmp/tests/$1"
|
|
sed -i 's@bunkerity/bunkerweb:.*$@10.20.1.1:5000/bw-tests:latest@g' docker-compose.yml
|
|
sed -i 's@\./bw\-data:/@/tmp/bw\-data:/@g' docker-compose.yml
|
|
sed -i 's@- bw_data:/@- /tmp/bw\-data:/@g' docker-compose.yml
|
|
find . -type f -exec sed -i "s@www.example.com@${TEST_DOMAIN1}@g" {} \;
|
|
find . -type f -exec sed -i "s@auth.example.com@${TEST_DOMAIN1}@g" {} \;
|
|
find . -type f -exec sed -i "s@app1.example.com@${TEST_DOMAIN1_1}@g" {} \;
|
|
find . -type f -exec sed -i "s@app2.example.com@${TEST_DOMAIN1_2}@g" {} \;
|
|
find . -type f -exec sed -i "s@app3.example.com@${TEST_DOMAIN1_3}@g" {} \;
|
|
find "/tmp/tests/$1" -name "www.example.com" -exec /usr/bin/rename "s/www.example.com/${TEST_DOMAIN1}/" {} \+
|
|
find "/tmp/tests/$1" -name "app1.example.com" -exec /usr/bin/rename "s/app1.example.com/${TEST_DOMAIN1_1}/" {} \+
|
|
find "/tmp/tests/$1" -name "app2.example.com" -exec /usr/bin/rename "s/app2.example.com/${TEST_DOMAIN1_2}/" {} \+
|
|
find "/tmp/tests/$1" -name "app3.example.com" -exec /usr/bin/rename "s/app3.example.com/${TEST_DOMAIN1_3}/" {} \+
|
|
if [ -f setup.sh ] ; then
|
|
sudo ./setup.sh
|
|
fi
|
|
for folder in $(echo "configs plugins www") ; do
|
|
sudo bash -c "find /tmp/bw-data/$folder -type f -exec rm -f {} \;"
|
|
done
|
|
if [ -d ./bw-data ] ; then
|
|
sudo bash -c "cp -a ./bw-data/* /tmp/bw-data"
|
|
fi
|
|
docker-compose pull > /dev/null 2>&1
|
|
ret=$(docker-compose up -d 2>&1)
|
|
if [ "$?" -ne 0 ] ; then
|
|
sudo docker-compose down -v > /dev/null 2>&1
|
|
cd "$current_dir"
|
|
sudo rm -rf "/tmp/tests/$1"
|
|
echo "$ret"
|
|
return 1
|
|
fi
|
|
cd "$current_dir"
|
|
}
|
|
|
|
function exec_swarm_example() {
|
|
if [ -d "/tmp/tests/$1" ] ; then
|
|
sudo rm -rf "/tmp/tests/$1"
|
|
if [ $? -ne 0 ] ; then
|
|
return 1
|
|
fi
|
|
fi
|
|
if [ ! -d "/tmp/tests" ] ; then
|
|
mkdir /tmp/tests
|
|
if [ $? -ne 0 ] ; then
|
|
return 1
|
|
fi
|
|
fi
|
|
cp -r "examples/$1" "/tmp/tests"
|
|
if [ $? -ne 0 ] ; then
|
|
return 1
|
|
fi
|
|
current_dir="$(pwd)"
|
|
cd "/tmp/tests/$1"
|
|
sed -i "s@www.example.com@${TEST_DOMAIN1}@g" stack.yml
|
|
sed -i "s@app1.example.com@${TEST_DOMAIN1}@g" stack.yml
|
|
sed -i "s@app2.example.com@${TEST_DOMAIN2}@g" stack.yml
|
|
sed -i "s@app3.example.com@${TEST_DOMAIN3}@g" stack.yml
|
|
sed -i "s@www.example.com@${TEST_DOMAIN1}@g" setup.sh
|
|
sed -i "s@app1.example.com@${TEST_DOMAIN1}@g" setup.sh
|
|
sed -i "s@app2.example.com@${TEST_DOMAIN2}@g" setup.sh
|
|
sed -i "s@app3.example.com@${TEST_DOMAIN3}@g" setup.sh
|
|
find "/tmp/tests/$1" -name "www.example.com" -exec /usr/bin/rename "s/www.example.com/${TEST_DOMAIN1}/" {} \+
|
|
find "/tmp/tests/$1" -name "app1.example.com" -exec /usr/bin/rename "s/app1.example.com/${TEST_DOMAIN1}/" {} \+
|
|
find "/tmp/tests/$1" -name "app2.example.com" -exec /usr/bin/rename "s/app2.example.com/${TEST_DOMAIN2}/" {} \+
|
|
find "/tmp/tests/$1" -name "app3.example.com" -exec /usr/bin/rename "s/app3.example.com/${TEST_DOMAIN3}/" {} \+
|
|
if [ -f setup.sh ] ; then
|
|
sudo ./setup.sh
|
|
fi
|
|
docker stack rm "$1" > /dev/null 2>&1
|
|
docker stack deploy -c stack.yml "$1"
|
|
if [ "$?" -ne 0 ] ; then
|
|
cd "$current_dir"
|
|
sudo rm -rf "/tmp/tests/$1"
|
|
return 1
|
|
fi
|
|
cd "$current_dir"
|
|
}
|
|
|
|
function exec_k8s_example() {
|
|
if [ -d "/tmp/tests/$1" ] ; then
|
|
sudo rm -rf "/tmp/tests/$1"
|
|
if [ $? -ne 0 ] ; then
|
|
return 1
|
|
fi
|
|
fi
|
|
if [ ! -d "/tmp/tests" ] ; then
|
|
mkdir /tmp/tests
|
|
if [ $? -ne 0 ] ; then
|
|
return 1
|
|
fi
|
|
fi
|
|
cp -r "examples/$1" "/tmp/tests"
|
|
if [ $? -ne 0 ] ; then
|
|
return 1
|
|
fi
|
|
current_dir="$(pwd)"
|
|
cd "/tmp/tests/$1"
|
|
sed -i "s@www.example.com@${TEST_DOMAIN1}@g" *.yml
|
|
sed -i "s@app1.example.com@${TEST_DOMAIN1}@g" *.yml
|
|
sed -i "s@app2.example.com@${TEST_DOMAIN2}@g" *.yml
|
|
sed -i "s@app3.example.com@${TEST_DOMAIN3}@g" *.yml
|
|
find "/tmp/tests/$1" -name "www.example.com" -exec /usr/bin/rename "s/www.example.com/${TEST_DOMAIN1}/" {} \+
|
|
find "/tmp/tests/$1" -name "app1.example.com" -exec /usr/bin/rename "s/app1.example.com/${TEST_DOMAIN1}/" {} \+
|
|
find "/tmp/tests/$1" -name "app2.example.com" -exec /usr/bin/rename "s/app2.example.com/${TEST_DOMAIN2}/" {} \+
|
|
find "/tmp/tests/$1" -name "app3.example.com" -exec /usr/bin/rename "s/app3.example.com/${TEST_DOMAIN3}/" {} \+
|
|
if [ -f setup.sh ] ; then
|
|
sudo ./setup.sh
|
|
fi
|
|
for yml in $(ls *.yml) ; do
|
|
if [ "$yml" != "ingress.yml" ] ; then
|
|
sudo kubectl delete -f "$yml" > /dev/null 2> /dev/null
|
|
sudo kubectl apply -f "$yml"
|
|
if [ $? -ne 0 ] ; then
|
|
cd "$current_dir"
|
|
sudo kubectl delete -f "/tmp/tests/$1" > /dev/null 2>&1
|
|
rm -rf "/tmp/tests/$1"
|
|
return 1
|
|
fi
|
|
fi
|
|
done
|
|
sudo kubectl delete -f "ingress.yml" > /dev/null 2> /dev/null
|
|
sudo kubectl apply -f "ingress.yml"
|
|
if [ "$?" -ne 0 ] ; then
|
|
cd "$current_dir"
|
|
sudo kubectl delete -f "/tmp/tests/$1" > /dev/null 2>&1
|
|
rm -rf "/tmp/tests/$1"
|
|
return 1
|
|
fi
|
|
cd "$current_dir"
|
|
}
|
|
|
|
function curl_assert() {
|
|
url="$1"
|
|
str="$2"
|
|
max_wait=$3
|
|
ws="$4"
|
|
if [ "$ws" != "" ] ; then
|
|
cp ./tests/utils/websocat_amd64-linux /tmp/
|
|
chmod +x /tmp/websocat_amd64-linux
|
|
fi
|
|
current_wait=0
|
|
while [ $current_wait -le $max_wait ] ; do
|
|
if [ "$ws" = "" ] ; then
|
|
data="$(curl -k -L -s --cookie /dev/null -H "User-Agent: LegitOne" "$url" | grep -i "$str")"
|
|
else
|
|
data="$(echo "test" | /tmp/websocat_amd64-linux - --text wss://test1.bunkerity.com/ws/ | grep -i "$str")"
|
|
fi
|
|
if [ "$data" != "" ] && [ $? -eq 0 ] ; then
|
|
return 0
|
|
fi
|
|
current_wait=$((current_wait+1))
|
|
sleep 1
|
|
done
|
|
return 1
|
|
}
|
|
|
|
function rm_example() {
|
|
if [ ! -d "/tmp/tests/$1" ] ; then
|
|
return 1
|
|
fi
|
|
current_dir="$(pwd)"
|
|
cd "/tmp/tests/$1"
|
|
sudo docker-compose down -v > /dev/null 2>&1
|
|
cd "$current_dir"
|
|
sudo rm -rf "/tmp/tests/$1"
|
|
}
|
|
|
|
function do_and_check_cmd() {
|
|
if [ "$CHANGE_DIR" != "" ] ; then
|
|
cd "$CHANGE_DIR"
|
|
fi
|
|
output=$("$@" 2>&1)
|
|
ret="$?"
|
|
if [ $ret -ne 0 ] ; then
|
|
echo "❌ Error from command : $*"
|
|
echo "$output"
|
|
exit $ret
|
|
fi
|
|
#echo $output
|
|
return 0
|
|
}
|