provisioner.bash 4.7 KB
Newer Older
Yann Garcia's avatar
Yann Garcia committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
#!/bin/bash
# Prepare environment for the build
#set -e # Exit with non 0 if any command fails
#set -vx

# Update system
sudo DEBIAN_FRONTEND=noninteractive apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y
sudo DEBIAN_FRONTEND=noninteractive apt-get install software-properties-common -y
sudo DEBIAN_FRONTEND=noninteractive add-apt-repository ppa:linuxuprising/java -y
sudo DEBIAN_FRONTEND=noninteractive apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get --allow-unauthenticated install emacs openjdk-11-jre gcc-8 g++-8 git subversion lsof ntp gdb make cmake flex bison autoconf doxygen graphviz libtool libncurses5-dev expect libssl-dev libgcrypt-dev libxml2-dev xutils-dev tcpdump libpcap-dev libwireshark-dev wget tree unzip sshpass kubuntu-desktop valgrind qt5-default qttools5-dev qtmultimedia5-dev libqt5svg5-dev vim tzdata dos2unix xsltproc -y
# Install java
#sudo DEBIAN_FRONTEND=noninteractive apt-get install oracle-java9-installer oracle-java9-set-default -y
#sudo DEBIAN_FRONTEND=noninteractive apt-get --allow-unauthenticated install oracle-java10-installer oracle-java10-set-default -y
#sudo DEBIAN_FRONTEND=noninteractive apt --fix-broken install -y
sudo DEBIAN_FRONTEND=noninteractive apt-get autoremove --purge -y
sudo DEBIAN_FRONTEND=noninteractive apt-get clean

gcc --version
g++ --version
valgrind --version
java -version

export HOME=/home/vagrant

export PATH_DEV=${HOME}/dev
export HOME_FRAMEWORKS=${HOME}/frameworks
export HOME_LIB=${HOME}/lib
export HOME_BIN=${HOME}/bin
export HOME_ETC=${HOME}/etc
export HOME_INC=${HOME}/include
export HOME_TMP=${HOME}/tmp
export HOME_DOCS=${HOME}/docs
export PATH=${HOME_BIN}:${PATH}
export LD_LIBRARY_PATH=${HOME_LIB}:/usr/local/lib:${LD_LIBRARY_PATH}

OLD_PWD=`pwd`
# Create directories
mkdir -p ${HOME_LIB}
if [ ! -d ${HOME_LIB} ]
then
    exit -1
fi
mkdir -p ${HOME_INC}
if [ ! -d ${HOME_INC} ]
then
    exit -1
fi
mkdir -p ${HOME_BIN}
if [ ! -d ${HOME_BIN} ]
then
    exit -1
fi
mkdir -p ${HOME_TMP}
if [ ! -d ${HOME_TMP} ]
then
    exit -1
fi
mkdir -p ${HOME_DOCS}
if [ ! -d ${HOME_DOCS} ]
then
    exit -1
fi
mkdir -p ${HOME_FRAMEWORKS}
if [ ! -d ${HOME_FRAMEWORKS} ]
then
    exit -1
fi
mkdir -p ${PATH_DEV}
if [ ! -d ${PATH_DEV} ]
then
    exit -1
fi

