OPNFV KVM4NFV CICD: Scripts for creating Rpms & Debians for Kernel, Qemu
[kvmfornfv.git] / ci / build.sh
1 #!/bin/bash
2 #
3 # Common parameter parsing for kvmfornfv scripts
4 #
5 function usage() {
6     echo ""
7     echo "Usage --> $0 [-p package_type] [-o output_dir] [-h]"
8     echo "  package_type : centos/ubuntu/both ;  default is centos"
9     echo "  output_dir : stores rpm and debian packages"
10     echo "  -h : Help section"
11     echo ""
12 }
13
14 output_dir=""
15 type=""
16
17 function build_package() {
18     choice=$1
19
20     case "$choice" in
21         "centos")
22             echo "Build $choice Rpms"
23             cd ci/build_rpm
24             ./build_rpms.sh
25             cd $WORKSPACE
26         ;;
27         "ubuntu")
28             echo "Build $choice Debians"
29             cd ci/build_deb
30             ./build_debs.sh
31             cd $WORKSPACE
32         ;;
33         "both")
34             echo "Build $choice Debians and Rpms"
35             cd ci/build_deb
36             ./build_debs.sh
37             cd ../build_rpm
38             ./build_rpms.sh
39             cd $WORKSPACE
40         ;;
41         *)
42             echo "Invalid package option"
43             usage
44             exit 1
45         ;;
46     esac
47 }
48
49 ##  --- Parse command line arguments / parameters ---
50 while getopts ":o:p:h" option; do
51     case $option in
52         p) # package
53           type=$OPTARG
54           ;;
55         o) # output_dir
56           output_dir=$OPTARG
57           ;;
58         :)
59           echo "Option -$OPTARG requires an argument."
60           usage
61           exit 1
62           ;;
63         h)
64           usage
65           exit 0
66           ;;
67         *)
68           echo "Unknown option: $OPTARG."
69           usage
70           exit 1
71           ;;
72         ?)
73           echo "[WARNING] Unknown parameters!!!"
74           echo "Using default values for package generation & output"
75     esac
76 done
77
78 if [[ -z "$type" ]]
79 then
80     type='centos'
81 fi
82
83 if [[ -z "$output_dir" ]]
84 then
85     output_dir=$WORKSPACE/build_output
86 fi
87
88 echo ""
89 echo "Building for $type package in $output_dir"
90 echo ""
91
92 mkdir -p $output_dir
93 build_package $type