-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
93 lines (72 loc) · 2.8 KB
/
Copy pathMakefile
File metadata and controls
93 lines (72 loc) · 2.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
PROJECT_NAME ?= okarin-$(ENV)
ENV ?= local
ENV_FILE ?= ./deploy/env/$(ENV).env
KAEDE_ENV_FILE ?= ./deploy/apps/kaede.$(ENV).env
STORAGE_BOOTSTRAP_ENV_FILE ?= ./deploy/apps/storage-bootstrap.$(ENV).env
COMPOSE = docker compose --env-file $(ENV_FILE) -p $(PROJECT_NAME)
BASE_FILES := -f docker/compose.yml
ifeq ($(ENV),local)
COMPOSE_FILES := $(BASE_FILES) -f docker/compose.local.yml
UP_ARGS := -d --build --remove-orphans
else ifeq ($(ENV),staging)
COMPOSE_FILES := $(BASE_FILES) -f docker/compose.staging.yml
UP_ARGS := -d --build --remove-orphans
else ifeq ($(ENV),production)
COMPOSE_FILES := $(BASE_FILES) -f docker/compose.production.yml
UP_ARGS := -d --build --remove-orphans
else
$(error Unsupported ENV='$(ENV)'. Use local|staging|production)
endif
.PHONY: help pull up down logs ps config db-status db-up db-down db-dump db-new db-seed-local kaede-admin-create-user storage-init storage-test
help:
@echo "Usage examples:"
@echo " make up ENV=local"
@echo " make up ENV=staging ENV_FILE=./deploy/env/staging.env"
@echo " make up ENV=production ENV_FILE=./deploy/env/production.env"
@echo " make pull ENV=production ENV_FILE=./deploy/env/production.env"
@echo " make up ENV=production PROJECT_NAME=okarin-prod-a"
@echo " make db-status ENV=local"
@echo " make db-up ENV=local"
@echo " make db-new ENV=local NAME=init"
@echo " make db-seed-local ENV=local"
@echo " make kaede-admin-create-user ENV=production ARGS=\"--email admin@example.com\""
@echo " make storage-init ENV=local"
@echo " make storage-test"
pull:
$(COMPOSE) $(COMPOSE_FILES) pull
up:
$(COMPOSE) $(COMPOSE_FILES) up $(UP_ARGS)
down:
$(COMPOSE) $(COMPOSE_FILES) down
logs:
$(COMPOSE) $(COMPOSE_FILES) logs -f
ps:
$(COMPOSE) $(COMPOSE_FILES) ps
config:
$(COMPOSE) $(COMPOSE_FILES) config
db-in:
$(COMPOSE) $(COMPOSE_FILES) exec postgres \
sh -c 'psql -U "$$POSTGRES_USER" -d "$$POSTGRES_DB"'
db-status:
$(COMPOSE) $(COMPOSE_FILES) --profile tools run --rm dbmate status
db-up:
$(COMPOSE) $(COMPOSE_FILES) --profile tools run --rm dbmate up
db-down:
$(COMPOSE) $(COMPOSE_FILES) --profile tools run --rm dbmate down
db-dump:
$(COMPOSE) $(COMPOSE_FILES) --profile tools run --rm dbmate dump
db-new:
ifndef NAME
$(error NAME is required. Use NAME=create_something)
endif
$(COMPOSE) $(COMPOSE_FILES) --profile tools run --rm dbmate new $(NAME)
db-seed-local:
$(COMPOSE) $(COMPOSE_FILES) exec -T postgres \
sh -c 'psql -U "$$POSTGRES_USER" -d "$$POSTGRES_DB"' < ./db/seeds/local_dev.sql
@echo " local dev seed data inserted successfully; see building_id, floor_id, pedestrian_id above"
kaede-admin-create-user:
$(COMPOSE) $(COMPOSE_FILES) exec kaede node dist/cli/admin-create-user.js $(ARGS)
storage-init:
$(COMPOSE) $(COMPOSE_FILES) --profile tools run --rm storage-bootstrap
storage-test:
sh ./storage/bootstrap/test_init_bucket.sh