test: add CI integration script [ci skip]

This commit is contained in:
decentral1se 2024-07-03 09:57:22 +02:00
parent 1136ec5dcd
commit 32ae2499b6
Signed by: decentral1se
GPG Key ID: 03789458B3D0C410

89
scripts/tests/run-ci-int Executable file
View File

@ -0,0 +1,89 @@
#!/bin/sh
# USAGE:
#
# This script is run via the Drone CI/CD build on build.coopcloud.tech.
# However, you can run it locally. **PLEASE BE AWARE** that this scripts
# destroys resources on the swarm server you run it against. This is for
# setup/teardown for the integration test suite.
#
# export DRONE_SOURCE_BRANCH=<your-branch-name>
# ./run-ci-int
set +e
echo "========================================================================"
echo "WIPING DOCKER RESOURCES FOR A CLEAN SLATE"
echo "========================================================================"
SERVICES=$(docker service ls -q)
if [ ! -z "$SERVICES" ]; then
echo "Removing services..."
docker service rm $SERVICES
echo
fi
STACKS=$(docker stack ls --format "{{.Name}}")
if [ ! -z "$STACKS" ]; then
echo "Removing stacks..."
docker stack rm --detach=false $STACKS
echo
fi
CONTAINERS=$(docker ps -a -q)
if [ ! -z "$CONTAINERS" ]; then
echo "Stopping containers..."
docker stop $CONTAINERS
echo
fi
docker system prune --force --volumes --all
echo "========================================================================"
echo "========================================================================"
echo "CLONING ABRA"
echo "========================================================================"
rm -rf abra
git clone ssh://git@git.coopcloud.tech:2222/coop-cloud/abra.git
cd abra
echo "========================================================================"
echo "========================================================================"
echo "FETCHING ABRA BRANCH FOR TESTING"
echo "========================================================================"
if [ -z "$DRONE_SOURCE_BRANCH" ]; then
DRONE_SOURCE_BRANCH="main"
fi
git fetch --all
git checkout $DRONE_SOURCE_BRANCH
echo "========================================================================"
echo "========================================================================"
echo "BUILDING ABRA"
echo "========================================================================"
export PATH="/usr/lib/go-1.21/bin:$PATH"
make build-abra
echo "========================================================================"
echo "========================================================================"
echo "GO VERSIONING INFO"
echo "========================================================================"
go version
echo "========================================================================"
echo "========================================================================"
echo "DOCKER VERSIONING INFO"
echo "========================================================================"
docker version
echo "========================================================================"
echo "========================================================================"
echo "RUNNING THE INTEGRATION TEST SUITE"
echo "========================================================================"
export ABRA_DIR="$HOME/.abra_test"
export TERM=xterm
export TEST_SERVER=default
rm -rf "$ABRA_DIR"
bats -Tp tests/integration --filter-tags \!dns --print-output-on-failure
echo "========================================================================"