-
Notifications
You must be signed in to change notification settings - Fork 71
Expand file tree
/
Copy pathMakefile
More file actions
141 lines (105 loc) · 4.06 KB
/
Makefile
File metadata and controls
141 lines (105 loc) · 4.06 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
.PHONY: help build build-meta build-windows run test test-unit test-int test-docker test-docker-online test-redteam test-redteam-signal test-redteam-rules-signal playground playground-down devc devc-up devc-down devc-restart devc-reset devc-status dev-docker dev-docker-down docker-build docker-build-multiarch lint fmt fmt-check check install clean ui-install ui-build ui-dev build-all
help:
@echo "Common tasks:"
@echo " make build # build binary"
@echo " make run # run local binary help"
@echo " make test # unit + integration tests"
@echo " make test-unit # unit tests only"
@echo " make test-int # integration tests only"
@echo " make test-docker # docker offline sandbox (build + unit + integration)"
@echo " make test-docker-online # docker online install/update tests"
@echo " make test-redteam # red team supply-chain security tests"
@echo " make test-redteam-signal # verify red team test fails on intentional mutation"
@echo " make test-redteam-rules-signal # verify red team test fails when critical builtin rules are disabled"
@echo " make playground # start playground + enter shell (one step)"
@echo " make playground-down # stop and remove playground"
@echo " make devc # start devcontainer + enter shell (one step)"
@echo " make devc-up # start devcontainer (no shell)"
@echo " make devc-down # stop devcontainer"
@echo " make devc-restart # restart devcontainer"
@echo " make devc-reset # full reset (remove volumes)"
@echo " make devc-status # show devcontainer status"
@echo " make lint # go vet"
@echo " make fmt # format Go files"
@echo " make check # fmt-check + lint + test"
@echo " make ui-dev # Go API server + Vite dev server (requires local Go)"
@echo " make dev-docker # Go API in Docker + auto-rebuild (pair with: cd ui && pnpm run dev)"
@echo " make dev-docker-down # stop dev Docker container"
@echo " make build-all # ui-build + build"
@echo " make clean # remove build artifacts"
@echo ""
@echo "Advanced (run scripts directly):"
@echo " ./scripts/sandbox.sh <up|down|shell|reset|status|logs|bare>"
@echo " ./scripts/test.sh --cover"
@echo " ./scripts/test_install.sh"
@echo " docker compose -f docker-compose.sandbox.yml --profile dev up -d # start without watch"
BINARY ?= bin/skillshare
build:
mkdir -p $(dir $(BINARY)) && go build -o $(BINARY) ./cmd/skillshare
build-meta:
./scripts/build.sh
build-windows:
./scripts/build-windows.sh $(SHARED)
run: build
$(BINARY) --help
test:
./scripts/test.sh
test-unit:
./scripts/test.sh --unit
test-int:
./scripts/test.sh --int
test-docker:
./scripts/test_docker.sh
test-docker-online:
./scripts/test_docker_online.sh
test-redteam: build
./scripts/red_team_test.sh
test-redteam-signal:
./scripts/test_redteam_signal.sh
test-redteam-rules-signal:
./scripts/test_redteam_rules_signal.sh
playground:
./scripts/sandbox_playground_up.sh
./scripts/sandbox_playground_shell.sh
playground-down:
./scripts/sandbox_playground_down.sh
devc:
./scripts/devc.sh up && ./scripts/devc.sh shell
devc-up:
./scripts/devc.sh up
devc-down:
./scripts/devc.sh down
devc-restart:
./scripts/devc.sh restart
devc-reset:
./scripts/devc.sh reset
devc-status:
./scripts/devc.sh status
dev-docker:
docker compose -f docker-compose.sandbox.yml --profile dev watch
dev-docker-down:
docker compose -f docker-compose.sandbox.yml --profile dev down
docker-build:
docker build -f docker/production/Dockerfile -t skillshare .
docker-build-multiarch:
docker buildx build --platform linux/amd64,linux/arm64 -f docker/production/Dockerfile -t skillshare .
lint:
go vet ./...
fmt:
gofmt -w ./cmd ./internal ./tests
fmt-check:
test -z "$$(gofmt -l ./cmd ./internal ./tests)"
check: fmt-check lint test
install:
go install ./cmd/skillshare
ui-install:
cd ui && pnpm install
ui-build: ui-install
cd ui && pnpm run build
ui-dev:
@trap 'kill 0' EXIT; \
air & \
cd ui && pnpm run dev
build-all: ui-build build
clean:
rm -rf bin $(BINARY) coverage.out