добавлен Taskfile, образ собирается по контракту роли app_image
- таск `image` собирает `remembos:$BUILD_ID` (по умолчанию `dev`) — этот контракт зовёт роль app_image при деплое из pet-project-server - рядом обычные команды: build, run, test, lint, tidy, clean
This commit is contained in:
@@ -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** — основной язык
|
||||||
|
|||||||
@@ -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}}
|
||||||
Reference in New Issue
Block a user