github.com/olli-ai/jx/v2@v2.0.400-0.20210921045218-14731b4dd448/Makefile.codegen (about) 1 CODE_GEN_BIN_NAME := codegen 2 CODE_GEN_GO_DEPENDENCIES := $(call rwildcard,cmd/codegen/,*.go) 3 CODE_GEN_BUILDFLAGS := 4 ifdef DEBUG 5 CODE_GEN_BUILDFLAGS := -gcflags "all=-N -l" $(CODE_GEN_BUILDFLAGS) 6 endif 7 8 PEGOMOCK_VERSION := v2.7.0 9 CLIENTSET_GENERATOR_VERSION := kubernetes-1.15.12 10 GEN_APIDOCS_VERSION := v0.0.0-20190912061656-a61bc210ee54 11 OPENAPI_GEN_VERSION := 36ebc4887cdc 12 13 build-codegen: build/$(CODE_GEN_BIN_NAME) ## Build the code generator 14 15 build/$(CODE_GEN_BIN_NAME): $(CODE_GEN_GO_DEPENDENCIES) 16 CGO_ENABLED=$(CGO_ENABLED) $(GO) build $(CODE_GEN_BUILDFLAGS) -o build/$(CODE_GEN_BIN_NAME) cmd/codegen/codegen.go 17 18 test-codegen: ## Test the code geneator 19 CGO_ENABLED=$(CGO_ENABLED) $(GO) test -v -short ./cmd/codegen/... 20 21 # Generate go code using generate directives in files and kubernetes code generation 22 # Anything generated by this target should be checked in 23 generate: build-codegen install-generate-deps generate-mocks generate-client ## Generate the Go code (crds, mocks, openapi, client) 24 @$(MAKE) fmt 25 @$(MAKE) importfmt 26 @echo "Generation complete" 27 28 install-generate-deps: 29 $(GO) get github.com/petergtz/pegomock/...@$(PEGOMOCK_VERSION) 30 31 generate-mocks: install-generate-deps go-generate fmt importfmt ## Generate the mocks 32 33 go-generate: 34 @echo "Generating Mocks using pegomock" 35 $(GO) generate ./... 36 37 generate-client: codegen-config fmt importfmt ## Generate the client 38 39 codegen-config: build-codegen ## Generate the deepcopy for the config, jenkinsfile, and tekton/syntax packages 40 # sleep for one second to prevent collision with previous codegen's replacement of go.mod 41 sleep 1 42 ./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 43 44 # Generated docs are not checked in 45 generate-docs: build-codegen ## Generate the docs 46 @echo "Generating HTML docs for Kubernetes Clients" 47 ./build/$(CODE_GEN_BIN_NAME) --generator-version $(GEN_APIDOCS_VERSION) docs 48 49 install-refdocs: 50 $(GO) get github.com/jenkins-x/gen-crd-api-reference-docs 51 52 generate-refdocs: generate-config-refdocs 53 54 generate-config-refdocs: 55 ${GOPATH}/bin/gen-crd-api-reference-docs -config "docs/configdocs/config.json" \ 56 -template-dir docs/configdocs/templates \ 57 -api-dir "./pkg/config" \ 58 -out-file docs/config.md 59 60 stash: 61 # Making sure repo has no outstanding changes 62 git stash 63 64 # Verifies that generated code is in sync with implementation 65 verify-generation-complete: stash generate ## Verify the generated code is up to date 66 $(eval CHANGED = $(shell git ls-files --modified --others --exclude-standard)) 67 @if [ "$(CHANGED)" == "" ]; \ 68 then \ 69 echo "All generated files up to date"; \ 70 else \ 71 echo "Code generation is out of date"; \ 72 echo "$(CHANGED)"; \ 73 git diff; \ 74 exit 1; \ 75 fi