deployer(ET-011): tag v0.0.3, deploy FAILED — infra blocker on test host
All checks were successful
CI / lint (pull_request) Successful in 4s
CI / test (pull_request) Successful in 7s
CI / build (pull_request) Successful in 2s

PR #21 merged to main and tag v0.0.3 pushed, but docker-compose roll on
test host did not happen: /home/slin/bin/enduro-deploy-hook.sh exits with
"Permission denied" on /var/log/enduro-trails/deploy-hook.log
(root-owned, no NOPASSWD sudo for slin). Healthcheck/smoke/rollback all
skipped — new code is on main but old image still serves traffic.

Action for ops: see docs/work-items/ET-011/14-deploy-log.md
("Что нужно от ops, чтобы доехать"). After fix, re-run deploy hook —
PR/tag do not need to be redone.
This commit is contained in:
2026-06-03 23:11:31 +00:00
parent b21f543289
commit 4b529004ba
2 changed files with 79 additions and 0 deletions

View File

@@ -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 из геометрии

View File

@@ -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