ci: add protected production deploy workflow #40

Merged
admin merged 2 commits from chore/production-cd into main 2026-09-11 12:17:49 +00:00
Collaborator

Добавляет CD для production:

  • запуск после push в main или вручную;
  • backup PostgreSQL перед обновлением;
  • release-архив без .env;
  • пересборка api/worker без удаления orphan-контейнеров;
  • проверка /api/health и docker compose ps.

Добавлены инструкции по Actions secrets: PROD_HOST, PROD_USER, PROD_SSH_KEY, PROD_KNOWN_HOSTS. Версия сервиса повышена до 0.8.2.

Добавляет CD для production: - запуск после push в main или вручную; - backup PostgreSQL перед обновлением; - release-архив без .env; - пересборка api/worker без удаления orphan-контейнеров; - проверка /api/health и docker compose ps. Добавлены инструкции по Actions secrets: PROD_HOST, PROD_USER, PROD_SSH_KEY, PROD_KNOWN_HOSTS. Версия сервиса повышена до 0.8.2.
agent added 1 commit 2026-09-11 10:16:53 +00:00
ci: add protected production deploy workflow
Some checks failed
CI / test (pull_request) Failing after 1s
2d19eef9c2
Author
Collaborator

Ревью полного diff PR #40. Найдены блокирующие замечания:

  1. P1 — deploy не зависит от CI (.gitea/workflows/deploy.yml:3-6): push в main запускает production deploy независимо от результата pytest из CI. Исправить через общий workflow с needs: test или deploy по успешному workflow_run.
  2. P1 — гонка deploy-запусков (:19, :34, :52-59): фиксированный /tmp/miem-workers-release.tar и отсутствие concurrency позволяют двум запускам перезаписать архив и одновременно пересобрать production. Нужны уникальный путь на run и concurrency group с последовательным выполнением.
  3. P1 — CD неработоспособен без Actions secrets: PROD_HOST, PROD_USER, PROD_SSH_KEY, PROD_KNOWN_HOSTS должны быть настроены до merge; сейчас через пользователя agent их установить нельзя.

git diff --check и node --check app/static/admin.js проходят. Полный pytest в текущем окружении зависает на API TestClient, поэтому approve после исправлений и успешного CI не ставлю.

Ревью полного diff PR #40. Найдены блокирующие замечания: 1. **P1 — deploy не зависит от CI** (`.gitea/workflows/deploy.yml:3-6`): push в `main` запускает production deploy независимо от результата pytest из CI. Исправить через общий workflow с `needs: test` или deploy по успешному `workflow_run`. 2. **P1 — гонка deploy-запусков** (`:19`, `:34`, `:52-59`): фиксированный `/tmp/miem-workers-release.tar` и отсутствие `concurrency` позволяют двум запускам перезаписать архив и одновременно пересобрать production. Нужны уникальный путь на run и concurrency group с последовательным выполнением. 3. **P1 — CD неработоспособен без Actions secrets**: `PROD_HOST`, `PROD_USER`, `PROD_SSH_KEY`, `PROD_KNOWN_HOSTS` должны быть настроены до merge; сейчас через пользователя `agent` их установить нельзя. `git diff --check` и `node --check app/static/admin.js` проходят. Полный pytest в текущем окружении зависает на API TestClient, поэтому approve после исправлений и успешного CI не ставлю.
agent added 1 commit 2026-09-11 10:27:08 +00:00
ci: gate production deploy on tests
Some checks failed
CI / test (pull_request) Failing after 1s
CI / deploy (pull_request) Has been skipped
880ac6c53e
Author
Collaborator

Повторное ревью после коммита 880ac6c:

  • deploy теперь находится в CI workflow и имеет needs: test; на PR deploy не запускается, на main — только после успешного pytest/node check.
  • добавлена concurrency-группа production-deploy с последовательным выполнением.
  • release archive получил уникальное имя по github.run_id; независимый .gitea/workflows/deploy.yml удалён.
  • README синхронизирован с новой схемой.

git diff --check и node --check app/static/admin.js проходят. Code-level замечаний по текущему diff нет. Перед merge остаётся операционный prerequisite: настроить Actions secrets PROD_HOST, PROD_USER, PROD_SSH_KEY, PROD_KNOWN_HOSTS; без них deploy job закономерно завершится ошибкой.

Повторное ревью после коммита `880ac6c`: - deploy теперь находится в CI workflow и имеет `needs: test`; на PR deploy не запускается, на main — только после успешного pytest/node check. - добавлена `concurrency`-группа `production-deploy` с последовательным выполнением. - release archive получил уникальное имя по `github.run_id`; независимый `.gitea/workflows/deploy.yml` удалён. - README синхронизирован с новой схемой. `git diff --check` и `node --check app/static/admin.js` проходят. Code-level замечаний по текущему diff нет. Перед merge остаётся операционный prerequisite: настроить Actions secrets `PROD_HOST`, `PROD_USER`, `PROD_SSH_KEY`, `PROD_KNOWN_HOSTS`; без них deploy job закономерно завершится ошибкой.
admin merged commit 5d89ae3891 into main 2026-09-11 12:17:49 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: admin/miem_workers#40