summaryrefslogtreecommitdiffstats
path: root/ci/build.sh
diff options
context:
space:
mode:
Diffstat (limited to 'ci/build.sh')
-rwxr-xr-xci/build.sh116
1 files changed, 116 insertions, 0 deletions
diff --git a/ci/build.sh b/ci/build.sh
new file mode 100755
index 0000000..61a5cc6
--- /dev/null
+++ b/ci/build.sh
@@ -0,0 +1,116 @@
+#!/bin/bash
+#
+# 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 ubuntu"
+ echo " output_dir : stores rpm and debian packages"
+ echo " -h : Help section"
+ echo ""
+}
+
+output_dir=""
+type=""
+
+function run() {
+ case $1 in
+ centos)
+ cd $WORKSPACE/ci/build_rpm
+ sudo docker build -t stor_rpm .
+ sudo docker run --privileged=true -v $WORKSPACE:/opt/stor4nfv -t stor_rpm \
+ /opt/stor4nfv/ci/build_interface.sh $1
+ ;;
+ ubuntu)
+ cd $WORKSPACE/ci/build_deb
+ sudo docker build -t stor_deb .
+ sudo docker run -v $WORKSPACE:/opt/stor4nfv -t stor_deb \
+ /opt/stor4nfv/ci/build_interface.sh $1
+ ;;
+ *) echo "Not supported system"; exit 1;;
+ esac
+}
+
+function build_package() {
+ choice=$1
+ case "$choice" in
+ "centos"|"ubuntu")
+ echo "Build $choice Rpms/Debians"
+ run $choice
+ ;;
+ "both")
+ echo "Build $choice Debians and Rpms"
+ run "centos"
+ run "ubuntu"
+ ;;
+ *)
+ echo "Invalid package option"
+ usage
+ exit 1
+ ;;
+ esac
+}
+
+## --- 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
+
+if [[ -z "$type" ]]
+then
+ type='ubuntu'
+fi
+
+if [[ -z "$output_dir" ]]
+then
+ output_dir=$WORKSPACE/build_output
+fi
+
+job_type=`echo $JOB_NAME | cut -d '-' -f 2`
+
+echo ""
+echo "Building for $type package in $output_dir"
+echo ""
+
+mkdir -p $output_dir
+build_package $type
+
+if [ $job_type == "verify" ]; then
+ if [ $type == "centos" ]; then
+ #echo "Removing kernel-debuginfo rpm from output_dir"
+ #rm -f ${output_dir}/kernel-debug*
+ echo "Checking packages in output_dir"
+ ls -lrth ${output_dir}
+ else
+ echo "Removing debug debian from output_dir"
+ rm -f ${output_dir}/*dbg*
+ echo "Checking packages in output_dir"
+ ls -lrth ${output_dir}
+ fi
+fi