initial commit
This commit is contained in:
24
.gitea/ISSUE_TEMPLATE/bug_report.md
Normal file
24
.gitea/ISSUE_TEMPLATE/bug_report.md
Normal file
@@ -0,0 +1,24 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Сообщить об ошибке
|
||||
title: "[BUG]"
|
||||
labels: bug
|
||||
---
|
||||
|
||||
## Описание
|
||||
|
||||
Опишите проблему.
|
||||
|
||||
## Как воспроизвести
|
||||
|
||||
1. ...
|
||||
2. ...
|
||||
3. ...
|
||||
|
||||
## Ожидаемое поведение
|
||||
|
||||
Что должно было произойти.
|
||||
|
||||
## Логи / скриншоты
|
||||
|
||||
Добавьте при необходимости.
|
||||
16
.gitea/ISSUE_TEMPLATE/feature_request.md
Normal file
16
.gitea/ISSUE_TEMPLATE/feature_request.md
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Предложить новую функцию
|
||||
title: "[FEATURE]"
|
||||
labels: enhancement
|
||||
---
|
||||
|
||||
## Описание функции
|
||||
|
||||
Опишите идею.
|
||||
|
||||
## Зачем это нужно
|
||||
|
||||
Какая проблема решается.
|
||||
|
||||
## Дополнительная информация
|
||||
14
.gitea/PULL_REQUEST_TEMPLATE.md
Normal file
14
.gitea/PULL_REQUEST_TEMPLATE.md
Normal file
@@ -0,0 +1,14 @@
|
||||
## Описание
|
||||
|
||||
Что делает этот PR?
|
||||
|
||||
## Тип изменения
|
||||
|
||||
- [ ] bug fix
|
||||
- [ ] новая функция
|
||||
- [ ] рефакторинг
|
||||
|
||||
## Проверки
|
||||
|
||||
- [ ] тесты проходят
|
||||
- [ ] код отформатирован
|
||||
114
.gitea/workflows/ci.yml
Normal file
114
.gitea/workflows/ci.yml
Normal 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 .
|
||||
33
.gitea/workflows/format_code.yml
Normal file
33
.gitea/workflows/format_code.yml
Normal 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 .
|
||||
36
.gitea/workflows/security.yml
Normal file
36
.gitea/workflows/security.yml
Normal 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
|
||||
31
.gitea/workflows/workflow.yml
Normal file
31
.gitea/workflows/workflow.yml
Normal 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
|
||||
Reference in New Issue
Block a user