-
Notifications
You must be signed in to change notification settings - Fork 34
Expand file tree
/
Copy pathMakefile
More file actions
149 lines (109 loc) · 5.8 KB
/
Copy pathMakefile
File metadata and controls
149 lines (109 loc) · 5.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
.PHONY: build install test test-short test-stress test-federation-docker release-scripts-test lint vet clean fmt nilaway openapi api-generate api-check tui tui-demo docs-install docs-build docs-serve docs-check docs-deploy docs-screenshots docs-assets-branch kata-ui-check kata-ui-test kata-ui-pack-check web-install web-generate web-check web-audit web-test web-test-browser web-e2e web-build web-embed web-assets-check web-release-check web-dev
GOFLAGS_TEST := -shuffle=on
GOBIN ?= $(HOME)/.local/bin
VERSION := $(shell v=$$(git describe --tags --always --dirty 2>/dev/null || printf dev); printf '%s' "$$v" | LC_ALL=C tr -c 'A-Za-z0-9._+~:-' '-')
COMMIT := $(shell v=$$(git rev-parse --short=7 HEAD 2>/dev/null || printf unknown); printf '%s' "$$v" | LC_ALL=C tr -c 'A-Za-z0-9._+~:-' '-')
BUILD_DATE := $(shell v=$$(git show -s --format=%cI HEAD 2>/dev/null || printf unknown); printf '%s' "$$v" | LC_ALL=C tr -c 'A-Za-z0-9._+~:-' '-')
LDFLAGS := -X go.kenn.io/kata/internal/version.Version=$(VERSION) -X go.kenn.io/kata/internal/version.Commit=$(COMMIT) -X go.kenn.io/kata/internal/version.BuildDate=$(BUILD_DATE)
export GOBIN
build: web-embed
@set -e; trap 'cd web && bun run scripts/embed-assets.ts --restore-stub' EXIT; \
go build -ldflags="$(LDFLAGS)" -o kata ./cmd/kata
install: web-embed
@set -e; trap 'cd web && bun run scripts/embed-assets.ts --restore-stub' EXIT; \
go install -ldflags="$(LDFLAGS)" ./cmd/kata
test:
env -u KATA_AUTH_TOKEN go test $(GOFLAGS_TEST) ./...
# Regenerate the committed OpenAPI schema and generated Go client.
# Drift tests fail if the OpenAPI artifacts or generated client differ from this output.
api-generate:
set -e; tmp="$$(mktemp)"; trap 'rm -f "$$tmp"' EXIT; go run ./cmd/kata openapi > "$$tmp"; if [ -f api/openapi.yaml ] && cmp -s "$$tmp" api/openapi.yaml; then rm "$$tmp"; else mv "$$tmp" api/openapi.yaml; fi; trap - EXIT
set -e; tmp="$$(mktemp)"; trap 'rm -f "$$tmp"' EXIT; go run ./cmd/kata openapi --version 3.0 --format yaml > "$$tmp"; if [ -f pkg/client/openapi.yaml ] && cmp -s "$$tmp" pkg/client/openapi.yaml; then rm "$$tmp"; else mv "$$tmp" pkg/client/openapi.yaml; fi; trap - EXIT
cd pkg/client/generated && find . -maxdepth 1 -type f -name '*.go' ! -name 'generate.go' -delete && go run github.com/doordash-oss/oapi-codegen-dd/v3/cmd/oapi-codegen@v3.75.5 -config config.yaml ../openapi.yaml
api-check:
go test ./internal/daemon -run 'TestOpenAPI(ArtifactUpToDate|ClientSpecArtifactUpToDate|ClientArtifactUpToDate)$$'
web-install:
cd web && bun install --frozen-lockfile
web-generate:
cd web && bun run generate
kata-ui-check:
bun run --cwd packages/kata-ui check
kata-ui-test:
bun run --cwd packages/kata-ui test
kata-ui-pack-check:
cd packages/kata-ui && bun x vitest run pack.test.ts
web-check: kata-ui-check
cd web && bun run check
web-audit:
cd web && bun run audit
web-test: kata-ui-test kata-ui-pack-check
cd web && bun run test
web-test-browser:
cd web && bun run test:e2e -- tests/dev-proxy.spec.ts $(if $(WEB_TEST_GREP),--grep "$(WEB_TEST_GREP)",)
web-e2e:
cd web && bun run test:e2e
web-build:
cd web && bun run build
web-dev:
cd web && bun run scripts/dev.ts
web-assets-check:
cd web && bun run scripts/validate-assets.ts dist
web-embed: web-build web-assets-check
cd web && bun run scripts/embed-assets.ts dist
web-release-check: web-embed
env -u KATA_AUTH_TOKEN KATA_RUN_WEB_RELEASE_CHECK=1 go test ./e2e -run '^TestReleaseBinaryContainsValidatedWebUI$$' -count=1
openapi: api-generate
test-short:
env -u KATA_AUTH_TOKEN go test -short $(GOFLAGS_TEST) ./...
test-stress:
go test -tags federation_stress ./e2e -run 'TestFederationStress|TestFederationFailpoint' -rapid.checks=5 -count=1 -timeout 2m
test-federation-docker:
./scripts/test-federation-docker.sh
release-scripts-test:
bash scripts/release_scripts_test.sh
docs-install:
cd docs && uv sync --frozen --no-dev
docs-build:
cd docs && uv run --frozen bash ./zensical-docs.sh build
docs-serve:
cd docs && uv run bash ./zensical-docs.sh serve
docs-check:
bash scripts/check-docs.sh
docs-screenshots:
bash docs/screenshots/generate.sh
docs-assets-branch:
bash docs/screenshots/update-assets-branch.sh
docs-deploy:
bash docs/screenshots/hydrate-assets.sh --force
vercel build --prod --yes
vercel deploy --prebuilt --prod
lint:
GOLANGCI_LINT_CACHE="$(CURDIR)/.cache/golangci-lint" golangci-lint run --config .golangci.yml
vet:
go vet ./...
nilaway:
@module_path="$$(go list -m)"; \
nilaway -include-pkgs="$$module_path" \
-exclude-pkgs="$$module_path/web/node_modules" -test=false ./...
fmt:
gofmt -w .
tui:
@tmp=$$(mktemp -d); \
trap 'rm -rf "$$tmp"' EXIT; \
GOFLAGS=-buildvcs=false go build -tags kit_posthog_disabled -o "$$tmp/kata" ./cmd/kata; \
KATA_COLOR_MODE="$${KATA_COLOR_MODE:-dark}" "$$tmp/kata" tui
tui-demo:
@tmp=$$(mktemp -d); \
trap 'KATA_HOME="$$tmp/home" "$$tmp/kata" daemon stop >/dev/null 2>&1 || true; rm -rf "$$tmp"' EXIT; \
mkdir -p "$$tmp/ws"; \
GOFLAGS=-buildvcs=false go build -tags kit_posthog_disabled -o "$$tmp/kata" ./cmd/kata; \
KATA_HOME="$$tmp/home" "$$tmp/kata" --workspace "$$tmp/ws" init --project github.com/wesm/kata --name kata >/dev/null; \
KATA_HOME="$$tmp/home" "$$tmp/kata" --workspace "$$tmp/ws" --as alice create "fix login bug on Safari" --owner claude-4.7 --label tui --label ux >/dev/null; \
KATA_HOME="$$tmp/home" "$$tmp/kata" --workspace "$$tmp/ws" --as wesm create "rebuild search index" --owner wesm --label infra >/dev/null; \
KATA_HOME="$$tmp/home" "$$tmp/kata" --workspace "$$tmp/ws" --as bob close 2 >/dev/null; \
KATA_HOME="$$tmp/home" "$$tmp/kata" --workspace "$$tmp/ws" --as alice create "purge stale tokens" --label cleanup >/dev/null; \
KATA_HOME="$$tmp/home" KATA_COLOR_MODE=dark "$$tmp/kata" --workspace "$$tmp/ws" tui
clean:
rm -f kata kata.exe coverage.out
rm -rf dist site docs/site web/dist
cd web && bun run scripts/embed-assets.ts --restore-stub