Files
dingtalk-workspace-cli/Makefile
T

79 lines
2.7 KiB
Makefile

GO ?= go
.PHONY: all help build rebuild test lint fmt policy edition-test generate-schema generate-schema-command-surface generate-schema-agent-metadata generate-schema-catalog package release publish-homebrew-formula setup-hooks
all: setup-hooks fmt lint build test rebuild
help:
@printf "Available targets:\n"
@printf " make build - Build the dws CLI binary\n"
@printf " make test - Run the Go test suite\n"
@printf " make lint - Run formatting checks and golangci-lint when available\n"
@printf " make fmt - Format Go source files\n"
@printf " make policy - Run open-source asset and command-surface checks\n"
@printf " make generate-schema - Regenerate embedded Agent metadata and the release Catalog\n"
@printf " make generate-schema-command-surface - Refresh the reviewed command surface\n"
@printf " make generate-schema-agent-metadata - Regenerate versioned Agent metadata\n"
@printf " make generate-schema-catalog - Regenerate the embedded release Catalog\n"
@printf " make package - Build all release artifacts locally (goreleaser snapshot)\n"
@printf " make release - Build and publish a release via goreleaser\n"
@printf " make publish-homebrew-formula - Push dist/homebrew/dingtalk-workspace-cli.rb to a tap repo\n"
build:
@./scripts/dev/build.sh
rebuild:
@./scripts/dev/build.sh
test:
@./test/scripts/run_all_tests.sh
lint:
@./scripts/dev/lint.sh
fmt:
@find cmd internal test -name '*.go' -print0 2>/dev/null | xargs -0r gofmt -w
policy:
@./scripts/policy/check-open-source-assets.sh
@./scripts/policy/check-command-surface.sh --strict
@./scripts/policy/check-generated-drift.sh
@./scripts/policy/check-schema-catalog.sh
edition-test:
$(GO) test -v -count=1 ./pkg/editiontest/...
generate-schema:
$(GO) generate ./internal/cli
generate-schema-command-surface:
$(GO) run ./internal/generator/cmd_schema_agent_metadata \
-root . \
-write-surface internal/cli/schema_command_surface.json
generate-schema-agent-metadata:
$(GO) run ./internal/generator/cmd_schema_agent_metadata \
-root . \
-surface internal/cli/schema_command_surface.json \
-output-dir internal/cli/schema_agent_metadata \
-audit-output internal/cli/schema_agent_metadata_audit.json
generate-schema-catalog:
$(GO) run ./internal/generator/cmd_schema_catalog \
-surface internal/cli/schema_command_surface.json \
-output internal/cli/schema_catalog.json
package:
@./scripts/dev/build-all.sh
@./scripts/release/post-goreleaser.sh
publish-homebrew-formula:
@./scripts/release/publish-homebrew-formula.sh
setup-hooks:
@git config core.hooksPath scripts/hooks 2>/dev/null || true
release:
goreleaser release --clean
@./scripts/release/post-goreleaser.sh