Добавить SENTRY_RELEASE в deploy.yml для tracking релизов #4

Closed
opened 2026-04-26 11:24:47 +00:00 by lekss361 · 1 comment
lekss361 commented 2026-04-26 11:24:47 +00:00 (Migrated from github.com)

Sentry уже работает (event_id 67f05bdd... успешно отправлен 26.04). Чтобы привязывать ошибки к коммитам — нужно прокинуть SENTRY_RELEASE в backend контейнер.

Что сделать:

  1. В deploy.yml, в SSH-скрипте перед up -d:
    echo "SENTRY_RELEASE=$IMAGE_TAG" >> /opt/gendesign/backend/.env.runtime
    
  2. В docker-compose.prod.yml для backend добавить второй env_file:
    env_file:
      - ./backend/.env
      - ./backend/.env.runtime
    
  3. В app/main.py передать в sentry_sdk.init:
    sentry_sdk.init(
        dsn=settings.sentry_dsn,
        environment=settings.environment,
        release=os.getenv("SENTRY_RELEASE"),  # short SHA from CI
        traces_sample_rate=0.1,
    )
    

Acceptance:

  • В Sentry → Issues каждое событие показывает release-тег с SHA коммита
  • Sentry → Releases список релизов с timestamps деплоев
Sentry уже работает (event_id 67f05bdd... успешно отправлен 26.04). Чтобы привязывать ошибки к коммитам — нужно прокинуть `SENTRY_RELEASE` в backend контейнер. **Что сделать:** 1. В `deploy.yml`, в SSH-скрипте перед `up -d`: ```bash echo "SENTRY_RELEASE=$IMAGE_TAG" >> /opt/gendesign/backend/.env.runtime ``` 2. В `docker-compose.prod.yml` для backend добавить второй env_file: ```yaml env_file: - ./backend/.env - ./backend/.env.runtime ``` 3. В `app/main.py` передать в `sentry_sdk.init`: ```python sentry_sdk.init( dsn=settings.sentry_dsn, environment=settings.environment, release=os.getenv("SENTRY_RELEASE"), # short SHA from CI traces_sample_rate=0.1, ) ``` **Acceptance:** - [ ] В Sentry → Issues каждое событие показывает release-тег с SHA коммита - [ ] Sentry → Releases список релизов с timestamps деплоев
lekss361 commented 2026-04-30 19:46:18 +00:00 (Migrated from github.com)

Реализовано в коммите 25b7303 (Sprint 1):

  • backend/app/main.py + config.py — settings.sentry_release → sentry_sdk.init(release=...)
  • .github/workflows/deploy.yml — пишет SENTRY_RELEASE=$IMAGE_TAG в backend/.env.runtime после git pull
  • docker-compose.prod.yml — backend/worker/beat подхватывают .env.runtime через env_file [{path, required: false}]
  • backend/.env.runtime.example + .gitignore исключение

После следующего деплоя в Sentry → Issues каждое событие будет помечено release=, и в Sentry → Releases появится список релизов с timestamps деплоев.

Реализовано в коммите 25b7303 (Sprint 1): - backend/app/main.py + config.py — settings.sentry_release → sentry_sdk.init(release=...) - .github/workflows/deploy.yml — пишет SENTRY_RELEASE=$IMAGE_TAG в backend/.env.runtime после git pull - docker-compose.prod.yml — backend/worker/beat подхватывают .env.runtime через env_file [{path, required: false}] - backend/.env.runtime.example + .gitignore исключение После следующего деплоя в Sentry → Issues каждое событие будет помечено release=<git short sha>, и в Sentry → Releases появится список релизов с timestamps деплоев.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#4
No description provided.