CI / ruff · mypy · pytest (pull_request) Failing after 3m40s
- app/pipeline: протокол CIProvider, клиент Gitea Actions (прогон по head_sha, упавший шаг, лог джоба, ретраи), PipelineWatcher — опрос только при незавершённых push, сообщение о push обновляется CI ⏳ → ✅/❌ → CD 🚀/⛔, автору — отдельные уведомления - деплой сервисов — только после зелёного CI; старый push не откатывает сервис, который развернёт более новый; после рестарта бот продолжает с того же места - CI_PROVIDER=none — прежнее поведение (деплой сразу после push) - шаблон tgit-uploads: .gitea/workflows/check.yml; .gitea/ защищён от правок из бота - миграция 0002: старые push помечены skipped, чтобы не слать им «таймаут CI» - ADR-016, ARCHITECTURE §2.5/§5.2, README, DEPLOY, .env.example Refs #11 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
40 lines
1.5 KiB
YAML
40 lines
1.5 KiB
YAML
# CI репозитория загрузок tgit на Gitea Actions (ADR-016). Шаблон живёт в HSE/tgit: infra/uploads-template/ — правки делать там.
|
||
# Бот находит этот прогон по sha своего push и разворачивает изменённые сервисы только после зелёного check (#11).
|
||
# Имя файла — CI_WORKFLOW бота. Из Telegram не редактируется (SPEC C-16).
|
||
name: check
|
||
|
||
on:
|
||
push:
|
||
branches: [main]
|
||
|
||
# Без cancel-in-progress: каждый push ждёт свой вердикт — иначе бот не дождётся отменённого прогона.
|
||
|
||
jobs:
|
||
check:
|
||
runs-on: ubuntu-latest
|
||
timeout-minutes: 25
|
||
steps:
|
||
- uses: actions/checkout@v4
|
||
|
||
- name: Setup Python 3.12
|
||
uses: actions/setup-python@v5
|
||
with:
|
||
python-version: "3.12"
|
||
|
||
- name: Install uv
|
||
# pip, а не astral-sh/setup-uv: на self-hosted Gitea экшен ходит в GitHub API и падает (опыт Vobot)
|
||
run: pip install uv
|
||
|
||
# Шаги последовательно: имя первого упавшего бот покажет автору push вместе с логом.
|
||
- name: compile
|
||
run: python -m compileall -q -x '(^|/)\.' .
|
||
|
||
- name: lint
|
||
run: uvx ruff@0.13 check .
|
||
|
||
- name: security
|
||
run: uvx bandit@1.8 -q -r services -ll
|
||
|
||
- name: tests
|
||
run: python .tgit/run_tests.py
|