diff options
author | Qiaowei Ren <qiaowei.ren@intel.com> | 2018-01-18 12:39:37 +0800 |
---|---|---|
committer | Qiaowei Ren <qiaowei.ren@intel.com> | 2018-01-19 09:52:21 +0800 |
commit | c032cadb1e645bf60cfd9276ed2660cc602a0e25 (patch) | |
tree | aee97c7129fbd1d19d9df1d8953ef131cf4ebee4 /ci/build.sh | |
parent | 64df7bc3bc70d49153409436b411fb327691a4d5 (diff) |
build package
This patch is to build debian/centos package. Currently it only
can build ceph package and only support debian package building
from ceph official repo.
Change-Id: I702a1d28dd0101156bc3267d93510133db122613
Signed-off-by: Qiaowei Ren <qiaowei.ren@intel.com>
Diffstat (limited to 'ci/build.sh')
-rwxr-xr-x | ci/build.sh | 116 |
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 |