feat(pipeline): уведомления CI/CD — PipelineWatcher, CI загрузок на Gitea Actions
CI / ruff · mypy · pytest (pull_request) Failing after 3m40s
CI / ruff · mypy · pytest (pull_request) Failing after 3m40s
- app/pipeline: протокол CIProvider, клиент Gitea Actions (прогон по head_sha, упавший шаг, лог джоба, ретраи), PipelineWatcher — опрос только при незавершённых push, сообщение о push обновляется CI ⏳ → ✅/❌ → CD 🚀/⛔, автору — отдельные уведомления - деплой сервисов — только после зелёного CI; старый push не откатывает сервис, который развернёт более новый; после рестарта бот продолжает с того же места - CI_PROVIDER=none — прежнее поведение (деплой сразу после push) - шаблон tgit-uploads: .gitea/workflows/check.yml; .gitea/ защищён от правок из бота - миграция 0002: старые push помечены skipped, чтобы не слать им «таймаут CI» - ADR-016, ARCHITECTURE §2.5/§5.2, README, DEPLOY, .env.example Refs #11 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+22
-3
@@ -119,7 +119,6 @@ commit:
|
||||
push_go: "✅ Запушить"
|
||||
pushing: "⏳ Пушу…"
|
||||
pushed: "✅ Запушено: {sha} — {message}"
|
||||
ci_pending: "⏳ CI…"
|
||||
conflict: |-
|
||||
⚠️ Пока вы готовили черновик, в main изменились те же файлы:
|
||||
{paths}
|
||||
@@ -129,12 +128,32 @@ commit:
|
||||
push_empty: "В main уже всё так же — коммитить нечего. Черновик очищен."
|
||||
push_limit: "Лимит — 20 пушей в час. Попробуйте позже."
|
||||
push_failed: "Не удалось запушить: репозиторий недоступен. Черновик сохранён — попробуйте позже."
|
||||
deploying: "🚀 Разворачиваю: {services}…"
|
||||
deployed: "🚀 <b>{service}</b> работает · {sha}"
|
||||
|
||||
pipeline:
|
||||
ci_pending: "CI: ⏳ ждёт раннер"
|
||||
ci_running: "CI: ⏳ идёт проверка"
|
||||
ci_success: "CI: ✅ пройден"
|
||||
ci_failed: "CI: ❌ упал: {step}"
|
||||
ci_timeout: "CI: ⌛ не завершился за {minutes} мин"
|
||||
cd_waiting: "CD: ⏸ {services} — после CI"
|
||||
cd_running: "CD: 🚀 разворачиваю {services}…"
|
||||
cd_success: "CD: 🚀 {services} развёрнуто"
|
||||
cd_failed: "CD: ⛔ не развёрнуто: {services}"
|
||||
cd_not_run: "CD: ⏭ не запускался — CI не прошёл"
|
||||
cd_superseded: "CD: ⏭ эти сервисы развернёт более новый пуш"
|
||||
notify_ci_ok: |-
|
||||
✅ CI пройден · {sha}
|
||||
{url}
|
||||
notify_ci_failed: |-
|
||||
❌ CI упал на шаге <b>{step}</b> · {sha}
|
||||
Сервисы не развёрнуты. {url}
|
||||
notify_ci_timeout: "⌛ CI не завершился за {minutes} мин · {sha} — сервисы не развёрнуты."
|
||||
notify_cd_ok: "🚀 CD: сервисы {services} развёрнуты, ревизия {sha}"
|
||||
deploy_failed: |-
|
||||
⛔ <b>{service}</b> не развёрнут: {reason}
|
||||
Работает прежняя версия, если она была.
|
||||
removed: "🗑 <b>{service}</b> удалён из репозитория — остановлен на хосте"
|
||||
log_file: "Полный лог CI"
|
||||
|
||||
status:
|
||||
title: "🩺 Статус · {count} конт. · {time} UTC"
|
||||
|
||||
Reference in New Issue
Block a user