-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
172 lines (146 loc) · 3.97 KB
/
Makefile
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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
# dev
prepare:
git config core.hooksPath .git-hooks || echo 'Not in a git repo'
build-dev:
docker compose \
--project-directory=${PWD} \
--project-name=ticket_store \
-f Deploy/docker-compose.yml \
-f Deploy/docker-compose.development.yml \
build ${ARGS}
start-dev:
make ngrok
docker compose \
--project-directory=${PWD} \
--project-name=ticket_store \
-f Deploy/docker-compose.yml \
-f Deploy/docker-compose.development.yml \
up --build
stop-dev:
docker compose \
--project-directory=${PWD} \
--project-name=ticket_store \
-f Deploy/docker-compose.yml \
-f Deploy/docker-compose.development.yml \
down
# test
start-test:
docker compose \
--project-directory=${PWD} \
--project-name=ticket_store \
-f Deploy/docker-compose.yml \
-f Deploy/docker-compose.test.yml \
up --build -d
start-test:
docker compose \
--project-directory=${PWD} \
--project-name=ticket_store \
-f Deploy/docker-compose.yml \
-f Deploy/docker-compose.test.yml \
up -d
stop-test:
docker compose \
--project-directory=${PWD} \
--project-name=ticket_store \
-f Deploy/docker-compose.yml \
-f Deploy/docker-compose.test.yml \
down
start-yandex:
docker compose \
--project-directory=${PWD} \
--project-name=ticket_store \
-f Deploy/docker-compose.yandex.yml \
up --build
# db only
start-db:
docker compose \
--project-directory=${PWD} \
--project-name=ticket_store \
-f Deploy/docker-compose.db.yml \
up --build -d
stop-db:
docker compose \
--project-directory=${PWD} \
--project-name=ticket_store \
-f Deploy/docker-compose.db.yml \
down
# prod
build-prod:
docker compose \
--project-directory=${PWD} \
--project-name=ticket_store \
-f Deploy/docker-compose.yml \
-f Deploy/docker-compose.production.yml \
build ${ARGS}
stop-prod:
docker compose \
--project-directory=${PWD} \
--project-name=ticket_store \
-f Deploy/docker-compose.yml \
-f Deploy/docker-compose.production.yml \
down
start-prod:
make grant-permissions-to-cert
docker compose \
--project-directory=${PWD} \
--project-name=ticket_store \
-f Deploy/docker-compose.yml \
-f Deploy/docker-compose.production.yml \
pull
docker compose \
--project-directory=${PWD} \
--project-name=ticket_store \
-f Deploy/docker-compose.yml \
-f Deploy/docker-compose.production.yml \
up -d
push:
docker login
docker compose \
--project-directory=${PWD} \
--project-name=ticket_store \
-f Deploy/docker-compose.yml \
-f Deploy/docker-compose.production.yml \
push
pull:
docker login
docker compose \
--project-directory=${PWD} \
--project-name=ticket_store \
-f Deploy/docker-compose.yml \
-f Deploy/docker-compose.production.yml \
pull
# clean dungling images/volumes
docker-cleanup:
docker volume rm $$(docker volume ls -qf dangling=true)
docker rmi $$(docker images -a | grep "^<none>" | awk '{print $$3}')
docker rmi $$(docker images -a --filter=dangling=true -q)
docker rm $$(docker ps --filter=status=exited --filter=status=created -q)
# connect to db
db-dev:
docker exec -it postgres psql postgresql://store_user:KqCQzyH2akGB9gQ4@localhost:5432/store_db
db-test:
docker exec -it postgres psql postgresql://store_user:KqCQzyH2akGB9gQ4@localhost:5432/store_db
db-prod:
psql postgresql://store_user:[email protected]:5432/store_db
# run tests
test-api-integration:
dotnet test Services/TicketStore.Api.Tests \
--filter Category!=DevelopmentData
test-api-unit:
dotnet test Services/TicketStore.Api.Tests.Unit
test-web-unit:
dotnet test Services/TicketStore.Web.Tests.Unit
# migrate db
migrate-dev:
docker exec store_api dotnet ef database update --verbose
migrate-test:
export ASPNETCORE_ENVIRONMENT=TestMigrations; \
dotnet ef database update --project Services/TicketStore.Data/TicketStore.Data.csproj --verbose
# etc
grant-permissions-to-cert:
chmod 600 ./Services/Proxy/certs/acme.json
ngrok:
bash ./Scripts/ngrok/launch.sh
db-seed:
dotnet test Services/TicketStore.Api.Tests \
--filter Category=DevelopmentData