добавлен Taskfile, образ собирается по контракту роли app_image

- таск `image` собирает `remembos:$BUILD_ID` (по умолчанию `dev`) — этот
  контракт зовёт роль app_image при деплое из pet-project-server
- рядом обычные команды: build, run, test, lint, tidy, clean
This commit is contained in:
av
2026-07-25 14:05:58 +03:00
parent 22fe1fdf98
commit 5bbcfa18bc
2 changed files with 64 additions and 0 deletions
+12
View File
@@ -12,6 +12,18 @@
- [Алгоритм поиска воспоминаний](spec/SEARCH.md) - [Алгоритм поиска воспоминаний](spec/SEARCH.md)
## Сборка и деплой
Команды проекта — через [Task](https://taskfile.dev), список: `task --list`.
Деплоем занимается плейбук `playbook-remembos.yml` в `pet-project-server`:
роль `app_image` собирает образ локально этим репозиторием и везёт его на
сервер через `docker save`/`load` — реестр не участвует.
Контракт роли — задача `image`: она получает `BUILD_ID` через окружение и
собирает `remembos:$BUILD_ID`. Без переменной (`task image`) собирается
`remembos:dev` для локальной работы.
## Стек ## Стек
- **Go** — основной язык - **Go** — основной язык
+52
View File
@@ -0,0 +1,52 @@
# yaml-language-server: $schema=https://taskfile.dev/schema.json
#
# Запуск команд проекта через Task (https://taskfile.dev).
# Список задач: `task --list`.
version: '3'
vars:
BINARY: remembos
PKG: ./cmd/remembos
tasks:
default:
desc: Список доступных задач
cmds:
- task --list
silent: true
run:
desc: 'Локальный запуск (нужен ./config.toml)'
cmds:
- go run {{.PKG}} --config ./config.toml
build:
desc: Статический бинарь linux/amd64
cmds:
- CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o {{.BINARY}} {{.PKG}}
test:
desc: Прогон тестов
cmds:
- go test ./...
lint:
desc: Запуск golangci-lint
cmds:
- golangci-lint run
tidy:
desc: go mod tidy
cmds:
- go mod tidy
image:
desc: 'Docker-образ (сборка Go внутри образа). Тег из $BUILD_ID, по умолчанию dev'
cmds:
- docker build -t {{.BINARY}}:${BUILD_ID:-dev} .
clean:
desc: Удалить собранный бинарь
cmds:
- rm -f {{.BINARY}}