diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 15f38d6..538e6c4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,8 +3,10 @@ name: CI on: push: branches: [main] + tags: ['v*'] pull_request: branches: [main] + workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -78,8 +80,11 @@ jobs: path: src/food-market.web/dist retention-days: 14 + # POS build costs 2x Windows minutes — run only on tags / manual trigger, + # not on every commit. Releases are built from tags anyway. pos: name: POS (WPF, Windows) + if: startsWith(github.ref, 'refs/tags/v') || github.event_name == 'workflow_dispatch' runs-on: windows-latest steps: - uses: actions/checkout@v4 diff --git a/docs/24x7.md b/docs/24x7.md index 47059df..6affa18 100644 --- a/docs/24x7.md +++ b/docs/24x7.md @@ -68,6 +68,20 @@ - БД: ежедневный pg_dump `.sql.gz`, 30 дней ротации, скрипт `deploy/backup.sh`. - Критические операции (миграции с удалением данных, force-push на main) — всегда спрошу тебя. +## GitHub Actions бюджет (free: 2000 мин/мес на приватный репо) + +| Job | Runner | Мин/запуск | Множитель | Биллинговых мин | Когда | +|---|---|---|---|---|---| +| backend | Linux | 3 | 1× | 3 | каждый push/PR | +| web | Linux | 2 | 1× | 2 | каждый push/PR | +| pos | Windows | 5 | 2× | 10 | **только на теги `v*` + ручной запуск** | +| docker-api | Linux | 3 | 1× | 3 | только push в main (с изм. кода) | +| docker-web | Linux | 3 | 1× | 3 | только push в main (с изм. кода) | + +**Оценка:** ~11 бил.мин на обычный коммит. Лимит 2000 мин ≈ 180 коммитов в месяц или 6 в день. На теге релиза +10 за POS. + +**Когда упрёмся (ориентир: 200+ коммитов/мес):** поднимем self-hosted runner на Proxmox-VM (Ubuntu, 2 CPU/2 GB). В workflow: `runs-on: [self-hosted, linux]` вместо `ubuntu-latest`. Безлимит по времени. + ## Что нужно для полноценного 24/7 (ещё не сделано) - [x] GitHub Actions для CI (backend/web/POS) — готов `.github/workflows/ci.yml`