- Раскладка docs/ приведена к канону 2: заведены passport/architecture/ database/security/review и research; docs/specs, drafts, backlog, review/ и BRIEF.md разобраны и удалены, беклог переехал в docs/tasks (34 задачи, 6 целей, слаги на английский). - Нарративы specs удалены как дубли openspec-спек после поимённой сверки; остаток заведён задачами (редактор маппинга ревью, крайние случаи именования), отказ от сущности title промоутнут в ADR. - Проектные копии агентов и скиллов ревью/пайплайна удалены в пользу плагинов av-dev-pm и av-dev-pipeline; в task gate добавлен шаг canon вместо er-schema.
95 lines
3.1 KiB
YAML
95 lines
3.1 KiB
YAML
# yaml-language-server: $schema=https://taskfile.dev/schema.json
|
||
#
|
||
# Запуск команд проекта через Task (https://taskfile.dev).
|
||
# Список задач: `task --list`.
|
||
|
||
version: '3'
|
||
|
||
vars:
|
||
BINARY: jellybit
|
||
PKG: ./cmd/jellybit
|
||
# Версии инструментов для воспроизводимой установки (см. задачу setup).
|
||
GOLANGCI_VERSION: v2.12.2
|
||
GOVULNCHECK_VERSION: v1.6.0
|
||
|
||
tasks:
|
||
default:
|
||
desc: Список доступных задач
|
||
cmds:
|
||
- task --list
|
||
silent: true
|
||
|
||
run:
|
||
desc: 'Локальный запуск (нужен ./config.toml с db_path -> ./jellybit.db)'
|
||
deps: [assets]
|
||
cmds:
|
||
- go run {{.PKG}} --config ./config.toml
|
||
|
||
build:
|
||
desc: Статический бинарь linux/amd64 для сервера (Intel N150)
|
||
deps: [assets]
|
||
cmds:
|
||
- CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -trimpath -ldflags='-s -w' -o {{.BINARY}} {{.PKG}}
|
||
|
||
test:
|
||
desc: Прогон тестов
|
||
cmds:
|
||
- go test ./...
|
||
|
||
lint:
|
||
desc: Запуск golangci-lint
|
||
cmds:
|
||
- golangci-lint run
|
||
|
||
gate:
|
||
desc: 'Детерминированный гейт ревью: build/vet/lint/test/race/покрытие диффа/миграции/канон docs/секреты. BASE=<rev> — база диффа'
|
||
cmds:
|
||
- python3 scripts/gate.py {{.BASE}}
|
||
|
||
review:context:
|
||
desc: 'Вход для архитектурного прохода ревью: пакеты, граф зависимостей, инвентарь концепций'
|
||
cmds:
|
||
- python3 scripts/review-context.py
|
||
|
||
tidy:
|
||
desc: go mod tidy
|
||
cmds:
|
||
- go mod tidy
|
||
|
||
assets:
|
||
desc: 'Идемпотентный фетч вендорных ассетов в web/static/vendor (по web/assets.manifest, проверка sha256; Node не нужен)'
|
||
cmds:
|
||
- |
|
||
set -e
|
||
while IFS= read -r line; do
|
||
case "$line" in ''|\#*) continue;; esac
|
||
set -- $line
|
||
dest=$1; url=$2; sum=$3
|
||
file="web/static/$dest"
|
||
if [ -f "$file" ] && echo "$sum $file" | sha256sum -c --status - 2>/dev/null; then
|
||
continue
|
||
fi
|
||
mkdir -p "$(dirname "$file")"
|
||
echo "↓ $dest"
|
||
curl -fsSL --retry 3 -o "$file" "$url"
|
||
echo "$sum $file" | sha256sum -c -
|
||
done < web/assets.manifest
|
||
|
||
image:
|
||
desc: 'Docker-образ из готового бинаря. Тег из $BUILD_ID (по умолчанию dev; роль app_image umbar передаёт свой). См. docs/adr local-image-build'
|
||
deps: [build]
|
||
cmds:
|
||
- docker build -t {{.BINARY}}:${BUILD_ID:-dev} .
|
||
|
||
clean:
|
||
desc: Удалить собранный бинарь
|
||
cmds:
|
||
- rm -f {{.BINARY}}
|
||
|
||
setup:
|
||
desc: Установка инструментов разработки (линтер, govulncheck + git-хуки lefthook)
|
||
cmds:
|
||
- go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@{{.GOLANGCI_VERSION}}
|
||
- go install golang.org/x/vuln/cmd/govulncheck@{{.GOVULNCHECK_VERSION}}
|
||
- lefthook install
|