Files
enduro-trails/docs/work-items/ET-011/14-deploy-log.md
claude-bot 4b529004ba
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
deployer(ET-011): tag v0.0.3, deploy FAILED — infra blocker on test host
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.
2026-06-03 23:11:31 +00:00

3.6 KiB
Raw Blame History

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).

Что НЕ сделано (и почему)

  1. 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 -la password is required), поэтому фикс прав на хосте недоступен из роли deployer.

    Файла /home/slin/repos/enduro-trails/.deploy-prev-image нет — это первый запуск хука; никакой деплой через него ещё не отрабатывал.

  2. Healthcheck / smoke не запускались: новый образ не катился, контейнер enduro-trails-app-1 продолжает работать на старом образе (Up 37 hours, unhealthy ещё до начала этого деплоя).

  3. 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