gendesign/.forgejo/workflows
bot-backend 8bce8cf5ae
All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
CI / changes (pull_request) Successful in 9s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
fix(ci): fail-safe registry verification + real cache self-heal + honest health-check (#2841 R2)
Ревью R2 нашёл, что вся безопасность предыдущего фикса держалась на
недоказанной поддержке act_runner'ом steps.<id>.outcome: если раннер его
не заполняет, retry-шаг молча не бежит, continue-on-error проглатывает
падение сборки, job зелёный — а деплой тянет старый :latest на прод.

- Добавлен engine-agnostic verify-шаг после каждого retry (6 мест,
  deploy.yml + deploy-tradein.yml): `docker buildx imagetools inspect
  <image>:<sha>` без continue-on-error. Не зависит от того, поддерживает
  ли раннер outcome — проверяет реальное состояние registry напрямую.
  Если ни build, ни retry реально не запушили образ — шаг падает и job
  честно FAILURE независимо от семантики outcome.
- Вернул `cache-to` в retry-шаги (6 мест): без него битый buildcache-тег
  никогда не перезаписывался — retry всегда собирал без cache-to, значит
  cache-to не выполнялся НИКОГДА, и каждый следующий прогон снова падал
  на том же cache-from. Заявленное самолечение не работало ни разу.
- Health-check в deploy.yml (main-стек) под `set -e` не мог упасть:
  `curl ... && break` — curl не последняя команда &&-списка, POSIX
  освобождает такие команды от errexit, цикл дохаживал до sleep (exit 0)
  даже если curl ни разу не отдал 200. Приведено к паттерну
  deploy-tradein.yml: явный флаг healthy + `exit 1` после цикла.
  Подтверждено локальным bash-репро (mock curl, всегда failure): старая
  версия — exit 0, новая — exit 1; позитивный сценарий не сломан.

docker rm -f без -v в SSH-скриптах деплоя не тронут.
2026-08-15 18:44:48 +03:00
..
ci-tradein.yml chore(ops): чинить корень утечки docker-томов + еженедельная уборка 2026-08-15 16:53:25 +03:00
ci.yml chore(ops): чинить корень утечки docker-томов + еженедельная уборка 2026-08-15 16:53:25 +03:00
deploy-obsidian.yml fix(devops): переносим deploy-obsidian.yml в .forgejo/workflows/ (#2416) (#2439) 2026-07-05 15:34:55 +00:00
deploy-tradein.yml fix(ci): fail-safe registry verification + real cache self-heal + honest health-check (#2841 R2) 2026-08-15 18:44:48 +03:00
deploy.yml fix(ci): fail-safe registry verification + real cache self-heal + honest health-check (#2841 R2) 2026-08-15 18:44:48 +03:00
perimeter-smoke.yml feat(mera/b2c): публичный периметр на отдельном домене meraocenka.ru — этап 1 из 8 (#2545) 2026-08-02 12:51:46 +00:00
stale-claims.yml fix(stale-claims): avoid SIGPIPE 141 — pass file path не pipe 2026-05-28 01:05:56 +03:00