#!/bin/bash IMAGE=$1 if [ -z "$1" ]; then IMAGE=harbor.hq.rosti.cz/rosti/runtime:test fi RCol='\e[0m' # Text Reset # Regular Bold Underline High Intensity BoldHigh Intens Background High Intensity Backgrounds Bla='\e[0;30m'; BBla='\e[1;30m'; UBla='\e[4;30m'; IBla='\e[0;90m'; BIBla='\e[1;90m'; On_Bla='\e[40m'; On_IBla='\e[0;100m'; Red='\e[0;31m'; BRed='\e[1;31m'; URed='\e[4;31m'; IRed='\e[0;91m'; BIRed='\e[1;91m'; On_Red='\e[41m'; On_IRed='\e[0;101m'; Gre='\e[0;32m'; BGre='\e[1;32m'; UGre='\e[4;32m'; IGre='\e[0;92m'; BIGre='\e[1;92m'; On_Gre='\e[42m'; On_IGre='\e[0;102m'; Yel='\e[0;33m'; BYel='\e[1;33m'; UYel='\e[4;33m'; IYel='\e[0;93m'; BIYel='\e[1;93m'; On_Yel='\e[43m'; On_IYel='\e[0;103m'; Blu='\e[0;34m'; BBlu='\e[1;34m'; UBlu='\e[4;34m'; IBlu='\e[0;94m'; BIBlu='\e[1;94m'; On_Blu='\e[44m'; On_IBlu='\e[0;104m'; Pur='\e[0;35m'; BPur='\e[1;35m'; UPur='\e[4;35m'; IPur='\e[0;95m'; BIPur='\e[1;95m'; On_Pur='\e[45m'; On_IPur='\e[0;105m'; Cya='\e[0;36m'; BCya='\e[1;36m'; UCya='\e[4;36m'; ICya='\e[0;96m'; BICya='\e[1;96m'; On_Cya='\e[46m'; On_ICya='\e[0;106m'; Whi='\e[0;37m'; BWhi='\e[1;37m'; UWhi='\e[4;37m'; IWhi='\e[0;97m'; BIWhi='\e[1;97m'; On_Whi='\e[47m'; On_IWhi='\e[0;107m'; if test -z "$DOCKER"; then DOCKER=docker fi CONTAINER_NAME=dev_test $DOCKER stop $CONTAINER_NAME &>/dev/null COUNT=`cat Dockerfile | grep "RUN build_" | sed "s/RUN build_//" | sed "s/\.sh//" | sed "s/php8/php/" | wc -l` I=1 cat Dockerfile | grep "RUN build_" | sed "s/RUN build_//" | sed "s/\.sh//" | sed "s/php8/php/" | \ while read line do tech=`echo $line | cut -d " " -f 1` tech_version=`echo $line | cut -d " " -f 2` echo -e "${BRed}:: ($I/$COUNT) ${Yel}Testing ${BWhi}$tech ${Gre}$tech_version${RCol}" set -e echo -e "${BRed}.. ${Yel}starting test container${RCol}" $DOCKER run -d --rm --name $CONTAINER_NAME $IMAGE > /dev/null || exit 1 echo -e "${BRed}.. ${Yel}ten seconds sleep${RCol}" sleep 10 echo -e "${BRed}.. ${Yel}setting up the tech${RCol}" $DOCKER exec -e TESTMODE=1 -e MENUITEM=tech -e TECH=$tech-$tech_version $CONTAINER_NAME su app -c rosti > /dev/null || exit 1 echo -e "${BRed}.. ${Yel}three seconds sleep${RCol}" sleep 3 echo -e "${BRed}.. ${Yel}trying to get HTTP status code 200${RCol}" $DOCKER exec $CONTAINER_NAME curl --head http://localhost:8000 | grep "HTTP/1.1 200" || exit 2 set +e echo -e "${BRed}.. ${Yel}cleaning this round${RCol}" $DOCKER stop $CONTAINER_NAME &>/dev/null || exit 1 ((I++)) done