diff options
-rwxr-xr-x | deployments/build.sh | 33 | ||||
-rw-r--r-- | deployments/docker-compose.yml | 2 | ||||
-rw-r--r-- | src/k8splugin/Makefile | 17 |
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 |