summaryrefslogtreecommitdiffstats
path: root/ci
diff options
context:
space:
mode:
Diffstat (limited to 'ci')
-rwxr-xr-xci/build_qemu_rpm_deb/mkcontrol.sh8
-rwxr-xr-xci/build_qemu_rpm_deb/mkspec43
-rwxr-xr-xci/build_qemu_rpm_deb/mkversion10
-rw-r--r--ci/build_qemu_rpm_deb/qemu_build.sh33
-rwxr-xr-xci/build_qemu_rpm_deb/qemu_deb_build.sh30
-rwxr-xr-xci/build_qemu_rpm_deb/qemu_rpm_build.sh32
-rw-r--r--ci/envs/cyclictest.sh23
-rw-r--r--ci/test_kvmfornfv.sh44
8 files changed, 223 insertions, 0 deletions
diff --git a/ci/build_qemu_rpm_deb/mkcontrol.sh b/ci/build_qemu_rpm_deb/mkcontrol.sh
new file mode 100755
index 000000000..7eb504a0e
--- /dev/null
+++ b/ci/build_qemu_rpm_deb/mkcontrol.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+echo "Package: qemu"
+echo "Version: $1"
+echo "Section: base"
+echo "Priority: optional"
+echo "Architecture: all"
+echo "Maintainer: Intel"
+echo "Description: control file for qemu debian build on centos"
diff --git a/ci/build_qemu_rpm_deb/mkspec b/ci/build_qemu_rpm_deb/mkspec
new file mode 100755
index 000000000..0b75a181b
--- /dev/null
+++ b/ci/build_qemu_rpm_deb/mkspec
@@ -0,0 +1,43 @@
+#!/bin/sh
+#
+# Output a simple RPM spec file.
+#
+# starting to output the spec
+
+QEMURELEASE=$1
+
+__QEMURELEASE=`echo $QEMURELEASE | sed -e "s/-/_/g"`
+
+echo $srctree
+echo "Name: qemu"
+echo "Summary: The Linux qemu"
+echo "Version: $__QEMURELEASE"
+# we need to determine the NEXT version number
+# rpm -q will agree
+echo "Release: `sudo sh mkversion`"
+echo "License: GPLv2+ and LGPLv2+ and BSD"
+echo "Group: Development/Tools"
+echo "Vendor: The Linux Community"
+echo "URL: http://www.qemu.org"
+echo "Source: qemu-$__QEMURELEASE.tar.gz"
+echo "%description"
+echo "%prep"
+echo " "
+echo "%setup -q"
+echo " "
+echo "%build"
+echo "%_configure"
+echo "make"
+echo "%install"
+echo "rm -rf %{buildroot}"
+echo "make install DESTDIR=%{buildroot}"
+echo "%clean"
+echo "rm -rf %{buildroot}"
+echo "%files"
+echo "%dir"
+echo "/usr/local/share/qemu"
+echo "%doc"
+echo "/usr/local/bin/ivshmem*"
+echo "/usr/local/bin/qemu*"
+echo "/usr/local/libexec/qemu-bridge-helper"
+echo "%changelog"
diff --git a/ci/build_qemu_rpm_deb/mkversion b/ci/build_qemu_rpm_deb/mkversion
new file mode 100755
index 000000000..fa4e585b9
--- /dev/null
+++ b/ci/build_qemu_rpm_deb/mkversion
@@ -0,0 +1,10 @@
+if [ ! -f .version ]
+then
+ touch .version
+ sudo chmod 777 .version
+ echo 1 > .version
+ echo 1
+else
+ expr 0`cat .version` + 1
+ expr 0`cat .version` + 1 > .version
+fi
diff --git a/ci/build_qemu_rpm_deb/qemu_build.sh b/ci/build_qemu_rpm_deb/qemu_build.sh
new file mode 100644
index 000000000..a8863c3ca
--- /dev/null
+++ b/ci/build_qemu_rpm_deb/qemu_build.sh
@@ -0,0 +1,33 @@
+#!/bin/bash
+qemu_src_dir=qemu
+workspace=/root
+debbuild_dir=$workspace/debbuild
+rpmbuild_dir=$workspace/rpmbuild
+artifact_rpms=$rpmbuild_dir/RPMS
+artifact_dir=$artifact_rpms/x86_64
+scripts_dir=ci/build_qemu_rpm_deb
+output_dir="$1"
+VERSION=`grep -m 1 "VERSION" ${qemu_src_dir}/config-host.mak | cut -d= -f2-`
+
+usage () {
+ echo "usage: ${0} output_dir"
+ exit 1
+}
+
+if [[ -z "$@" ]]; then
+ usage
+fi
+
+if [ ! -d ${output_dir} -o ! -w ${output_dir} ] ; then
+ echo "${0}: Output directory '${output_dir}' does not exist or cannot be written"
+ exit 1
+fi
+
+if [ ! -d ${qemu_src_dir} ] ; then
+ echo "${0}: Directory '${qemu_src_dir}' does not exist, run this script from the root of kvmfornfv source tree"
+ exit 1
+fi
+
+echo
+echo "Build"
+echo
diff --git a/ci/build_qemu_rpm_deb/qemu_deb_build.sh b/ci/build_qemu_rpm_deb/qemu_deb_build.sh
new file mode 100755
index 000000000..7a830183d
--- /dev/null
+++ b/ci/build_qemu_rpm_deb/qemu_deb_build.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+#Build process for generating qemu debain file.
+
+source ci/build_qemu_rpm_deb/qemu_build.sh
+qemu_deb_build() {
+ sudo mkdir -p $debbuild_dir/qemu-$VERSION
+ sudo cp -r $qemu_src_dir $debbuild_dir/qemu-$VERSION
+ sudo mkdir -p $debbuild_dir/qemu-$VERSION/DEBIAN
+ sudo touch control
+
+#creating control file for debian build.
+ (cd ${scripts_dir}; sudo ./mkcontrol.sh $VERSION > control)
+ sudo mv $scripts_dir/control $debbuild_dir/qemu-$VERSION/DEBIAN/control
+
+#building the qemu debian with control file developed.
+ sudo dpkg-deb --build $debbuild_dir/qemu-$VERSION
+ if [ ${?} -ne 0 ] ; then
+ echo "${0}: qemu build failed"
+ exit 1
+ fi
+}
+
+if [ ! -d ${debbuild_dir} ] ; then
+ echo "creating debbuild directory"
+ sudo mkdir -p $debbuild_dir
+fi
+
+qemu_deb_build
+latest_qemu_build=`sudo ls -rt $debbuild_dir | tail -1`
+sudo cp $debbuild_dir/$latest_qemu_build build_output
diff --git a/ci/build_qemu_rpm_deb/qemu_rpm_build.sh b/ci/build_qemu_rpm_deb/qemu_rpm_build.sh
new file mode 100755
index 000000000..a52ee0f4a
--- /dev/null
+++ b/ci/build_qemu_rpm_deb/qemu_rpm_build.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+#Build process for Generating qemu rpm.
+
+source ci/build_qemu_rpm_deb/qemu_build.sh
+qemu_rpm_build() {
+ sudo cp -r ${qemu_src_dir} ${qemu_src_dir}-$VERSION
+ sudo tar -zcvf ${qemu_src_dir}-$VERSION.tar.gz ${qemu_src_dir}-$VERSION
+ sudo mv ${qemu_src_dir}-$VERSION.tar.gz ${rpmbuild_dir}/SOURCES/
+
+#create a spec file for rpm creation.
+ (cd ${scripts_dir}; ./mkspec $VERSION > qemu.spec)
+ sudo cp ${scripts_dir}/qemu.spec ${rpmbuild_dir}/SPECS/
+
+#build the qemu rpm with spec file developed
+ sudo rpmbuild -ba ${rpmbuild_dir}/SPECS/qemu.spec
+ if [ ${?} -ne 0 ] ; then
+ echo "${0}: qemu build failed"
+ exit 1
+ fi
+ sudo rm -rf ${qemu_src_dir}-$VERSION
+ sudo rm -rf ${rpmbuild_dir}/SOURCES/${qemu_src_dir}-$VERSION.tar.gz
+}
+
+if [ ! -d ${rpmbuild_dir} ] ; then
+ sudo yum install rpm-build -y
+ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
+ sudo mv rpmbuild $workspace
+fi
+
+qemu_rpm_build
+latest_qemu_build=`ls -rt $artifact_dir | grep qemu-2.6* | tail -1`
+sudo cp $artifact_dir/$latest_qemu_build build_output
diff --git a/ci/envs/cyclictest.sh b/ci/envs/cyclictest.sh
new file mode 100644
index 000000000..e4dd9931f
--- /dev/null
+++ b/ci/envs/cyclictest.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+###########################################################
+## Invoking this script from ubuntu docker container runs
+## cyclictest through yardstick
+###########################################################
+
+pod_config='/opt/pod.yaml'
+cyclictest_context_file='/opt/cyclictest-node-context.yaml'
+
+if [ ! -f ${pod_config} ] ; then
+ echo "file ${pod_config} not found"
+ exit 1
+fi
+
+if [ ! -f ${cyclictest_context_file} ] ; then
+ echo "file ${cyclictest_context_file} not found"
+ exit 1
+fi
+
+#Running cyclictest through yardstick
+yardstick task start ${cyclictest_context_file}
+mv /tmp/yardstick.out /opt/
diff --git a/ci/test_kvmfornfv.sh b/ci/test_kvmfornfv.sh
new file mode 100644
index 000000000..a33814907
--- /dev/null
+++ b/ci/test_kvmfornfv.sh
@@ -0,0 +1,44 @@
+#!/bin/bash
+
+#############################################################
+## This script will launch ubuntu docker container
+## runs cyclictest through yardstick
+## and verifies the test results.
+############################################################
+
+volume=/tmp/kvmtest-*
+if [ -d ${volume} ] ; then
+ echo "Directory '${volume}' exists"
+ sudo rm -rf ${volume}
+fi
+
+time_stamp=$(date +%Y%m%d%H%M%S)
+mkdir -p /tmp/kvmtest-${time_stamp}/{image,rpm,scripts}
+
+#copying required files to run yardstick cyclic testcase
+mv ${WORKSPACE}/build_output/* $volume/rpm
+cp ${WORKSPACE}/ci/envs/* $volume/scripts
+cp ${WORKSPACE}/tests/cyclictest-node-context.yaml $volume
+cp ${WORKSPACE}/tests/pod.yaml $volume
+
+#Launching ubuntu docker container to run yardstick
+sudo docker run -t -i -v $volume:/opt --net=host --name kvmfornfv \
+kvmfornfv:latest /bin/bash /opt/scripts/cyclictest.sh
+container_id=`sudo docker ps -a | grep kvmfornfv |awk '{print $1}'`
+sudo docker rm $container_id
+
+#Verifying the results of cyclictest
+result=`grep -o '"errors":[^,]*' $volume/yardstick.out | awk -F '"' \
+'{print $4}'| awk '{if (NF=0) print "SUCCESS" }'`
+if [ "$result" = "SUCCESS" ]; then
+ echo "####################################################"
+ echo ""
+ echo `grep -o '"data":[^}]*' $volume/yardstick.out | awk -F '{' '{print $2}'`
+ echo ""
+ echo "####################################################"
+ exit 0
+else
+ echo "Testcase failed"
+ echo `grep -o '"errors":[^,]*' $volume/yardstick.out | awk -F '"' '{print $4}'`
+ exit 1
+fi