добавлено окружение разработки: контейнер и гейт ревью

- сервис поднимается через `task up`/`task restart`, данные вынесены в ./data
  и переживают пересборку — поток с телефона не прерывается
- `task gate` гоняет build/vet/lint/test/race/покрытие диффа/миграции, плюс два
  шага под healthlog: данные о здоровье в индексе и синхронность образцов конфига
- `task review:context` собирает вход для архитектурного прохода ревью
This commit is contained in:
av
2026-08-01 14:11:41 +03:00
parent 2ef43e1c2c
commit 505664acf1
9 changed files with 631 additions and 2 deletions
+55
View File
@@ -38,6 +38,61 @@ tasks:
cmds:
- golangci-lint run
up:
desc: 'Собрать и поднять сервис в контейнере (данные в ./data переживают пересборку)'
deps: [build]
cmds:
- docker compose up -d --build
- task: wait
down:
desc: Остановить контейнер
cmds:
- docker compose down
restart:
desc: 'Пересобрать бинарь и перезапустить сервис — основной цикл разработки'
deps: [build]
cmds:
- docker compose up -d --build
- task: wait
wait:
desc: 'Дождаться, пока сервис ответит на /healthz'
internal: true
cmds:
- |
for i in $(seq 1 30); do
if curl -fsS --max-time 2 http://127.0.0.1:8080/healthz >/dev/null 2>&1; then
echo "healthlog отвечает на :8080"; exit 0
fi
sleep 1
done
echo "healthlog не поднялся за 30 секунд, смотри: task logs" >&2
exit 1
logs:
desc: 'Логи сервиса (LINES=N — сколько строк, по умолчанию 50)'
vars:
LINES: '{{.LINES | default "50"}}'
cmds:
- docker compose logs --tail {{.LINES}} healthlog
ps:
desc: Состояние контейнера
cmds:
- docker compose ps
gate:
desc: 'Детерминированный гейт ревью: build/vet/lint/test/race/покрытие диффа/миграции/секреты. BASE=<rev> — база диффа'
cmds:
- python3 scripts/gate.py {{.BASE}}
review:context:
desc: 'Вход для архитектурного прохода ревью: пакеты, граф зависимостей, инвентарь концепций'
cmds:
- python3 scripts/review-context.py
tidy:
desc: go mod tidy
cmds: