From: peusterm Date: Thu, 7 Sep 2017 14:22:16 +0000 (+0200) Subject: Migrating CI tests to be executed inside Docker container X-Git-Tag: v3.1~10^2~2 X-Git-Url: https://osm.etsi.org/gitweb/?a=commitdiff_plain;h=9db5720aee118d414d1a4f84780b16f28bc557f7;p=osm%2Fvim-emu.git Migrating CI tests to be executed inside Docker container Signed-off-by: Manuel Peuster --- diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..1199ee6 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +*.pyc +**/*.pyc +**/__pycache__ diff --git a/Dockerfile b/Dockerfile index d603a5d..856d796 100755 --- a/Dockerfile +++ b/Dockerfile @@ -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 diff --git a/utils/ci/jenkins_entrypoint.sh b/utils/ci/jenkins_entrypoint.sh index 7e2234a..d6a3a5d 100755 --- a/utils/ci/jenkins_entrypoint.sh +++ b/utils/ci/jenkins_entrypoint.sh @@ -26,44 +26,60 @@ # 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