summaryrefslogtreecommitdiffstats
path: root/ci/build.sh
diff options
context:
space:
mode:
authorSwati <swatix.sharma@intel.com>2016-06-27 17:53:53 +0530
committerswatisharma <swatix.sharma@intel.com>2016-08-11 15:47:22 +0530
commit7552c26370d38ef5dd182682a0d3bf096661fe0e (patch)
tree4b989be4c6250a1b3768b99c62004d465bc9d798 /ci/build.sh
parent6ec128a4e6a1819881f8db6659d4024aac35ce38 (diff)
OPNFV KVM4NFV CICD: Scripts for creating Rpms & Debians for Kernel, Qemu
This patch contains the files for generating rpms & debians for both kernel & qemu changes, as part of kvmfornfv project development. The scripts will be triggered to build kernel-rpm & qemu-rpm packages inside centos docker, and kernel-debian & qemu-debian packages inside ubuntu docker, as part of the CICD process. After the new builds are ready, they will be deployed on the pharos testbed for verification. Later, these will be consumed/triggered by verify/daily Releng JJBs. Reference: https://wiki.opnfv.org/display/kvm/KVM4NFV+CICD+Jobs Change-Id: Ie8e8108566790a6c8db2fef1c9b5799a41732b44 Signed-off-by: Swati Sharma <swatix.sharma@intel.com>
Diffstat (limited to 'ci/build.sh')
-rwxr-xr-xci/build.sh121
1 files changed, 82 insertions, 39 deletions
diff --git a/ci/build.sh b/ci/build.sh
index d27b353bb..064c48a8b 100755
--- a/ci/build.sh
+++ b/ci/build.sh
@@ -1,50 +1,93 @@
#!/bin/bash
-kernel_src_dir=kernel
-rpmbuild_dir=/tmp/kvmfornfv_rpmbuild.$$
-artifact_dir=${rpmbuild_dir}/RPMS/x86_64
-config_file="${kernel_src_dir}/arch/x86/configs/opnfv.config"
-output_dir="$1"
-
-usage () {
- echo "usage: ${0} output_dir"
- exit 1
+#
+# Common parameter parsing for kvmfornfv scripts
+#
+function usage() {
+ echo ""
+ echo "Usage --> $0 [-p package_type] [-o output_dir] [-h]"
+ echo " package_type : centos/ubuntu/both ; default is centos"
+ echo " output_dir : stores rpm and debian packages"
+ echo " -h : Help section"
+ echo ""
}
-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 ${kernel_src_dir} ] ; then
- echo "${0}: Directory '${kernel_src_dir}' does not exist, run this script from the root of kvmfornfv source tree"
- exit 1
-fi
+output_dir=""
+type=""
-if [ ! -f ${config_file} ] ; then
- echo "${0}: ${config_file} does not exist"
- exit 1
-fi
+function build_package() {
+ choice=$1
-echo
-echo "Build"
-echo
+ case "$choice" in
+ "centos")
+ echo "Build $choice Rpms"
+ cd ci/build_rpm
+ ./build_rpms.sh
+ cd $WORKSPACE
+ ;;
+ "ubuntu")
+ echo "Build $choice Debians"
+ cd ci/build_deb
+ ./build_debs.sh
+ cd $WORKSPACE
+ ;;
+ "both")
+ echo "Build $choice Debians and Rpms"
+ cd ci/build_deb
+ ./build_debs.sh
+ cd ../build_rpm
+ ./build_rpms.sh
+ cd $WORKSPACE
+ ;;
+ *)
+ echo "Invalid package option"
+ usage
+ exit 1
+ ;;
+ esac
+}
-cp -f ${config_file} "${kernel_src_dir}/.config"
+## --- Parse command line arguments / parameters ---
+while getopts ":o:p:h" option; do
+ case $option in
+ p) # package
+ type=$OPTARG
+ ;;
+ o) # output_dir
+ output_dir=$OPTARG
+ ;;
+ :)
+ echo "Option -$OPTARG requires an argument."
+ usage
+ exit 1
+ ;;
+ h)
+ usage
+ exit 0
+ ;;
+ *)
+ echo "Unknown option: $OPTARG."
+ usage
+ exit 1
+ ;;
+ ?)
+ echo "[WARNING] Unknown parameters!!!"
+ echo "Using default values for package generation & output"
+ esac
+done
-# Make timestamp part of version string for automated kernel boot verification
-date "+-%y%m%d%H%M" > "${kernel_src_dir}/localversion-zzz"
+if [[ -z "$type" ]]
+then
+ type='centos'
+fi
-( cd ${kernel_src_dir}; make RPMOPTS="--define '_topdir ${rpmbuild_dir}'" rpm-pkg )
-if [ ${?} -ne 0 ] ; then
- echo "${0}: Kernel build failed"
- rm -rf ${rpmbuild_dir}
- exit 1
+if [[ -z "$output_dir" ]]
+then
+ output_dir=$WORKSPACE/build_output
fi
-cp -f ${artifact_dir}/* ${output_dir}
+echo ""
+echo "Building for $type package in $output_dir"
+echo ""
-rm -rf ${rpmbuild_dir}
+mkdir -p $output_dir
+build_package $type