123
Some checks failed
CI / Lint (ruff + mypy) (push) Failing after 34s
CI / Run tests (push) Has been skipped
CI / Docker build test (push) Successful in 13s

This commit is contained in:
2026-04-02 18:04:04 +07:00
commit 02afbd23ec
31 changed files with 2624 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
---
name: Bug report
about: Сообщить об ошибке
title: "[BUG]"
labels: bug
---
## Описание
Опишите проблему.
## Как воспроизвести
1. ...
2. ...
3. ...
## Ожидаемое поведение
Что должно было произойти.
## Логи / скриншоты
Добавьте при необходимости.

View File

@@ -0,0 +1,16 @@
---
name: Feature request
about: Предложить новую функцию
title: "[FEATURE]"
labels: enhancement
---
## Описание функции
Опишите идею.
## Зачем это нужно
Какая проблема решается.
## Дополнительная информация

View File

@@ -0,0 +1,14 @@
## Описание
Что делает этот PR?
## Тип изменения
- [ ] bug fix
- [ ] новая функция
- [ ] рефакторинг
## Проверки
- [ ] тесты проходят
- [ ] код отформатирован

114
.gitea/workflows/ci.yml Normal file
View File

@@ -0,0 +1,114 @@
# ============================================================
# Continuous Integration (CI)
# Основной pipeline проверки проекта
# ============================================================
name: CI
# ------------------------------------------------------------
# Когда запускать workflow.yml
# ------------------------------------------------------------
on:
push:
branches:
- main
- develop
pull_request:
# ------------------------------------------------------------
# Глобальные переменные
# ------------------------------------------------------------
env:
PYTHON_VERSION: "3.13"
# ============================================================
# JOB 1 — Проверка качества кода
# ============================================================
jobs:
lint:
name: Lint (ruff + mypy)
runs-on: ubuntu-latest
steps:
# Клонирование репозитория
- name: Checkout repository
uses: actions/checkout@v4
# Установка Python
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
# Установка uv (быстрый менеджер зависимостей)
- name: Install uv
run: pip install uv
# Кэширование зависимостей
- name: Cache uv dependencies
uses: actions/cache@v4
with:
path: ~/.cache/uv
key: ${{ runner.os }}-uv-${{ hashFiles('uv.lock') }}
# Установка зависимостей
- name: Install dependencies
run: uv sync
# Проверка кода линтером Ruff
- name: Run Ruff
run: ruff check .
# Проверка типизации
- name: Run MyPy
run: mypy .
# ============================================================
# JOB 2 — Тестирование
# ============================================================
tests:
name: Run tests
runs-on: ubuntu-latest
needs: lint
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install uv
run: pip install uv
- name: Install dependencies
run: uv sync
# Запуск pytest
- name: Run tests
run: pytest
# ============================================================
# JOB 3 — Проверка Docker
# ============================================================
docker:
name: Docker build test
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
# Проверка что Dockerfile собирается
- name: Build Docker image
run: docker build .

View File

@@ -0,0 +1,33 @@
# ============================================================
# Auto format code
# ============================================================
name: Auto Format
on:
pull_request:
jobs:
format:
name: Format code
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install formatter
run: pip install ruff
# Автоматическое форматирование
- name: Run formatter
run: ruff format .
# Проверка что после форматирования нет изменений
- name: Check formatting
run: ruff check .

View File

@@ -0,0 +1,36 @@
# ============================================================
# Security checks
# Проверка уязвимостей зависимостей
# ============================================================
name: Security
on:
schedule:
- cron: "0 3 * * 1"
workflow_dispatch:
jobs:
security-scan:
name: Dependency security scan
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
# Установка Python
- uses: actions/setup-python@v5
with:
python-version: "3.12"
# Установка инструмента проверки
- name: Install pip-audit
run: pip install pip-audit
# Проверка зависимостей
- name: Run security audit
run: pip-audit

View File

@@ -0,0 +1,31 @@
# ============================================================
# Release workflow
# Автоматическая публикация релизов
# ============================================================
name: Release
on:
push:
tags:
- "v*"
jobs:
release:
name: Create release
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
# Установка Python
- uses: actions/setup-python@v5
with:
python-version: "3.12"
# Создание релиза
- name: Create GitHub Release
uses: softprops/action-gh-release@v2