mirror of
https://github.com/EDeev/mospolytech-mcp.git
synced 2026-10-07 20:49:52 +03:00
Добавление makefile
This commit is contained in:
parent
89813c4cd9
commit
f42497c121
2 changed files with 73 additions and 0 deletions
55
Makefile
Normal file
55
Makefile
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
ifeq ($(OS),Windows_NT)
|
||||
SHELL := cmd.exe
|
||||
SYS_PYTHON ?= py -3.14
|
||||
VENV_PYTHON := .venv/Scripts/python.exe
|
||||
PY := .venv\Scripts\python.exe
|
||||
else
|
||||
SYS_PYTHON ?= python3.14
|
||||
VENV_PYTHON := .venv/bin/python
|
||||
PY := $(VENV_PYTHON)
|
||||
endif
|
||||
|
||||
STAMP := .venv/.installed
|
||||
|
||||
.DEFAULT_GOAL := help
|
||||
.PHONY: help up setup install check-env migrate run test check-lk clean
|
||||
|
||||
help:
|
||||
@$(SYS_PYTHON) -X utf8 -c "import re, sys; [print(' make {:<10} {}'.format(*m.groups())) for m in re.finditer(r'^([a-z-]+):.*?## (.*)', open(sys.argv[1], encoding='utf-8').read(), re.M)]" $(firstword $(MAKEFILE_LIST))
|
||||
|
||||
up: migrate run ## всё сразу: окружение, .env, миграции, сервер
|
||||
|
||||
setup: install .env ## venv, зависимости и .env
|
||||
|
||||
install: $(STAMP) ## venv и зависимости
|
||||
|
||||
$(VENV_PYTHON):
|
||||
$(SYS_PYTHON) -m venv .venv
|
||||
|
||||
$(STAMP): $(VENV_PYTHON) pyproject.toml
|
||||
$(PY) -m pip install -e ".[dev]"
|
||||
@$(PY) -c "import pathlib; pathlib.Path('$(STAMP)').touch()"
|
||||
|
||||
.env:
|
||||
@$(SYS_PYTHON) -c "import shutil; shutil.copy('.env.example', '.env')"
|
||||
@echo .env created from .env.example - fill in DATABASE_URL 1>&2
|
||||
|
||||
check-env: $(STAMP) .env
|
||||
@$(PY) -c "import os, sys, pathlib; from mospolytech_mcp._dotenv import load_dotenv; load_dotenv(pathlib.Path('.env')); sys.exit(None if os.environ.get('DATABASE_URL') else 'DATABASE_URL is empty - fill it in .env and run make again')"
|
||||
|
||||
migrate: check-env ## миграции БД
|
||||
$(PY) -m alembic upgrade head
|
||||
|
||||
# stdout занят протоколом, поэтому echo в stderr
|
||||
run: check-env ## запустить MCP-сервер (stdio)
|
||||
@echo mospolytech-mcp is running on stdio, Ctrl+C to stop 1>&2
|
||||
@$(PY) -m mospolytech_mcp.server
|
||||
|
||||
test: install ## офлайн-тесты
|
||||
$(PY) -m pytest -q
|
||||
|
||||
check-lk: install .env ## проверка lk_api на реальном аккаунте
|
||||
$(PY) scripts/check_lk_api.py
|
||||
|
||||
clean: ## удалить .venv и кэши
|
||||
$(SYS_PYTHON) -c "import shutil; [shutil.rmtree(p, ignore_errors=True) for p in ('.venv', '.pytest_cache')]"
|
||||
18
README.md
18
README.md
|
|
@ -63,6 +63,24 @@ rasp.dmami.ru, записались в БД, второй вызов уже ид
|
|||
- Доступ к PostgreSQL — свой пользователь `mospolytech_mcp` на общем сервере
|
||||
команды (не `postgres`/admin), спросите данные в чате, если не сохранили
|
||||
|
||||
## Быстрый старт
|
||||
|
||||
Если стоит GNU Make (на Windows — `choco install make`), всё поднимается
|
||||
одной командой:
|
||||
|
||||
```powershell
|
||||
make up
|
||||
```
|
||||
|
||||
Она создаёт `.venv`, ставит зависимости, копирует `.env.example` в `.env`,
|
||||
накатывает миграции и запускает сервер. На свежем клоне первый запуск
|
||||
остановится с просьбой вписать `DATABASE_URL` в `.env` — впишите и
|
||||
запустите `make up` ещё раз. Остальные команды (`make test`, `make migrate`,
|
||||
`make run`, `make check-lk`, `make clean`) — в `make help`. Работает из
|
||||
PowerShell, cmd и Git Bash, а также на Linux/macOS.
|
||||
|
||||
Ниже — то же самое руками, без make.
|
||||
|
||||
## Установка
|
||||
|
||||
```powershell
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue