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.
72 lines
3.6 KiB
Markdown
72 lines
3.6 KiB
Markdown
# 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
|