diff --git a/CHANGELOG.md b/CHANGELOG.md index 8278a67..13b9287 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,14 @@ Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) ## [Unreleased] +## [v0.0.3] — 2026-06-03 (tagged, NOT deployed) + +> ⚠️ Тег создан и запушен, PR смерджен в `main`, но docker-образ на test +> **не задеплоен**: deploy-hook `/home/slin/bin/enduro-deploy-hook.sh` +> упал на `Permission denied` при записи в `/var/log/enduro-trails/` +> (каталог root-owned, у `slin` нет права записи и нет `NOPASSWD sudo`). +> Подробности и инструкция для ops: `docs/work-items/ET-011/14-deploy-log.md`. + ### Added - ET-011: Скачивание GPX из popup публичного трека. Новый эндпоинт `GET /api/gps-tracks/{track_id}/download` собирает GPX 1.1 из геометрии diff --git a/docs/work-items/ET-011/14-deploy-log.md b/docs/work-items/ET-011/14-deploy-log.md new file mode 100644 index 0000000..cc341de --- /dev/null +++ b/docs/work-items/ET-011/14-deploy-log.md @@ -0,0 +1,71 @@ +# Deploy Log — ET-011 + +- **Version (tag):** v0.0.3 +- **Date:** 2026-06-03 23:08 UTC +- **PR:** #21 (merged at 2026-06-04T02:08:45+03:00, merge commit `b21f543289a6d46711710068a7528c8749cf2f0f`) +- **Environment:** test (https://openclaw.mva154.duckdns.org/enduro/) +- **Healthcheck:** NOT RUN (deploy did not start) +- **Smoke:** NOT RUN (deploy did not start) +- **Status:** FAILED — infrastructure blocker + +## Что было сделано + +1. PR #21 (`feat(gps-tracks): GPX download from public track popup (ET-011)`) + успешно смерджен в `main` через Gitea API (`Do=merge`, merge commit + `b21f543289a6d46711710068a7528c8749cf2f0f`). +2. Создан и запушен тег `v0.0.3` (от `origin/main`, + инкремент patch от `v0.0.2`). + +## Что НЕ сделано (и почему) + +3. **Deploy hook упал на старте** при первой записи в лог: + ``` + /home/slin/bin/enduro-deploy-hook.sh: line 15: \ + /var/log/enduro-trails/deploy-hook.log: Permission denied + DEPLOY_RC=1 + ``` + + Причина: каталог `/var/log/enduro-trails/` принадлежит `root:root` + (`drwxr-xr-x`), пользователь `slin` (uid=1000) не имеет права на запись. + Хук-скрипт (`set -e`, строка 15: `echo "..." >> $LOG`) падает до того, + как успевает выполнить `git pull` или `docker compose up -d app`. + + У `slin` нет беспарольного `sudo` (`sudo -n -l` → `a password is + required`), поэтому фикс прав на хосте недоступен из роли deployer. + + Файла `/home/slin/repos/enduro-trails/.deploy-prev-image` нет — это + первый запуск хука; никакой деплой через него ещё не отрабатывал. + +4. **Healthcheck / smoke** не запускались: новый образ не катился, + контейнер `enduro-trails-app-1` продолжает работать на старом образе + (Up 37 hours, unhealthy ещё до начала этого деплоя). +5. **Rollback** не выполнялся: новый код не задеплоен, откатывать нечего. + Запуск `--rollback` бессмысленен (нет `.deploy-prev-image`) и упал бы + на той же permission denied. + +## Текущее состояние production (test env) + +- `https://openclaw.mva154.duckdns.org/enduro/` → HTTP 200 (старый образ). +- На `main` лежит код ET-011 (commit `b21f543`) + тег `v0.0.3`, но в + контейнере он не запущен. + +## Что нужно от ops, чтобы доехать + +Любой из вариантов разблокирует деплой: + +- `sudo chown slin:slin /var/log/enduro-trails` (или `chmod 0777`), либо +- поправить `/home/slin/bin/enduro-deploy-hook.sh`, чтобы `LOG` + указывал на каталог, в который `slin` может писать + (например `/home/slin/var/log/enduro-trails/deploy-hook.log`), либо +- выдать `slin` `NOPASSWD` на `enduro-deploy-hook.sh` и обернуть его + в `sudo`. + +После фикса повторно дернуть `bash /home/slin/bin/enduro-deploy-hook.sh` +от имени `slin` — версия на `main` уже та, что должна катиться (тег +`v0.0.3`), пересоздавать PR/тег не нужно. + +## Артефакты + +- Tag: `v0.0.3` (`origin/main` @ `b21f543`) +- PR: #21 (merged) +- Deploy attempt timestamp: 2026-06-03 23:08 UTC