orchestrationapi_test.go : enchanement test
[platform/core/system/edge-orchestration.git] / build.sh
1 #! /bin/bash
2
3 export BASE_DIR=$( cd "$(dirname "$0")" ; pwd )
4
5 BINARY_FILE="edge-orchestration"
6 SERVICE_DIR="/etc/systemd/system"
7 BINARY_DIR=$BASE_DIR/"src/CMain/bin"
8 RPM_SPEC_FILE="edge-orchestration.spec"
9 SERVICE_FILE="edge-orchestration.service"
10 SERVICE_FILE_x86="edge-orchestration.service.amd64"
11 DBUS_CONF_FILE="org.tizen.orchestration.conf"
12 DBUS_CONF_FILE_x86="org.tizen.orchestration.conf.amd64"
13 DBUS_SERVICE_FILE="org.tizen.orchestration.service"
14 DBUS_SERVICE_FILE_x86="org.tizen.orchestration.service.amd64"
15 DBUS_CONF_DIR="/etc/dbus-1/system.d"
16 DBUS_SERVICE_DIR="/usr/share/dbus-1/system-services"
17
18 export VERSION=`grep -w "Version" $BASE_DIR/packaging/$RPM_SPEC_FILE | awk -F ':' '{print $2}' | tr -d ' '`
19 export BUILD_DATE=$(date +%Y%m%d.%H%M)
20
21 export GOPATH=$GOPATH:$BASE_DIR:$BASE_DIR/vendor
22
23 ORG_VENDOR_DIR='vendor'
24 CUR_VENDOR_DIR='vendor/src'
25 if [ ! -d $BASE_DIR/$CUR_VENDOR_DIR ]; then
26     ln -s $BASE_DIR/$ORG_VENDOR_DIR $BASE_DIR/$CUR_VENDOR_DIR
27 fi
28
29 function install_prerequisite() {
30     echo ""
31     echo "-----------------------------------"
32     echo " Install prerequisite packages"
33     echo "-----------------------------------"
34     go get github.com/axw/gocov/gocov
35     go get github.com/matm/gocov-html
36     go get github.com/Songmu/make2help/cmd/make2help
37 }
38
39 function build_clean() {
40     echo ""
41     echo "-----------------------------------"
42     echo " Build clean"
43     echo "-----------------------------------"
44     make clean
45 }
46
47 function build_binary() {
48     echo ""
49     echo "----------------------------------------"
50     echo " Create Executable binary from GoMain"
51     echo "----------------------------------------"
52     make build-binary
53 }
54
55 function build_object() {
56     echo ""
57     echo "----------------------------------------"
58     echo " Create Static object of Orchestration"
59     echo "----------------------------------------"
60     make build-object
61 }
62
63 function build_dbus() {
64     echo ""
65     echo "----------------------------------------"
66     echo " Create Executable binary from CMain"
67     echo "----------------------------------------"
68     make build-dbus-server
69
70     echo ""
71     echo "--------------------------------------------------"
72     echo " Create Shared Object from libedge-orchestration"
73     echo "--------------------------------------------------"
74     make build-dbus-client
75 }
76
77 function build_test() {
78     echo ""
79     echo "-------------------------------------"
80     echo " Build test to calculate Coverage"
81     echo "-------------------------------------"
82     sudo systemctl stop ${SERVICE_FILE}
83     sudo systemctl status ${SERVICE_FILE}
84     mkdir -p /tmp/foo
85     make test
86 }
87
88 function lint_src_code() {
89     echo ""
90     echo "---------------------------------------"
91     echo " Analysis source code golint & go vet"
92     echo "---------------------------------------"
93     make lint
94 }
95
96 function build_package() {
97     echo ""
98     echo "------------------------------------------"
99     echo " Create Packages for Tizen from gbs build"
100     echo "------------------------------------------"
101
102     gbs -c ./.tizen.gbs.conf build -A armv7l --include-all
103
104     ### build through go toolchain
105     #gbs -c ./.tizen.gbs.conf build -A armv7l --include-all --define 'go_build ON'
106 }
107
108 function register_service() {
109     echo ""
110     echo "-----------------------------------"
111     echo "  Create Service File [SuperUser]"
112     echo "-----------------------------------"
113
114     sudo systemctl stop $SERVICE_FILE
115     sudo cp $BINARY_DIR/$BINARY_FILE /usr/bin
116     sudo cp $BASE_DIR/packaging/$SERVICE_FILE_x86 $SERVICE_DIR/$SERVICE_FILE
117     sudo cp $BASE_DIR/packaging/$DBUS_CONF_FILE_x86 $DBUS_CONF_DIR/$DBUS_CONF_FILE
118     sudo cp $BASE_DIR/packaging/$DBUS_SERVICE_FILE_x86 $DBUS_SERVICE_DIR/$DBUS_SERVICE_FILE
119     ls -al $SERVICE_DIR | grep $SERVICE_FILE
120
121     echo ""
122     echo "--------------------------------------------"
123     echo "  Create prerequisite Folder [SuperUser]"
124     echo "--------------------------------------------"
125     sudo mkdir -p /var/log/$BINARY_FILE
126     sudo mkdir -p /etc/$BINARY_FILE
127
128     echo ""
129     echo "----------------------------------------"
130     echo "  Register Edge-Orchestration Service"
131     echo "----------------------------------------"
132
133     sudo systemctl daemon-reload
134     sudo systemctl restart $SERVICE_FILE
135     sudo systemctl status $SERVICE_FILE
136 }
137
138 function build_object_arm() {
139     echo ""
140     echo ""
141     echo "**********************************"
142     echo " Target Binary arch is armv7 "
143     echo "**********************************"
144     export GOARCH=arm GOARM=7
145     export CC="arm-linux-gnueabi-gcc"
146     export ARCH=arm
147
148     build_clean
149     build_object
150 }
151
152
153 # Always executed for creating orchestration library
154 build_object_arm
155
156 if [ "$1" == "tizen" ]; then
157     build_package
158 else
159     echo ""
160     echo ""
161     echo "**********************************"
162     echo " Target Binary arch is amd64 "
163     echo "**********************************"
164     export GOARCH=amd64
165     export CC="gcc"
166     export ARCH=x86_64
167
168     case "$1" in
169         "all")
170             build_clean
171             install_prerequisite
172             build_test
173             build_object
174             build_dbus
175             build_binary
176             lint_src_code
177             register_service
178             ;;
179         "test")
180             build_test
181             ;;
182         "status")
183             sudo systemctl status ${SERVICE_FILE}
184             ;;
185         "start")
186             sudo systemctl daemon-reload
187             sudo systemctl start ${SERVICE_FILE}
188             sudo systemctl status ${SERVICE_FILE}
189             ;;
190         "stop")
191             sudo systemctl stop ${SERVICE_FILE}
192             sudo systemctl status ${SERVICE_FILE}
193             ;;
194         "restart")
195             sudo systemctl daemon-reload
196             sudo systemctl restart ${SERVICE_FILE}
197             sudo systemctl status ${SERVICE_FILE}
198             ;;
199         "")
200             build_clean
201             build_object
202             build_dbus
203             register_service
204             ;;
205         *)
206             echo "build script"
207             echo "Usage:"
208             echo "--------------------------------------------------------------"
209             echo "  $0          : build Go executable binary for amd64 "
210             echo "  $0 all      : build C executable binary for amd64  "
211             echo "  $0 tizen    : build arm packages for Tizen"
212             echo "--------------------------------------------------------------"
213             exit 0
214             ;;
215     esac
216 fi