ci(deploy): прод-compose из приватного инфра-репо iistwin-infra (шаг 0.14)
Убраны git stash кастомизаций и восстановление compose из бэкапа вне репо. Источник правды для прод-compose: iisultanov/iistwin-infra (приватный), клонируется в /opt/crm-infra deploy-ключом при каждом деплое
This commit is contained in:
23
.github/workflows/deploy.yml
vendored
23
.github/workflows/deploy.yml
vendored
@@ -71,21 +71,20 @@ jobs:
|
||||
set -e
|
||||
cd /opt/crm
|
||||
|
||||
# 1. Сохранить кастомизации сервера
|
||||
git stash push -m 'server-customizations' \
|
||||
-- docker-compose.yml docker-entrypoint.sh \
|
||||
server/index.ts shared/schema.ts \
|
||||
client/src/services/auth.service.ts || true
|
||||
|
||||
# 2. Получить ровно ту версию, что в GitHub (без merge-конфликтов)
|
||||
# 1. Получить ровно ту версию кода, что в GitHub (без merge-конфликтов)
|
||||
git fetch origin main
|
||||
git reset --hard origin/main
|
||||
|
||||
# 3. Восстановить кастомизации
|
||||
git stash pop || true
|
||||
|
||||
# 4. Восстановить docker-compose из бэкапа (вне репозитория)
|
||||
cp /opt/crm-server/docker-compose.yml.bak.serverfix docker-compose.yml
|
||||
# 2. Прод-compose — из приватного инфра-репозитория (единственный источник правды).
|
||||
# Раньше: git stash кастомизаций + копия из бэкапа вне репо (дрейф, шаг 0.14).
|
||||
if [ ! -d /opt/crm-infra/.git ]; then
|
||||
GIT_SSH_COMMAND="ssh -i /home/deploy/.ssh/id_ed25519_infra" \
|
||||
git clone git@github.com:iisultanov/iistwin-infra.git /opt/crm-infra
|
||||
else
|
||||
git -C /opt/crm-infra fetch origin main
|
||||
git -C /opt/crm-infra reset --hard origin/main
|
||||
fi
|
||||
cp /opt/crm-infra/docker-compose.prod.yml docker-compose.yml
|
||||
|
||||
# 5. Удалить старые/зависшие контейнеры, чтобы избежать
|
||||
# Conflict: container name is already in use
|
||||
|
||||
@@ -498,3 +498,19 @@
|
||||
- Что изменено: jsdom 30 → ^26 (devDependencies).
|
||||
- Как проверялось: vitest 118/118 локально; pr-check на этом коммите.
|
||||
- Подводные камни: CI = Node 20, локаль = Node 24 — расхождение учитывать при добавлении тестовых зависимостей.
|
||||
|
||||
---
|
||||
|
||||
## [0.14] Дрейф конфигурации: прод-compose в приватном инфра-репозитории
|
||||
|
||||
- Статус: ⏳ деплой (код запушен, первый деплой новой схемы — проверка)
|
||||
- Зачем: прод работает ровно на коде из Git; убрать git stash и бэкап compose вне репо (аудит С5, решение пользователя — отдельный приватный репо).
|
||||
- Что сделано:
|
||||
- Создан приватный репо `iisultanov/iistwin-infra` (через GitHub API): `docker-compose.prod.yml` (бывший .bak.serverfix с лимитами 0.4), `README.md` (план перехода), `.env.template` (32 ключа без значений).
|
||||
- На сервере: `/opt/crm-infra` — клон инфра-репо под deploy (deploy-key `id_ed25519_infra`, read-only deploy key в GitHub).
|
||||
- `deploy.yml`: удалены stash push/pop и `cp .bak.serverfix`; вместо них — fetch/reset основного репо + fetch/reset `/opt/crm-infra` + `cp docker-compose.prod.yml`.
|
||||
- Чистка дрейфа на сервере: `git stash clear` (3 старых стеша, в т.ч. дубль /apps static — уже в репо), снят UU-конфликт, HEAD чист.
|
||||
- Старый `/opt/crm-server/docker-compose.yml.bak.serverfix` сохранён (откат до первого успешного деплоя новой схемы).
|
||||
- Как проверялось: clone от deploy — OK; первый деплой новой схемы — ниже в этой записи.
|
||||
- Влияние на поиск/UX: нет.
|
||||
- Подводные камни: deploy-ключи GitHub нельзя шарить между репо (422) — у infra свой ключ; `.env` по-прежнему только на сервере; Traefik-метки/сеть n8n_proxy теперь версионируются в iistwin-infra.
|
||||
|
||||
Reference in New Issue
Block a user