Dynamic testing
continuous-integration/drone/push Build is failing Details

This commit is contained in:
Adam Štrauch 2021-12-04 00:58:15 +01:00
parent ff74d2b9cb
commit dcaef2db71
Signed by: cx
GPG Key ID: 018304FFA8988F8D
3 changed files with 60 additions and 23 deletions

View File

@ -10,7 +10,7 @@ build:
$(DOCKER) tag ${REPO}:dev ${REPO}:$(VERSION)
test:
DOCKER=$(DOCKER) fish ./tests2.fish
DOCKER=$(DOCKER) bash ./tests2.fish ${REPO}:$(VERSION)
squashed:
$(DOCKER) pull debian:11

View File

@ -1,22 +0,0 @@
#!/usr/bin/fish
if test -z "$DOCKER"
set DOCKER docker
end
set CONTAINER_NAME dev_test
for line in (cat Dockerfile | grep "RUN build_" | sed "s/RUN build_//" | sed "s/\.sh//" | sed "s/php8/php/")
set tech (string split " " $line)[1]
set tech_version (string split " " $line)[2]
echo "Testing $tech $tech_version"
$DOCKER run -d --rm --name $CONTAINER_NAME harbor.hq.rosti.cz/rosti/runtime:test > /dev/null; or exit 1
$DOCKER exec -e TESTMODE=1 -e MENUITEM=tech -e TECH=$tech-$tech_version $CONTAINER_NAME su app -c rosti > /dev/null; or exit 1
sleep 3
$DOCKER exec $CONTAINER_NAME curl --head http://localhost:8000 | grep "HTTP/1.1 200"; or exit 2
$DOCKER stop $CONTAINER_NAME; or exit 1
end

59
tests2.sh Normal file
View File

@ -0,0 +1,59 @@
#!/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