Этот проект использует GitHub Actions для автоматического тестирования на разных версиях Python и операционных системах.
Основной CI pipeline, который запускается при каждом push и pull request.
Задачи:
- Lint: Проверка кода с помощью ruff, pyright, mypy
- Build: Сборка пакета
- Test: Полное тестирование на matrix из:
- Python версии: 3.8, 3.9, 3.10, 3.11, 3.12
- Операционные системы: Ubuntu, Windows, macOS
- Docs: Генерация документации (только Ubuntu)
- Coverage: Генерация отчетов покрытия кода
- Examples: Тестирование примеров кода с реальным API
Особенности:
- ✅ Кроссплатформенная установка Rye
- ✅ Отдельные команды для Windows (обход Makefile)
- ✅ Матричное тестирование: 15 комбинаций (5 Python × 3 OS)
- ✅ Условная загрузка артефактов покрытия (только Ubuntu + Python 3.12)
Быстрая проверка совместимости со всеми версиями Python.
Задачи:
- Compatibility Test: Проверка импорта и базовых тестов на Python 3.8-3.12
- Quick Install Test: Установка через pip на всех ОС
Особенности:
- ⚡ Быстрый запуск (15 минут)
- 🔄 Запускается на push/PR и для develop ветки
- 📦 Тестирует установку через pip (не Rye)
Специализированное тестирование для Windows без Makefile.
Задачи:
- Windows Test: Прямое использование pip и pytest
- Windows Build Test: Тестирование сборки пакета
Особенности:
- 🪟 Обход проблем с Makefile на Windows
- 📅 Ежедневный запуск по расписанию (cron)
- 🧪 Прямые Python команды вместо make
Мониторинг статуса всех тестов.
Задачи:
- Status Summary: Отображение результатов всех workflow
- Failure Notification: Автоматическое создание issues при ошибках
Особенности:
- 📊 Сводный отчет по всем тестам
- 🚨 Автоматическое создание issues для main ветки
- 🔗 Ссылки на failed runs
| OS | Python Versions | Workflow | Frequency |
|---|---|---|---|
| Ubuntu | 3.8, 3.9, 3.10, 3.11, 3.12 | CI, Compatibility | Push/PR |
| Windows | 3.8, 3.9, 3.10, 3.11, 3.12 | CI, Windows Tests | Push/PR + Daily |
| macOS | 3.8, 3.9, 3.10, 3.11, 3.12 | CI | Push/PR |
Всего комбинаций: 15 (основной CI) + 5 (compatibility) + 5 (Windows) = 25 test jobs
mainbranch: Все workflow + примеры + документация- Feature branches: CI + Compatibility
- Targeting
main: Все workflow - Targeting
develop: Compatibility
- Windows Tests: Ежедневно в 02:00 UTC
Для запуска примеров требуются secrets:
EVOLUTION_KEY_ID: ${{ secrets.EVOLUTION_KEY_ID }}
EVOLUTION_SECRET: ${{ secrets.EVOLUTION_SECRET }}
EVOLUTION_BASE_URL: ${{ secrets.EVOLUTION_BASE_URL }}
EVOLUTION_PROJECT_ID: ${{ secrets.EVOLUTION_PROJECT_ID }}- dist/: Собранные пакеты (.whl, .tar.gz)
- coverage/: Отчеты покрытия кода (HTML, XML, JSON)
- docs/: Сгенерированная документация
- Build System: Rye (primary), pip (fallback)
- Linting: ruff, pyright, mypy
- Testing: pytest, pytest-cov, pytest-asyncio
- Documentation: Sphinx
- Coverage: coverage.py + badge generation
- Check Status Summary: Workflow status показывает общее состояние
- Review Logs: Каждый job имеет детальные логи
- Auto Issues: Для main ветки создаются автоматические issues
- Matrix Strategy:
fail-fast: falseпозволяет видеть все ошибки
- Parallel Jobs: Максимальное использование GitHub Actions runners
- Selective Runs:
- Примеры только на PR/main
- Coverage только Ubuntu + Python 3.12
- Документация только на Linux
- Caching: Rye and pip dependencies cached
- Timeouts: Разумные timeout для каждого job
README.md содержит бейджи для мониторинга:
- CI status
- Python compatibility
- Windows tests
- Platform support
- Python version coverage
Примечание: Этот CI/CD setup обеспечивает надежное тестирование на всех поддерживаемых платформах и версиях Python, гарантируя высокое качество и совместимость пакета.