chore(ci): синхронизировать /opt/gendesign на остающемся хосте #3071

Merged
lekss361 merged 1 commit from chore/deploy-infra-host into main 2026-08-24 00:51:51 +00:00

1 commit

Author SHA1 Message Date
bot-backend
33ef0f7330 chore(ci): синхронизировать /opt/gendesign на остающемся хосте
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
После переезда 30.08 `secrets.DEPLOY_HOST` станет указывать на Selectel —
и рабочее дерево /opt/gendesign на Beget перестанет обновляться совсем.
Молча: ни ошибки, ни падения пайплайна.

А оттуда на Beget продолжат работать:
  - cron-скрипты бэкапов (backup.sh, backup-forgejo.sh,
    check-backup-staleness.sh, lib-backup.sh, docker-prune.sh)
  - docker-compose.prod.yml для Forgejo / GlitchTip / CouchDB
  - Caddyfile + caddy/sites/infra.caddy — единственный публичный вход
    для git / errors / obsidian (#3062)

Любая будущая правка этих файлов легла бы в main и никогда не доехала до
машины, которая их исполняет. Это класс #2887 («скрипт запускается по
cron из /opt/gendesign, куда попадает только через жёсткую
пересинхронизацию дерева на шаге деплоя»), но не на уровне одного файла,
а на уровне целого хоста.

Отдельный workflow, а не job в deploy.yml: разные адресаты и разные
вердикты — «выкатили продукт на Selectel» и «синхронизировали инфру на
Beget» независимы, и падение второго не должно читаться как неудавшийся
деплой продукта. Триггеры тоже разные: инфра-хосту не нужны пересборки
backend/frontend.

ИНЕРТЕН, пока не задан INFRA_DEPLOY_HOST. Сегодня Beget и есть
DEPLOY_HOST, второй проход по тому же хосту был бы лишним и мог бы
состязаться с основным деплоем за докер-демон (#2950). Включается одной
настройкой в момент, когда хосты разъедутся.

Намеренно НЕ делает: прун образов (конкурирует за leases докер-демона,
#2950) и перезапуск Forgejo/GlitchTip/CouchDB (правка ops-скрипта не
повод ронять git). Caddy — reload, а не recreate: невалидный конфиг
откажет громко, старый продолжит работать.

Проверено: YAML разбирается, триггеры и paths те, что задуманы, шагов 2;
гейт прогнан обеими ветками (пустой секрет -> enabled=false, заданный ->
enabled=true).

Refs #3059, #3057, #3029
2026-08-24 03:48:44 +03:00