docker-playground/ggsn-test/jenkins.sh

53 lines
1.2 KiB
Bash
Executable File

#!/bin/sh
# non-jenkins execution: assume local user name
if [ "x$REPO_USER" = "x" ]; then
REPO_USER=$USER
fi
# non-jenkins execution: put logs in /tmp
if [ "x$WORKSPACE" = "x" ]; then
WORKSPACE=/tmp
fi
NET_NAME="ggsn-tester"
echo Creating network $NET_NAME
docker network create --internal --subnet 172.18.3.0/24 $NET_NAME
VOL_BASE_DIR=`mktemp -d`
mkdir $VOL_BASE_DIR/ggsn-tester
cp GGSN_Tests.cfg $VOL_BASE_DIR/ggsn-tester/
mkdir $VOL_BASE_DIR/ggsn
cp ../osmo-ggsn-master/osmo-ggsn.cfg $VOL_BASE_DIR/ggsn/
# start container with ggsn in background
docker run --cap-add=NET_ADMIN \
--device /dev/net/tun:/dev/net/tun \
--sysctl net.ipv6.conf.all.disable_ipv6=0 \
--rm \
--network $NET_NAME --ip 172.18.3.201 \
-v $VOL_BASE_DIR/ggsn:/data \
--name ggsn -d \
$REPO_USER/osmo-ggsn-master
# start docker container with testsuite in foreground
docker run --rm \
--sysctl net.ipv6.conf.all.disable_ipv6=0 \
--network $NET_NAME --ip 172.18.3.202 \
-v $VOL_BASE_DIR/ggsn-tester:/data \
$REPO_USER/ggsn-test
# stop GGSN after test has completed
docker container stop ggsn
echo Removing network $NET_NAME
docker network remove $NET_NAME
rm -rf $WORKSPACE/logs
mkdir -p $WORKSPACE/logs
cp -a $VOL_BASE_DIR/* $WORKSPACE/logs/
#rm -rf $VOL_BASE_DIR