Add a CI step for checking app SDK codegen status (#111528)
* Add a CI step for checking app SDK codegen status What This commit adds a CI step for checking the status of code generated with Grafana App SDK. The step fails if there is a git diff as a result of the codegen step. It also updates generated code to make sure we're starting from a correct state. Why This ensures that when the schemas or the SDK version are updated, the codegen mismatch is caught early at the PR stage. Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com> * Format generated code Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com> --------- Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>
This commit is contained in:
@@ -173,7 +173,19 @@ gen-cuev2: ## Do all CUE code generation
|
||||
APPS_DIRS := ./apps/dashboard ./apps/folder ./apps/alerting/notifications
|
||||
|
||||
.PHONY: gen-apps
|
||||
gen-apps: ## Generate code for Grafana App SDK apps
|
||||
gen-apps: do-gen-apps gofmt ## Generate code for Grafana App SDK apps and run gofmt
|
||||
@if [ -n "$$CODEGEN_VERIFY" ]; then \
|
||||
echo "Verifying generated code is up to date..."; \
|
||||
if ! git diff --quiet; then \
|
||||
echo "Error: Generated apps code is not up to date. Please run 'make gen-apps' to regenerate."; \
|
||||
git diff --name-only; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
echo "Generated apps code is up to date."; \
|
||||
fi
|
||||
|
||||
.PHONY: do-gen-apps
|
||||
do-gen-apps: ## Generate code for Grafana App SDK apps
|
||||
for dir in $(APPS_DIRS); do \
|
||||
$(MAKE) -C $$dir generate; \
|
||||
done
|
||||
@@ -388,7 +400,7 @@ lint-go-diff:
|
||||
|
||||
.PHONY: gofmt
|
||||
gofmt: ## Run gofmt for all Go files.
|
||||
gofmt -s -w .
|
||||
@go list -m -f '{{.Dir}}' | xargs -I{} sh -c 'test ! -f {}/.nolint && echo {}' | xargs gofmt -s -w 2>&1 | grep -v '/pkg/build/' || true
|
||||
|
||||
# with disabled SC1071 we are ignored some TCL,Expect `/usr/bin/env expect` scripts
|
||||
.PHONY: shellcheck
|
||||
|
||||
Reference in New Issue
Block a user