7e2234ace7c73df5a4e9431e9c962e14917f05fa
[osm/vim-emu.git] / utils / ci / jenkins_entrypoint.sh
1 #!/bin/bash
2 # Copyright (c) 2015 SONATA-NFV and Paderborn University
3 # ALL RIGHTS RESERVED.
4 #
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
8 #
9 # http://www.apache.org/licenses/LICENSE-2.0
10 #
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16 #
17 # Neither the name of the SONATA-NFV, Paderborn University
18 # nor the names of its contributors may be used to endorse or promote
19 # products derived from this software without specific prior written
20 # permission.
21 #
22 # This work has been performed in the framework of the SONATA project,
23 # funded by the European Commission under Grant number 671517 through
24 # the Horizon 2020 and 5G-PPP programmes. The authors would like to
25 # acknowledge the contributions of their colleagues of the SONATA
26 # partner consortium (www.sonata-nfv.eu).
27 #
28 # This is the entry point for Jenkins.
29 # Script has do be called from "son-emu" root directory, like: sudo ./utils/ci/jenkins_entrypoint.sh
30 export DOCKER_HOST="unix:///var/run/docker.sock"
31
32 # don't rely on Debian/Ubuntu Docker engine
33 apt-get remove docker-engine
34 # make sure we start from scratch
35 pip uninstall docker-py
36 pip uninstall docker
37
38 set -e
39 set -x
40
41 SON_EMU_DIR=$(pwd)
42 cd $SON_EMU_DIR/../
43
44 # prepare
45 apt-get update
46 DEBIAN_FRONTEND=noninteractive apt-get install -o Dpkg::Options::="--force-confold" --force-yes -y git ansible aptitude
47 echo "localhost ansible_connection=local" >> /etc/ansible/hosts
48
49 # install containernet
50 git clone https://github.com/containernet/containernet.git
51 CONTAINERNET_DIR=$(pwd)/containernet
52 echo "Installing containernet (will take some time ~30 minutes) ..."
53 cd $CONTAINERNET_DIR/ansible
54 ansible-playbook install.yml
55
56 # install son-emu
57 echo "Installing son-emu (will take some time) ..."
58 cd $SON_EMU_DIR/ansible
59 ansible-playbook install.yml
60
61 # execute son-emu tests at the end to validate installation
62 echo "Running son-emu unit tests to validate installation"
63 cd $SON_EMU_DIR
64 python setup.py develop
65
66 # run the unit tests
67 py.test -v src/emuvim/test/unittests
68
69