Remote Write Config and Filter operator
[demo.git] / vnfs / DAaaS / microservices / remote-config-operator / Makefile
index 15d04b0..cdfed72 100644 (file)
@@ -12,10 +12,12 @@ VERSION := $(shell git describe --tags)
 BUILD := $(shell git rev-parse --short HEAD)
 PROJECTNAME := $(shell basename "$(pwd)")
 
-ROOTPATH := $(shell realpath "$(PWD)/../../../../../../")
 PromOP := ${PWD}/build/_output/bin/remote-config-operator
 PromOP_LOCAL := ${PromOP}-local
-IMAGE_NAME := dcr.cluster.local:32644/remote-config-operator:latest
+
+ifndef IMAGE_NAME
+override IMAGE_NAME := dcr.cluster.local:32644/remote-config-operator:latest
+endif
 
 export GO111MODULE=on
 
@@ -23,32 +25,58 @@ export GO111MODULE=on
 
 ## build: Generate the k8s and openapi artifacts using operator-sdk
 build: clean
-               GOOS=linux GOARCH=amd64
-               operator-sdk generate k8s --verbose
-               operator-sdk generate openapi --verbose
-               @operator-sdk build ${IMAGE_NAME} --verbose
-               @go build -o ${PromOP_LOCAL} remote-config-operator/cmd/manager
+       GOOS=linux GOARCH=amd64
+       @operator-sdk generate k8s --verbose
+       @operator-sdk generate openapi --verbose
+       @operator-sdk build ${IMAGE_NAME} --verbose
+       @go build -o ${PromOP_LOCAL} remote-config-operator/cmd/manager
+
+## all: Delete the image, binary, complete build, test and run coverage
+all: build test cover
+
+## debug: Build local binary for debugging
+debug:
+       @echo "Deleting ${PromOP_LOCAL} binary"
+       @rm -rf ${PromOP_LOCAL}
+       operator-sdk generate k8s --verbose
+       operator-sdk generate openapi --verbose
+       @echo "Building ${PromOP_LOCAL} binary"
+       @go build -o ${PromOP_LOCAL} remote-config-operator/cmd/manager
+
+## deploy: Build Dockerfile and publish to repository
+deploy: build test publish
 
 ## clean: clean build artifacts, image, binary
 clean:
-               @echo "Deleting the remote-config-operator binary"
-               @rm -rf ${PromOP}
-               @rm -rf ${PromOP_LOCAL}
-               @if docker images $(IMAGE_NAME) | awk '{ print $$2 }' | grep -q -F latest; then echo "Deleting the remote-config-operator docker image";  docker rmi ${IMAGE_NAME}; fi
+       @echo "Deleting the remote-config-operator binary"
+       @rm -rf ${PromOP}
+       @rm -rf ${PromOP_LOCAL}
+       @if docker images $(IMAGE_NAME) | awk '{ print $$2 }' | grep -q -F latest; then echo "Deleting the remote-config-operator docker image";  docker rmi ${IMAGE_NAME}; fi
 
 ## publish: Push docker image to registry
 publish:
        @docker push ${IMAGE_NAME}
 
+.PHONY: test
+## test: run tests
+test: clean
+       @go test -v ./...
+
+.PHONY: cover
+## cover: run tests and generate coverage report
+cover:
+       @go test ./... -coverprofile=coverage.out
+       @go tool cover -html=coverage.out -o coverage.html
+
 ## format: format source code
 format:
-               @go fmt ./...
+       @go fmt ./...
 
 .PHONY: help
 ## help: Print help message
 help: Makefile
        @echo
-       @echo " Requires Operator SDK v0.11.0+, go1.13.1+"
+       @echo " Requires Operator SDK v0.12.0+, go1.13.1+"
        @echo
        @echo " Choose a command run in "$(PROJECTNAME)":"
        @echo