feat(deploy): автоматизировать build+up glitchtip-auth-forwarder
- Добавить ops/glitchtip-auth-forwarder/** в paths-filter trigger deploy.yml - docker compose build glitchtip-auth-forwarder перед up -d (локальная сборка на VPS) - force-recreate glitchtip-auth-forwarder после caddy (подхватывает rebuild) - Обновить runbook: убрать упоминание ручного шага, добавить секцию Deploy
This commit is contained in:
parent
03dc8e6735
commit
4dbfcfad4a
2 changed files with 33 additions and 1 deletions
|
|
@ -14,6 +14,7 @@ on:
|
||||||
- "Caddyfile"
|
- "Caddyfile"
|
||||||
- ".forgejo/workflows/deploy.yml"
|
- ".forgejo/workflows/deploy.yml"
|
||||||
- "data/sql/**"
|
- "data/sql/**"
|
||||||
|
- "ops/glitchtip-auth-forwarder/**"
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
|
|
@ -248,6 +249,11 @@ jobs:
|
||||||
done
|
done
|
||||||
echo "All migrations applied."
|
echo "All migrations applied."
|
||||||
|
|
||||||
|
# Build local-only sidecar images (glitchtip-auth-forwarder).
|
||||||
|
# Эти services не в GHCR — сборка происходит на VPS на каждом deploy.
|
||||||
|
# Cache-friendly: первый build ~30s, последующие 1-3s если файлы не менялись.
|
||||||
|
docker compose -p gendesign -f docker-compose.prod.yml build glitchtip-auth-forwarder
|
||||||
|
|
||||||
docker compose -p gendesign -f docker-compose.prod.yml up -d
|
docker compose -p gendesign -f docker-compose.prod.yml up -d
|
||||||
|
|
||||||
# backend/.env.runtime изменения (SENTRY_RELEASE, GLITCHTIP_DSN)
|
# backend/.env.runtime изменения (SENTRY_RELEASE, GLITCHTIP_DSN)
|
||||||
|
|
@ -264,6 +270,12 @@ jobs:
|
||||||
docker compose -p gendesign -f docker-compose.prod.yml up -d \
|
docker compose -p gendesign -f docker-compose.prod.yml up -d \
|
||||||
--force-recreate --no-deps caddy
|
--force-recreate --no-deps caddy
|
||||||
|
|
||||||
|
# Forwarder: force-recreate чтобы новый image / новые env подхватывались.
|
||||||
|
# Без --force-recreate обычный `up -d` НЕ recreate'ит при image rebuild
|
||||||
|
# (т.к. image:latest tag не сменился — docker не видит разницы).
|
||||||
|
docker compose -p gendesign -f docker-compose.prod.yml up -d \
|
||||||
|
--force-recreate --no-deps glitchtip-auth-forwarder
|
||||||
|
|
||||||
# Cleanup old images
|
# Cleanup old images
|
||||||
for repo in ghcr.io/lekss361/gendesign-backend \
|
for repo in ghcr.io/lekss361/gendesign-backend \
|
||||||
ghcr.io/lekss361/gendesign-worker \
|
ghcr.io/lekss361/gendesign-worker \
|
||||||
|
|
|
||||||
|
|
@ -67,10 +67,30 @@ ssh gendesign 'docker compose -p gendesign restart glitchtip-auth-forwarder'
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| `GLITCHTIP_DSN` | Sentry DSN GlitchTip (project backend) | Да |
|
| `GLITCHTIP_DSN` | Sentry DSN GlitchTip (project backend) | Да |
|
||||||
|
|
||||||
## Phase 2 — реализовано (PR feat/glitchtip-auth-forwarder)
|
## Deploy
|
||||||
|
|
||||||
|
Sidecar собирается локально на VPS на каждом запуске `deploy.yml` (после merge в main).
|
||||||
|
Не требует pre-push image build, не использует GHCR.
|
||||||
|
|
||||||
|
Forwarder контейнер пересоздаётся `--force-recreate` чтобы подхватить новый image при изменении кода.
|
||||||
|
|
||||||
|
В случае sidecar не запустился:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ssh gendesign 'docker compose -p gendesign -f docker-compose.prod.yml logs --tail=100 glitchtip-auth-forwarder'
|
||||||
|
```
|
||||||
|
|
||||||
|
Если build fail на VPS — проверь `ops/glitchtip-auth-forwarder/Dockerfile` локально:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker build ops/glitchtip-auth-forwarder/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Phase 2 — реализовано (PR #430)
|
||||||
|
|
||||||
GlitchTip forwarder sidecar добавлен в `ops/glitchtip-auth-forwarder/`.
|
GlitchTip forwarder sidecar добавлен в `ops/glitchtip-auth-forwarder/`.
|
||||||
Архитектура: Python 3.12 slim, sentry-sdk 2.18, tail live Caddy log, offset в named volume.
|
Архитектура: Python 3.12 slim, sentry-sdk 2.18, tail live Caddy log, offset в named volume.
|
||||||
|
Deploy автоматизирован через `deploy.yml` — ручной SSH на VPS не нужен.
|
||||||
|
|
||||||
## Phase 3 (TODO)
|
## Phase 3 (TODO)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue