mirror of
https://github.com/TECHNOFAB11/zfs-localpv.git
synced 2025-12-12 06:20:11 +01:00
Make to run go test for executing unit test cases. Removed version file, now if travis tag is set, the VERSION will be set to that tag. And if travis tag is not set, the driver version will be set to <branch-name>:<short commit hash>:<build date> Signed-off-by: Pawan <pawan@mayadata.io>
160 lines
4.4 KiB
Makefile
160 lines
4.4 KiB
Makefile
# list only csi source code directories
|
|
PACKAGES = $(shell go list ./... | grep -v 'vendor\|pkg/generated')
|
|
|
|
UNIT_TEST_PACKAGES = $(shell go list ./... | grep -v 'vendor\|pkg/generated\|tests')
|
|
|
|
# Lint our code. Reference: https://golang.org/cmd/vet/
|
|
VETARGS?=-asmdecl -atomic -bool -buildtags -copylocks -methods \
|
|
-nilfunc -printf -rangeloops -shift -structtags -unsafeptr
|
|
|
|
# Tools required for different make
|
|
# targets or for development purposes
|
|
EXTERNAL_TOOLS=\
|
|
github.com/golang/dep/cmd/dep \
|
|
golang.org/x/tools/cmd/cover \
|
|
github.com/axw/gocov/gocov \
|
|
gopkg.in/matm/v1/gocov-html \
|
|
github.com/ugorji/go/codec/codecgen \
|
|
github.com/onsi/ginkgo/ginkgo \
|
|
github.com/onsi/gomega/...
|
|
|
|
ifeq (${IMAGE_TAG}, )
|
|
IMAGE_TAG = ci
|
|
export IMAGE_TAG
|
|
endif
|
|
|
|
ifeq (${TRAVIS_TAG}, )
|
|
BASE_TAG = ci
|
|
export BASE_TAG
|
|
else
|
|
BASE_TAG = ${TRAVIS_TAG}
|
|
export BASE_TAG
|
|
endif
|
|
|
|
# Specify the name for the binary
|
|
CSI_DRIVER=zfs-driver
|
|
|
|
# Specify the date o build
|
|
BUILD_DATE = $(shell date +'%Y%m%d%H%M%S')
|
|
|
|
.PHONY: all
|
|
all: test zfs-driver-image
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
@echo "--> Cleaning Directory" ;
|
|
go clean -testcache
|
|
rm -rf bin
|
|
rm -rf ${GOPATH}/bin/${CSI_DRIVER}
|
|
rm -rf ${GOPATH}/pkg/*
|
|
|
|
.PHONY: format
|
|
format:
|
|
@echo "--> Running go fmt"
|
|
@go fmt $(PACKAGES)
|
|
|
|
.PHONY: test
|
|
test: format
|
|
@echo "--> Running go test" ;
|
|
@go test $(UNIT_TEST_PACKAGES)
|
|
|
|
# Bootstrap downloads tools required
|
|
# during build
|
|
.PHONY: bootstrap
|
|
bootstrap:
|
|
@for tool in $(EXTERNAL_TOOLS) ; do \
|
|
echo "+ Installing $$tool" ; \
|
|
go get -u $$tool; \
|
|
done
|
|
|
|
# SRC_PKG is the path of code files
|
|
SRC_PKG := github.com/openebs/zfs-localpv/pkg
|
|
|
|
# code generation for custom resources
|
|
.PHONY: kubegen
|
|
kubegen: kubegendelete deepcopy-install clientset-install lister-install informer-install
|
|
@GEN_SRC=openebs.io/core/v1alpha1 make deepcopy clientset lister informer
|
|
|
|
# deletes generated code by codegen
|
|
.PHONY: kubegendelete
|
|
kubegendelete:
|
|
@rm -rf pkg/generated/clientset
|
|
@rm -rf pkg/generated/lister
|
|
@rm -rf pkg/generated/informer
|
|
|
|
.PHONY: deepcopy-install
|
|
deepcopy-install:
|
|
@go install ./vendor/k8s.io/code-generator/cmd/deepcopy-gen
|
|
|
|
.PHONY: deepcopy
|
|
deepcopy:
|
|
@echo "+ Generating deepcopy funcs for $(GEN_SRC)"
|
|
@deepcopy-gen \
|
|
--input-dirs $(SRC_PKG)/apis/$(GEN_SRC) \
|
|
--output-file-base zz_generated.deepcopy \
|
|
--go-header-file ./buildscripts/custom-boilerplate.go.txt
|
|
|
|
.PHONY: clientset-install
|
|
clientset-install:
|
|
@go install ./vendor/k8s.io/code-generator/cmd/client-gen
|
|
|
|
.PHONY: clientset
|
|
clientset:
|
|
@echo "+ Generating clientsets for $(GEN_SRC)"
|
|
@client-gen \
|
|
--fake-clientset=true \
|
|
--input $(GEN_SRC) \
|
|
--input-base $(SRC_PKG)/apis \
|
|
--clientset-path $(SRC_PKG)/generated/clientset \
|
|
--go-header-file ./buildscripts/custom-boilerplate.go.txt
|
|
|
|
.PHONY: lister-install
|
|
lister-install:
|
|
@go install ./vendor/k8s.io/code-generator/cmd/lister-gen
|
|
|
|
.PHONY: lister
|
|
lister:
|
|
@echo "+ Generating lister for $(GEN_SRC)"
|
|
@lister-gen \
|
|
--input-dirs $(SRC_PKG)/apis/$(GEN_SRC) \
|
|
--output-package $(SRC_PKG)/generated/lister \
|
|
--go-header-file ./buildscripts/custom-boilerplate.go.txt
|
|
|
|
.PHONY: informer-install
|
|
informer-install:
|
|
@go install ./vendor/k8s.io/code-generator/cmd/informer-gen
|
|
|
|
.PHONY: informer
|
|
informer:
|
|
@echo "+ Generating informer for $(GEN_SRC)"
|
|
@informer-gen \
|
|
--input-dirs $(SRC_PKG)/apis/$(GEN_SRC) \
|
|
--versioned-clientset-package $(SRC_PKG)/generated/clientset/internalclientset \
|
|
--listers-package $(SRC_PKG)/generated/lister \
|
|
--output-package $(SRC_PKG)/generated/informer \
|
|
--go-header-file ./buildscripts/custom-boilerplate.go.txt
|
|
|
|
.PHONY: zfs-driver
|
|
zfs-driver: format
|
|
@echo "--------------------------------"
|
|
@echo "--> Building ${CSI_DRIVER} "
|
|
@echo "--------------------------------"
|
|
@PNAME=${CSI_DRIVER} CTLNAME=${CSI_DRIVER} sh -c "'$(PWD)/buildscripts/build.sh'"
|
|
|
|
.PHONY: zfs-driver-image
|
|
zfs-driver-image: zfs-driver
|
|
@echo "--------------------------------"
|
|
@echo "+ Generating ${CSI_DRIVER} image"
|
|
@echo "--------------------------------"
|
|
@cp bin/${CSI_DRIVER}/${CSI_DRIVER} buildscripts/${CSI_DRIVER}/
|
|
cd buildscripts/${CSI_DRIVER} && sudo docker build -t openebs/${CSI_DRIVER}:${IMAGE_TAG} --build-arg BUILD_DATE=${BUILD_DATE} . && sudo docker tag openebs/${CSI_DRIVER}:${IMAGE_TAG} quay.io/openebs/${CSI_DRIVER}:${IMAGE_TAG}
|
|
@rm buildscripts/${CSI_DRIVER}/${CSI_DRIVER}
|
|
|
|
.PHONY: ci
|
|
ci:
|
|
@echo "--> Running ci test";
|
|
$(PWD)/ci/ci-test.sh
|
|
# Push images
|
|
deploy-images:
|
|
@DIMAGE="openebs/zfs-driver" ./buildscripts/push
|
|
|