forked from pyeventsourcing/eventsourcing-sqlalchemy
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
173 lines (134 loc) · 3.49 KB
/
Makefile
File metadata and controls
173 lines (134 loc) · 3.49 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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
.EXPORT_ALL_VARIABLES:
COMPOSE_FILE ?= docker/docker-compose-local.yml
COMPOSE_PROJECT_NAME ?= eventsourcing_sqlalchemy
POETRY_VERSION=2.1.2
POETRY ?= poetry@$(POETRY_VERSION)
DOTENV_BASE_FILE ?= .env-base
DOTENV_LOCAL_FILE ?= .env
POETRY_INSTALLER_URL ?= https://install.python-poetry.org
-include $(DOTENV_BASE_FILE)
-include $(DOTENV_LOCAL_FILE)
.PHONY: install-poetry
install-poetry:
@pipx install --suffix="@$(POETRY_VERSION)" "poetry==$(POETRY_VERSION)"
$(POETRY) --version
.PHONY: poetry-version
poetry-version:
$(POETRY) --version
.PHONY: python-version
python-version:
$(POETRY) run python --version
.PHONY: install
install:
$(POETRY) sync --all-extras $(opts)
.PHONY: update
update: update-lock install
.PHONY: update-lock
update-lock:
$(POETRY) update --lock -v
.PHONY: docker-up
docker-up:
docker-compose up -d
docker-compose ps
.PHONY: docker-down
docker-down:
docker-compose stop
.PHONY: docker-logs
docker-logs:
docker-compose logs --follow
.PHONY: docker-ps
docker-ps:
docker-compose ps
# Todo: Migrations for SQLAlchemy.
#.PHONY: migrate
#migrate:
# $(POETRY) run django-admin migrate
#
#.PHONY: migrations
#migrations:
# $(POETRY) run django-admin makemigrations
.PHONY: lint-bandit
lint-bandit:
$(POETRY) run bandit --ini .bandit --recursive
.PHONY: lint-black
lint-black:
$(POETRY) run black --check --diff .
.PHONY: lint-flake8
lint-flake8:
$(POETRY) run flake8
.PHONY: lint-isort
lint-isort:
$(POETRY) run isort --check-only --diff .
.PHONY: lint-mypy
lint-mypy:
$(POETRY) run mypy
.PHONY: lint-python
lint-python: lint-black lint-flake8 lint-isort lint-mypy
.PHONY: lint
lint: lint-python
.PHONY: fmt-black
fmt-black:
$(POETRY) run black .
.PHONY: fmt-isort
fmt-isort:
$(POETRY) run isort .
.PHONY: fmt
fmt: fmt-black fmt-isort
.PHONY: test
test:
$(POETRY) run python -m unittest discover . -v
.PHONY: pytest
pytest:
$(POETRY) run pytest . -v --durations 10
.PHONY: build
build:
$(POETRY) build
.PHONY: publish
publish:
$(POETRY) publish
.PHONY: start-mssql
start-mssql:
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=Password1" \
-p 1433:1433 --name sql2022 --hostname localhost \
-d \
mcr.microsoft.com/mssql/server:2022-latest
.PHONY: stop-mssql
stop-mssql:
docker stop sql2022
docker rm sql2022
.PHONY: mssql-sqlcmd-help
mssql-sqlcmd-help:
docker exec -it sql2022 "/opt/mssql-tools18/bin/sqlcmd" \
-?
.PHONY: mssql-sqlcmd
mssql-sqlcmd:
docker exec -it sql2022 "/opt/mssql-tools18/bin/sqlcmd" \
-S localhost -U sa -P Password1 -No
.PHONY: create-mssql-database
create-mssql-database:
docker exec sql2022 "/opt/mssql-tools18/bin/sqlcmd" \
-S localhost -U sa -P Password1 -No \
-q "CREATE DATABASE eventsourcing_sqlalchemy;"
.PHONY: drop-mssql-database
drop-mssql-database:
docker exec sql2022 "/opt/mssql-tools18/bin/sqlcmd" \
-S localhost -U sa -P Password1 -No \
-q "DROP DATABASE eventsourcing_sqlalchemy;"
.PHONY: create-mssql-schema
create-mssql-schema:
docker exec sql2022 "/opt/mssql-tools18/bin/sqlcmd" \
-S localhost -U sa -P Password1 -No \
-d eventsourcing_sqlalchemy \
-q "CREATE SCHEMA myschema;"
.PHONY: drop-mssql-schema
drop-mssql-schema:
docker exec sql2022 "/opt/mssql-tools18/bin/sqlcmd" \
-S localhost -U sa -P Password1 -No \
-d eventsourcing_sqlalchemy \
-q "DROP SCHEMA myschema;"
.PHONY: drop-mssql-table
drop-mssql-table:
docker exec sql2022 "/opt/mssql-tools18/bin/sqlcmd" \
-S localhost -U sa -P Password1 -No \
-d eventsourcing_sqlalchemy \
-q "DROP TABLE $(name);"