aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShashank Kumar Shankar <shashank.kumar.shankar@intel.com>2018-08-31 15:06:02 -0700
committerVictor Morales <victor.morales@intel.com>2018-08-31 09:33:25 -0700
commitb3eb398fef49293156658e6f9e09a78eaca45c51 (patch)
treef99084cab892c5ba8251e759c5a61f4d4f17b44b
parent2f0b896a56c6297ce3434c8d5279b3440e437f18 (diff)
Update building process
The building process differed from the build.sh script and Makefile. In other words, the docker images were created with different instructions than development process. This patch centralizes these instructions in a single source for building binaries. Change-Id: Ib214d335b0e696be6a1a09d3cb8126a75bdf2da4 Issue-ID: MULTICLOUD-301 Signed-off-by: Shashank Kumar Shankar <shashank.kumar.shankar@intel.com> Signed-off-by: Victor Morales <victor.morales@intel.com>
-rwxr-xr-xdeployments/build.sh33
-rw-r--r--deployments/docker-compose.yml2
-rw-r--r--src/k8splugin/Makefile17
3 files changed, 28 insertions, 24 deletions
diff --git a/deployments/build.sh b/deployments/build.sh
index 7c2d7379..a88ebbc7 100755
--- a/deployments/build.sh
+++ b/deployments/build.sh
@@ -10,25 +10,20 @@
set -o nounset
set -o pipefail
-set -o xtrace
-function generate_binary {
- export GOPATH="$(pwd)/../"
- rm -f k8plugin
- rm -f *.so
- pushd ../src/k8splugin/
- dep ensure -v
- popd
- for plugin in deployment namespace service; do
- CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -buildmode=plugin -a -tags netgo -o ./$plugin.so ../src/k8splugin/plugins/$plugin/plugin.go
- done
- CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -a -tags netgo -o ./k8plugin ../src/k8splugin/cmd/main.go
-}
+k8s_path="$(git rev-parse --show-toplevel)"
-function build_image {
- echo "Start build docker image."
- docker-compose build --no-cache
-}
+echo "Compiling source code"
+pushd $k8s_path/src/k8splugin/
+make
+popd
-generate_binary
-build_image
+pushd $k8s_path/deployments
+for file in k8plugin *so; do
+ rm -f $file
+ mv $k8s_path/src/k8splugin/$file .
+done
+
+echo "Starting docker building process"
+docker-compose build --no-cache
+popd
diff --git a/deployments/docker-compose.yml b/deployments/docker-compose.yml
index 0d347b13..6ae7b4ea 100644
--- a/deployments/docker-compose.yml
+++ b/deployments/docker-compose.yml
@@ -9,7 +9,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-version: '3'
+version: '2'
services:
multicloud-k8s:
diff --git a/src/k8splugin/Makefile b/src/k8splugin/Makefile
index 586eca9c..3aa8223f 100644
--- a/src/k8splugin/Makefile
+++ b/src/k8splugin/Makefile
@@ -16,11 +16,20 @@ export GOPATH ...
.PHONY: plugins
-build: clean dep plugins tests
-deploy: clean dep plugins build_binary tests
-build_binary:
- CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -tags netgo -ldflags '-w' -o ./k8plugin ./cmd/main.go
+all: clean dep
+ CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -buildmode=plugin -a -tags netgo -o ./deployment.so ./plugins/deployment/plugin.go
+ CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -buildmode=plugin -a -tags netgo -o ./namespace.so ./plugins/namespace/plugin.go
+ CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -buildmode=plugin -a -tags netgo -o ./service.so ./plugins/service/plugin.go
+
+ CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -a -tags netgo -o ./k8plugin ./cmd/main.go
+
+# The following is done this way as each patch on CI runs build and each merge runs deploy. So for build we don't need to build binary and hence
+# no need to create a static binary with additional flags. However, for generating binary, additional build flags are necessary. This if used with
+# mock plugin errors out for unit tests. So the seperation avoids the error.
+
+build: clean dep plugins tests
+deploy: build
tests:
go test -v ./... -cover