From 5bbcfa18bc380ac887270b0132e4fd860caae4c9 Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Sat, 25 Jul 2026 14:05:58 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20Taskfile,=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B7=20=D1=81?= =?UTF-8?q?=D0=BE=D0=B1=D0=B8=D1=80=D0=B0=D0=B5=D1=82=D1=81=D1=8F=20=D0=BF?= =?UTF-8?q?=D0=BE=20=D0=BA=D0=BE=D0=BD=D1=82=D1=80=D0=B0=D0=BA=D1=82=D1=83?= =?UTF-8?q?=20=D1=80=D0=BE=D0=BB=D0=B8=20app=5Fimage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - таск `image` собирает `remembos:$BUILD_ID` (по умолчанию `dev`) — этот контракт зовёт роль app_image при деплое из pet-project-server - рядом обычные команды: build, run, test, lint, tidy, clean --- README.md | 12 ++++++++++++ Taskfile.yml | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 Taskfile.yml diff --git a/README.md b/README.md index 51ab934..15238cb 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,18 @@ - [Алгоритм поиска воспоминаний](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** — основной язык diff --git a/Taskfile.yml b/Taskfile.yml new file mode 100644 index 0000000..6988d3a --- /dev/null +++ b/Taskfile.yml @@ -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}}