Yann Garcia's avatar
Yann Garcia committed
76
cd /home/vagrant/dev
YannGarcia's avatar
YannGarcia committed
77
git clone https://forge.etsi.org/gitlab/mec/gs032p3-ttcn-test-suite.git ./STF569_Mec
Yann Garcia's avatar
Yann Garcia committed
78 79
cd /home/vagrant/dev/STF569_Mec
cd /home/vagrant/dev/STF569_Mec/ttcn
Yann Garcia's avatar
Yann Garcia committed
80 81 82 83
git clone https://forge.etsi.org/gitlab/LIBS/LibSip.git ./LibSip
git clone https://forge.etsi.org/gitlab/LIBS/LibIms.git ./LibIms
git clone https://forge.etsi.org/gitlab/LIBS/LibCommon.git ./LibCommon
git clone -bSTF525 https://forge.etsi.org/gitlab/LIBS/LibIts ./LibIt
Yann Garcia's avatar
Yann Garcia committed
84
cd /home/etsi/dev/STF569_Mec/ttcn/LibIts
Yann Garcia's avatar
Yann Garcia committed
85 86
rm -fr asn1 t3q xsd
cd ttcn && rm -fr BTP CALM CAM Common DCC DENM GeoNetworking Ipv6OverGeoNetworking IVIM MapemSpatem Pki Security SremSsem V2G
Yann Garcia's avatar
Yann Garcia committed
87
cd /home/vagrant/dev/STF569_Mec/scripts
Yann Garcia's avatar
Yann Garcia committed
88
chmod 775 *.bash devenv.bash.*
Yann Garcia's avatar
Yann Garcia committed
89
cd /home/vagrant/dev/STF569_Mec/docker
Yann Garcia's avatar
Yann Garcia committed
90
chmod 775 *.sh
Yann Garcia's avatar
Yann Garcia committed
91
cd /home/vagrant/dev/STF569_Mec
Yann Garcia's avatar
Yann Garcia committed
92 93
chmod 775 ./.jenkins.sh
cd /home/vagrant
Yann Garcia's avatar
Yann Garcia committed
94
ln -sf /home/vagrant/dev/STF569_Mec/scripts/devenv.bash.ubuntu /home/vagrant/devenv.bash
Yann Garcia's avatar
Yann Garcia committed
95 96 97 98 99 100
. /home/vagrant/devenv.bash

# Install all frameworks

# Install osip
cd ${HOME_FRAMEWORKS}
Yann Garcia's avatar
Yann Garcia committed
101 102 103 104
git clone git://git.savannah.gnu.org/osip.git ./osip
cd ./osip
./autogen.sh
./configure --prefix=/home/vagrant
Yann Garcia's avatar
Yann Garcia committed
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
make && make install

# Install GoogleTest
cd ${HOME_FRAMEWORKS}
git clone https://github.com/google/googletest.git googletest
cd ${HOME_FRAMEWORKS}/googletest/
cmake .
make CXX=g++
sudo make install

# Install latest LCOV
cd ${HOME_FRAMEWORKS}
mkdir -p ${HOME_FRAMEWORKS}/lcov
cd ${HOME_FRAMEWORKS}/lcov
wget http://ftp.de.debian.org/debian/pool/main/l/lcov/lcov_1.13.orig.tar.gz
tar xf lcov_1.13.orig.tar.gz
sudo make -C lcov-1.13/ install

# Install lcov to coveralls conversion
sudo gem install coveralls-lcov

lcov --version
coveralls-lcov -h

# Install eclipse
cd ${HOME_FRAMEWORKS}
wget 'http://ftp.halifax.rwth-aachen.de/eclipse/technology/epp/downloads/release/oxygen/2/eclipse-cpp-oxygen-2-linux-gtk-x86_64.tar.gz' -Oeclipse-cpp-oxygen-2-linux-gtk-x86_64.tar.gz
tar -zxvf ./eclipse-cpp-oxygen-2-linux-gtk-x86_64.tar.gz
rm -f ./eclipse-cpp-oxygen-2-linux-gtk-x86_64.tar.gz

cd /home/vagrant
Yann Garcia's avatar
Yann Garcia committed
136 137 138 139
echo "" >> /home/vagrant/.bashrc
echo "export LD_LIBRARY_PATH=/home/vagrant/dev/etsi_mec/lib:$LD_LIBRARY_PATH" >> /home/vagrant/.bashrc
echo "export PATH=/home/vagrant/bin:$PATH" >> /home/vagrant/.bashrc
echo ". ~/devenv.bash" >> /home/vagrant/.bashrc
Yann Garcia's avatar
Yann Garcia committed
140 141

. /home/vagrant/.bashrc
Yann Garcia's avatar
Yann Garcia committed
142 143 144
cd /home/vagrant/dev/STF569_Mec/scripts
./build_titan.bash
. /home/vagrant/devenv.bash
Yann Garcia's avatar
Yann Garcia committed
145 146 147 148 149 150 151 152 153 154
./update_its_project.bash
cd /home/vagrant/dev/etsi_emco/src/TestCodec/objs
../bin/testcodec_generate_makefile.bash
../bin/run_all.bash

cd ${OLD_PWD}

sudo init 6

exit 0