-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
142 lines (123 loc) · 4.16 KB
/
Copy pathMakefile
File metadata and controls
142 lines (123 loc) · 4.16 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
-include .env
export
.PHONY: help \
up down logs \
migrate migrate-down migrate-status \
dev-api dev-worker dev-web \
docs docs-build \
build \
slack-setup slack-manifest \
lint test \
setup
# -----------------------------------------------
# デフォルト: ヘルプ表示
# -----------------------------------------------
help:
@echo ""
@echo "KCL Support Hub — Makefile"
@echo ""
@echo " インフラ"
@echo " make up Docker インフラ起動 (postgres + localstack)"
@echo " make down Docker インフラ停止"
@echo " make logs Docker ログ表示"
@echo ""
@echo " DB"
@echo " make migrate マイグレーション実行"
@echo " make migrate-down マイグレーション 1 つ戻す"
@echo " make migrate-status マイグレーション状態確認"
@echo ""
@echo " 開発サーバー起動 (それぞれ別ターミナルで実行)"
@echo " make dev-api Go API サーバー起動 (port 8080)"
@echo " make dev-worker TypeScript Worker 起動"
@echo " make dev-web Next.js ダッシュボード起動 (port 3000)"
@echo " make docs ドキュメントサーバー起動 (port 4000)"
@echo " make docs-build ドキュメントを静的ファイルにビルド"
@echo ""
@echo " Slack"
@echo " make slack-setup URL=https://xxxx.ngrok-free.app"
@echo " Slash Commands + Interactivity URL を一括更新"
@echo " make slack-manifest manifest.json の内容を表示"
@echo ""
@echo " ビルド / テスト"
@echo " make build 全サービスをビルド"
@echo " make lint 全サービスのリント"
@echo " make test 全サービスのテスト"
@echo ""
@echo " 初回セットアップ一括"
@echo " make setup up + migrate をまとめて実行"
@echo ""
# -----------------------------------------------
# インフラ
# -----------------------------------------------
up:
docker compose -f infra/docker/compose.yml up -d
down:
docker compose -f infra/docker/compose.yml down
logs:
docker compose -f infra/docker/compose.yml logs -f
# -----------------------------------------------
# DB マイグレーション
# -----------------------------------------------
migrate:
$(MAKE) -C apps/api migrate
migrate-down:
$(MAKE) -C apps/api migrate-down
migrate-status:
$(MAKE) -C apps/api migrate-status
# -----------------------------------------------
# 開発サーバー
# -----------------------------------------------
dev-api:
$(MAKE) -C apps/api dev
dev-worker:
cd apps/worker && pnpm dev
dev-web:
cd apps/web && pnpm dev
# -----------------------------------------------
# ドキュメント
# -----------------------------------------------
docs:
cd docs-host && pnpm dev
docs-build:
cd docs-host && pnpm build
# -----------------------------------------------
# Slack
# -----------------------------------------------
slack-setup:
ifndef URL
$(error URLを指定してください: make slack-setup URL=https://xxxx.ngrok-free.app)
endif
./infra/slack/setup.sh "$(URL)"
slack-manifest:
@cat infra/slack/manifest.json
# -----------------------------------------------
# ビルド
# -----------------------------------------------
build:
$(MAKE) -C apps/api build
cd apps/worker && pnpm build
cd apps/web && pnpm build
# -----------------------------------------------
# リント / テスト
# -----------------------------------------------
lint:
$(MAKE) -C apps/api lint
cd apps/worker && pnpm lint
cd apps/web && pnpm lint
test:
$(MAKE) -C apps/api test
cd apps/worker && pnpm test
# -----------------------------------------------
# 初回セットアップ一括
# -----------------------------------------------
setup: up
@echo "インフラ起動を待機中..."
@sleep 5
$(MAKE) migrate
@echo ""
@echo "セットアップ完了。次のステップ:"
@echo " 1. make dev-api (別ターミナル)"
@echo " 2. make dev-worker (別ターミナル)"
@echo " 3. make dev-web (別ターミナル)"
@echo " 4. ngrok http 8080"
@echo " 5. make slack-setup URL=<ngrok URL>"