48 lines
1.3 KiB
Makefile
48 lines
1.3 KiB
Makefile
COMPOSE := cd .. && docker compose
|
|
IMAGE := beavergram/backend
|
|
IMAGE_INPUTS := pyproject.toml uv.lock Dockerfile
|
|
CODE := src scripts ../frontend
|
|
SERVICES := api userbot
|
|
changed = ! git diff --quiet $(1) -- $(2) 2>/dev/null
|
|
stamp = { git update-ref $(1) HEAD 2>/dev/null || true; }
|
|
|
|
.PHONY: fmt check build pre-deploy post-deploy migrate revision session
|
|
|
|
fmt:
|
|
uv run ruff format
|
|
uv run ruff check --fix
|
|
|
|
check:
|
|
uv run ruff format --check
|
|
uv run ruff check
|
|
uv run ty check
|
|
|
|
build:
|
|
$(COMPOSE) build api
|
|
|
|
pre-deploy:
|
|
@if $(call changed,refs/deploy/backend,$(IMAGE_INPUTS)) || ! docker image inspect $(IMAGE) >/dev/null 2>&1; then \
|
|
$(MAKE) build && $(call stamp,refs/deploy/backend) && $(call stamp,refs/deploy/backend-code); \
|
|
fi
|
|
@$(COMPOSE) config --services | grep -qx postgres && $(COMPOSE) up -d postgres || true
|
|
$(MAKE) migrate
|
|
|
|
post-deploy:
|
|
@if $(call changed,refs/deploy/backend-code,$(CODE)); then \
|
|
running=$$($(COMPOSE) ps --services --status running | grep -x $(addprefix -e ,$(SERVICES))); \
|
|
[ -z "$$running" ] || $(COMPOSE) restart $$running; \
|
|
$(call stamp,refs/deploy/backend-code); \
|
|
fi
|
|
|
|
migrate:
|
|
$(COMPOSE) run --rm migrator $(or $(filter-out $@,$(MAKECMDGOALS)),upgrade head)
|
|
|
|
revision:
|
|
$(COMPOSE) run --rm migrator revision --autogenerate -m "$(m)"
|
|
|
|
%:
|
|
@:
|
|
|
|
session:
|
|
uv run python scripts/session/create.py
|