66 lines
2.0 KiB
Makefile
66 lines
2.0 KiB
Makefile
CURRENT_DIR=$(shell pwd)
|
|
# Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set)
|
|
ifeq (,$(shell go env GOBIN))
|
|
GOBIN=$(shell go env GOPATH)/bin
|
|
else
|
|
GOBIN=$(shell go env GOBIN)
|
|
endif
|
|
|
|
# Run go vet against code
|
|
vet:
|
|
go vet ./...
|
|
|
|
# Generate code
|
|
generate: controller-gen
|
|
$(CONTROLLER_GEN) object:headerFile="hack/boilerplate.go.txt" paths="./..."
|
|
@hack/generate_client.sh
|
|
|
|
CONTROLLER_GEN = $(shell pwd)/bin/controller-gen
|
|
controller-gen: ## Download controller-gen locally if necessary.
|
|
ifeq ("$(shell $(CONTROLLER_GEN) --version 2> /dev/null)", "Version: v0.7.0")
|
|
else
|
|
rm -rf $(CONTROLLER_GEN)
|
|
$(call go-get-tool,$(CONTROLLER_GEN),sigs.k8s.io/controller-tools/cmd/controller-gen@v0.7.0)
|
|
endif
|
|
|
|
OPENAPI_GEN = $(shell pwd)/bin/openapi-gen
|
|
module=$(shell go list -f '{{.Module}}' k8s.io/kube-openapi/cmd/openapi-gen | awk '{print $$1}')
|
|
module_version=$(shell go list -m $(module) | awk '{print $$NF}' | head -1)
|
|
openapi-gen: ## Download openapi-gen locally if necessary.
|
|
ifeq ("$(shell command -v $(OPENAPI_GEN) 2> /dev/null)", "")
|
|
$(call go-get-tool,$(OPENAPI_GEN),k8s.io/kube-openapi/cmd/openapi-gen@$(module_version))
|
|
else
|
|
@echo "openapi-gen is already installed."
|
|
endif
|
|
|
|
# go-get-tool will 'go get' any package $2 and install it to $1.
|
|
PROJECT_DIR := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST))))
|
|
define go-get-tool
|
|
@[ -f $(1) ] || { \
|
|
set -e ;\
|
|
TMP_DIR=$$(mktemp -d) ;\
|
|
cd $$TMP_DIR ;\
|
|
go mod init tmp ;\
|
|
echo "Downloading $(2)" ;\
|
|
GOBIN=$(PROJECT_DIR)/bin go install $(2) ;\
|
|
rm -rf $$TMP_DIR ;\
|
|
}
|
|
endef
|
|
|
|
.PHONY: gen-schema-only
|
|
gen-schema-only:
|
|
go run cmd/gen-schema/main.go
|
|
|
|
.PHONY: gen-openapi-schema
|
|
gen-openapi-schema: gen-rollouts-openapi
|
|
go run cmd/gen-schema/main.go
|
|
|
|
.PHONY: gen-rollouts-openapi
|
|
gen-rollouts-openapi: openapi-gen
|
|
$(OPENAPI_GEN) \
|
|
--go-header-file hack/boilerplate.go.txt \
|
|
--input-dirs github.com/openkruise/kruise-rollout-api/rollouts/v1alpha1 \
|
|
--output-package pkg/rollouts/ \
|
|
--report-filename pkg/rollouts/violation_exceptions.list \
|
|
-o $(CURRENT_DIR)
|