Migrating CI tests to be executed inside Docker container
authorpeusterm <manuel.peuster@uni-paderborn.de>
Thu, 7 Sep 2017 14:22:16 +0000 (16:22 +0200)
committerpeusterm <manuel.peuster@uni-paderborn.de>
Thu, 7 Sep 2017 14:22:16 +0000 (16:22 +0200)
Signed-off-by: Manuel Peuster <manuel@peuster.de>
.dockerignore [new file with mode: 0644]
Dockerfile
utils/ci/jenkins_entrypoint.sh

diff --git a/.dockerignore b/.dockerignore
new file mode 100644 (file)
index 0000000..1199ee6
--- /dev/null
@@ -0,0 +1,3 @@
+*.pyc
+**/*.pyc
+**/__pycache__
index d603a5d..856d796 100755 (executable)
@@ -57,11 +57,9 @@ RUN ansible-playbook -i "localhost," -c local --skip-tags "notindocker" install.
 WORKDIR /son-emu
 RUN python setup.py develop
 
-WORKDIR /
-
 # Important: This entrypoint is required to start the OVS service
 ENTRYPOINT ["/son-emu/utils/docker/entrypoint.sh"]
-CMD ["python", "son-emu/examples/default_single_dc_topology.py"]
+CMD ["python", "examples/default_single_dc_topology.py"]
 
 # open ports for emulator APIs
 # SONATA GK
index 7e2234a..d6a3a5d 100755 (executable)
 # partner consortium (www.sonata-nfv.eu).
 # 
 # This is the entry point for Jenkins.
-# Script has do be called from "son-emu" root directory, like: sudo ./utils/ci/jenkins_entrypoint.sh
+# Script has to be called from "son-emu" root directory, like: sudo ./utils/ci/jenkins_entrypoint.sh
 export DOCKER_HOST="unix:///var/run/docker.sock"
 
 # don't rely on Debian/Ubuntu Docker engine
-apt-get remove docker-engine
+#apt-get remove docker-engine
 # make sure we start from scratch
-pip uninstall docker-py
-pip uninstall docker
+#pip uninstall docker-py
+#pip uninstall docker
 
 set -e
 set -x
 
-SON_EMU_DIR=$(pwd)
-cd $SON_EMU_DIR/../
+# install docker
+apt-get install curl apt-transport-https ca-certificates
+curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
+add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
+apt-get -qq update
+apt-get install docker-ce
+
+# build the container
+docker build -t son-emu-img .
+
+# launch the container and trigger the unit tests
+docker run --name son-emu -it --rm --privileged --pid='host' -v /var/run/docker.sock:/var/run/docker.sock son-emu-img py.test -v src/emuvim/test/unittests
+
+#
+# old way to call the tests directly on the host machine
+# 
+#SON_EMU_DIR=$(pwd)
+#cd $SON_EMU_DIR/../
 
 # prepare
-apt-get update
-DEBIAN_FRONTEND=noninteractive apt-get install -o Dpkg::Options::="--force-confold" --force-yes -y git ansible aptitude
-echo "localhost ansible_connection=local" >> /etc/ansible/hosts
+#apt-get update
+#DEBIAN_FRONTEND=noninteractive apt-get install -o Dpkg::Options::="--force-confold" --force-yes -y git ansible aptitude
+#echo "localhost ansible_connection=local" >> /etc/ansible/hosts
 
 # install containernet
-git clone https://github.com/containernet/containernet.git
-CONTAINERNET_DIR=$(pwd)/containernet
-echo "Installing containernet (will take some time ~30 minutes) ..."
-cd $CONTAINERNET_DIR/ansible
-ansible-playbook install.yml
+#git clone https://github.com/containernet/containernet.git
+#CONTAINERNET_DIR=$(pwd)/containernet
+#echo "Installing containernet (will take some time ~30 minutes) ..."
+#cd $CONTAINERNET_DIR/ansible
+#ansible-playbook install.yml
 
 # install son-emu
-echo "Installing son-emu (will take some time) ..."
-cd $SON_EMU_DIR/ansible
-ansible-playbook install.yml
+#echo "Installing son-emu (will take some time) ..."
+#cd $SON_EMU_DIR/ansible
+#ansible-playbook install.yml
 
 # execute son-emu tests at the end to validate installation
-echo "Running son-emu unit tests to validate installation"
-cd $SON_EMU_DIR
-python setup.py develop
+#echo "Running son-emu unit tests to validate installation"
+#cd $SON_EMU_DIR
+#python setup.py develop
 
 # run the unit tests
-py.test -v src/emuvim/test/unittests
+#py.test -v src/emuvim/test/unittests