1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2024-12-14 11:57:48 +00:00

refactor: verify codegen targets in makefile (#4494)

This commit is contained in:
Charles-Edouard Brétéché 2022-09-02 11:49:35 +02:00 committed by GitHub
parent caafbb74b9
commit 5e5627e81f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 81 additions and 55 deletions

View file

@ -63,9 +63,6 @@ jobs:
run: | run: |
make unused-package-check make unused-package-check
- name: Verify generated code is up to date
run: make verify-codegen
- name: Go vet - name: Go vet
run: | run: |
make vet make vet

44
.github/workflows/verify-codegen.yaml vendored Normal file
View file

@ -0,0 +1,44 @@
name: Verify codegen
on:
push:
branches:
- 'main'
- 'release*'
pull_request:
branches:
- 'main'
- 'release*'
jobs:
verify-codegen:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # pin@v3
- name: Unshallow
run: git fetch --prune --unshallow
- name: Set up Go
uses: actions/setup-go@424fc82d43fa5a37540bae62709ddcc23d9520d4 # v2.1.5
with:
go-version: 1.18
- name: Set up Helm
uses: azure/setup-helm@18bc76811624f360dbd7f18c2d4ecb32c7b87bab # v1.1
with:
version: v3.5.0
- name: Cache Go modules
uses: actions/cache@fd5de65bc895cf536527842281bea11763fefd77 # pin@v3
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: Verify generated code is up to date
run: make verify-codegen

View file

@ -371,6 +371,41 @@ codegen-api-docs: $(PACKAGE_SHIM) $(GEN_CRD_API_REFERENCE_DOCS) ## Generate API
.PHONY: codegen-all .PHONY: codegen-all
codegen-all: codegen-deepcopy-all codegen-crds-all codegen-client-all codegen-api-docs ## Generate clientset, listers, informers, all CRDs, deep copy functions and API docs codegen-all: codegen-deepcopy-all codegen-crds-all codegen-client-all codegen-api-docs ## Generate clientset, listers, informers, all CRDs, deep copy functions and API docs
##################
# VERIFY CODEGEN #
##################
.PHONY: verify-crds
verify-crds: codegen-crds-all ## Check CRDs are up to date
@git --no-pager diff config
@echo 'If this test fails, it is because the git diff is non-empty after running "make codegen-crds-all".'
@echo 'To correct this, locally run "make codegen-crds-all", commit the changes, and re-run tests.'
@git diff --quiet --exit-code config
.PHONY: verify-client
verify-client: codegen-client-all ## Check client is up to date
@git --no-pager diff pkg/client
@echo 'If this test fails, it is because the git diff is non-empty after running "make codegen-client-all".'
@echo 'To correct this, locally run "make codegen-client-all", commit the changes, and re-run tests.'
@git diff --quiet --exit-code pkg/client
.PHONY: verify-deepcopy
verify-deepcopy: codegen-deepcopy-all ## Check deepcopy functions are up to date
@git --no-pager diff api
@echo 'If this test fails, it is because the git diff is non-empty after running "make codegen-deepcopy-all".'
@echo 'To correct this, locally run "make codegen-deepcopy-all", commit the changes, and re-run tests.'
@git diff --quiet --exit-code api
.PHONY: verify-api-docs
verify-api-docs: codegen-api-docs ## Check api reference docs are up to date
@git --no-pager diff docs
@echo 'If this test fails, it is because the git diff is non-empty after running "make generate-api-docs".'
@echo 'To correct this, locally run "make generate-api-docs", commit the changes, and re-run tests.'
@git diff --quiet --exit-code docs
.PHONY: verify-codegen
verify-codegen: verify-crds verify-client verify-deepcopy verify-api-docs verify-helm ## Verify all generated code and docs are up to date
################################## ##################################
# KYVERNO # KYVERNO
################################## ##################################
@ -385,17 +420,6 @@ unused-package-check:
echo "go mod tidy checking failed!"; echo "$${tidy}"; echo; \ echo "go mod tidy checking failed!"; echo "$${tidy}"; echo; \
fi fi
##################################
# Generate Docs for types.go
##################################
.PHONY: verify-api-docs
verify-api-docs: codegen-api-docs ## Check api reference docs are up to date
git --no-pager diff docs
@echo 'If this test fails, it is because the git diff is non-empty after running "make generate-api-docs".'
@echo 'To correct this, locally run "make generate-api-docs", commit the changes, and re-run tests.'
git diff --quiet --exit-code docs
################################## ##################################
# Create e2e Infrastructure # Create e2e Infrastructure
################################## ##################################
@ -516,42 +540,6 @@ release-notes:
@bash -c 'while IFS= read -r line ; do if [[ "$$line" == "## "* && "$$line" != "## $(VERSION)" ]]; then break ; fi; echo "$$line"; done < "CHANGELOG.md"' \ @bash -c 'while IFS= read -r line ; do if [[ "$$line" == "## "* && "$$line" != "## $(VERSION)" ]]; then break ; fi; echo "$$line"; done < "CHANGELOG.md"' \
true true
##################################
# CODEGEN
##################################
.PHONY: kyverno-crd
kyverno-crd: $(CONTROLLER_GEN) ## Generate kyverno CRDs
$(CONTROLLER_GEN) crd paths=./api/kyverno/... crd:crdVersions=v1 output:dir=./config/crds
.PHONY: report-crd
report-crd: $(CONTROLLER_GEN) ## Generate policy reports CRDs
$(CONTROLLER_GEN) crd paths=./api/policyreport/... crd:crdVersions=v1 output:dir=./config/crds
.PHONY: deepcopy-autogen
deepcopy-autogen: $(CONTROLLER_GEN) $(GOIMPORTS) ## Generate deep copy code
$(CONTROLLER_GEN) object:headerFile="scripts/boilerplate.go.txt" paths="./..." && $(GOIMPORTS) -w ./api/
.PHONY: codegen
codegen: kyverno-crd report-crd deepcopy-autogen generate-api-docs gen-helm ## Update all generated code and docs
.PHONY: verify-api
verify-api: kyverno-crd report-crd deepcopy-autogen ## Check api is up to date
git --no-pager diff api
@echo 'If this test fails, it is because the git diff is non-empty after running "make codegen".'
@echo 'To correct this, locally run "make codegen", commit the changes, and re-run tests.'
git diff --quiet --exit-code api
.PHONY: verify-config
verify-config: kyverno-crd report-crd ## Check config is up to date
git --no-pager diff config
@echo 'If this test fails, it is because the git diff is non-empty after running "make codegen".'
@echo 'To correct this, locally run "make codegen", commit the changes, and re-run tests.'
git diff --quiet --exit-code config
.PHONY: verify-codegen
verify-codegen: verify-api verify-config verify-api-docs verify-helm ## Verify all generated code and docs are up to date
################################## ##################################
# HELM # HELM
################################## ##################################
@ -560,19 +548,16 @@ verify-codegen: verify-api verify-config verify-api-docs verify-helm ## Verify a
.PHONY: gen-helm-docs .PHONY: gen-helm-docs
gen-helm-docs: ## Generate Helm docs gen-helm-docs: ## Generate Helm docs
@docker run -v ${PWD}:/work -w /work jnorwood/helm-docs:v1.11.0 -s file @docker run -v ${PWD}:/work -w /work jnorwood/helm-docs:v1.11.0 -s file
# gen-helm-docs: $(HELM_DOCS) ## Generate Helm docs
# # @$(HELM_DOCS) -s file
# @docker run -v ${PWD}:/work -w /work jnorwood/helm-docs:v1.6.0 -s file
.PHONY: gen-helm .PHONY: gen-helm
gen-helm: gen-helm-docs kustomize-crd ## Generate Helm charts stuff gen-helm: gen-helm-docs kustomize-crd ## Generate Helm charts stuff
.PHONY: verify-helm .PHONY: verify-helm
verify-helm: gen-helm ## Check Helm charts are up to date verify-helm: gen-helm ## Check Helm charts are up to date
git --no-pager diff charts @git --no-pager diff charts
@echo 'If this test fails, it is because the git diff is non-empty after running "make gen-helm".' @echo 'If this test fails, it is because the git diff is non-empty after running "make gen-helm".'
@echo 'To correct this, locally run "make gen-helm", commit the changes, and re-run tests.' @echo 'To correct this, locally run "make gen-helm", commit the changes, and re-run tests.'
git diff --quiet --exit-code charts @git diff --quiet --exit-code charts
######## ########
# KIND # # KIND #