加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
Makefile.codegen 3.98 KB
一键复制 编辑 原始数据 按行查看 历史
CODE_GEN_BIN_NAME := codegen
CODE_GEN_GO_DEPENDENCIES := $(call rwildcard,cmd/codegen/,*.go)
CODE_GEN_BUILDFLAGS :=
ifdef DEBUG
CODE_GEN_BUILDFLAGS := -gcflags "all=-N -l" $(CODE_GEN_BUILDFLAGS)
endif
PEGOMOCK_VERSION := v2.7.0
CLIENTSET_GENERATOR_VERSION := kubernetes-1.12.9
GEN_APIDOCS_VERSION := v0.0.0-20190912061656-a61bc210ee54
OPENAPI_GEN_VERSION := 36ebc4887cdc
build-codegen: build/$(CODE_GEN_BIN_NAME) ## Build the code generator
build/$(CODE_GEN_BIN_NAME): $(CODE_GEN_GO_DEPENDENCIES)
CGO_ENABLED=$(CGO_ENABLED) $(GO) build $(CODE_GEN_BUILDFLAGS) -o build/$(CODE_GEN_BIN_NAME) cmd/codegen/codegen.go
test-codegen: ## Test the code geneator
CGO_ENABLED=$(CGO_ENABLED) $(GO) test -v -short ./cmd/codegen/...
# Generate go code using generate directives in files and kubernetes code generation
# Anything generated by this target should be checked in
generate: build-codegen install-generate-deps generate-mocks generate-openapi generate-client ## Generate the Go code (crds, mocks, openapi, client)
@$(MAKE) fmt
@$(MAKE) importfmt
@echo "Generation complete"
install-generate-deps:
$(GO) get github.com/petergtz/pegomock/...@$(PEGOMOCK_VERSION)
generate-mocks: install-generate-deps go-generate fmt importfmt ## Generate the mocks
go-generate:
@echo "Generating Mocks using pegomock"
$(GO) generate ./...
generate-client: codegen-clientset codegen-config fmt importfmt ## Generate the client
codegen-clientset: build-codegen ## Generate the k8s types and clients
# sleep for one second to prevent collision with previous codegen's replacement of go.mod
sleep 1
@echo "Generating Kubernetes Clients for pkg/apis in pkg/client for jenkins.io:v1"
./build/$(CODE_GEN_BIN_NAME) --generator-version $(CLIENTSET_GENERATOR_VERSION) clientset --output-package=pkg/client --input-package=v2/pkg/apis --group-with-version=jenkins.io:v1 --semver=v2
codegen-config: build-codegen ## Generate the deepcopy for the config, jenkinsfile, and tekton/syntax packages
# sleep for one second to prevent collision with previous codegen's replacement of go.mod
sleep 1
./build/$(CODE_GEN_BIN_NAME) --generator-version $(CLIENTSET_GENERATOR_VERSION) clientset --generator deepcopy --output-package=pkg --input-package=v2/pkg --group-with-version=config: --group-with-version=jenkinsfile: --group-with-version=tekton:syntax --semver=v2
# Generated docs are not checked in
generate-docs: build-codegen ## Generate the docs
@echo "Generating HTML docs for Kubernetes Clients"
./build/$(CODE_GEN_BIN_NAME) --generator-version $(GEN_APIDOCS_VERSION) docs
generate-openapi: codegen-openapi fmt importfmt
codegen-openapi: build-codegen
@echo "Generating OpenAPI structs for Kubernetes Clients"
./build/$(CODE_GEN_BIN_NAME) --generator-version $(OPENAPI_GEN_VERSION) openapi --output-package=pkg/client --input-package=github.com/jenkins-x/jx/v2/pkg/apis --group-with-version=jenkins.io:v1 --version=2.0 --module-name=github.com/jenkins-x/jx/v2 --semver=v2
install-refdocs:
$(GO) get github.com/jenkins-x/gen-crd-api-reference-docs
generate-refdocs: generate-api-refdocs generate-config-refdocs
generate-api-refdocs: install-refdocs
${GOPATH}/bin/gen-crd-api-reference-docs -config "docs/refdocs/config.json" \
-template-dir docs/refdocs/templates \
-api-dir "./pkg/apis/jenkins.io" \
-out-file docs/apidocs.md
generate-config-refdocs:
${GOPATH}/bin/gen-crd-api-reference-docs -config "docs/configdocs/config.json" \
-template-dir docs/configdocs/templates \
-api-dir "./pkg/config" \
-out-file docs/config.md
stash:
# Making sure repo has no outstanding changes
git stash
# Verifies that generated code is in sync with implementation
verify-generation-complete: stash generate ## Verify the generated code is up to date
$(eval CHANGED = $(shell git ls-files --modified --others --exclude-standard))
@if [ "$(CHANGED)" == "" ]; \
then \
echo "All generated files up to date"; \
else \
echo "Code generation is out of date"; \
echo "$(CHANGED)"; \
git diff; \
exit 1; \
fi
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化