CI/CD Pipeline
Автоматизация через GitHub Actions
CI Pipeline
Файл: .github/workflows/ci.yml
Запускается при:
Push в
mainPull Request
Шаги:
✅ Setup Python (3.10, 3.11, 3.12) - matrix strategy
✅ Установка зависимостей
✅ Линтинг (flake8, black, isort, pylint)
✅ Запуск тестов
✅ Проверка миграций
Пример конфигурации:
name: Tests/Flake/Black/isort
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.10, 3.11, 3.12]
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
pip install -r requirements.txt
pip install -r requirements-dev.txt
- name: Run linters
run: |
flake8 hw_checker/
black --check hw_checker/
isort --check hw_checker/
pylint hw_checker/assignments/
- name: Run tests
run: |
cd hw_checker
python manage.py test
Documentation Pipeline
Файл: .github/workflows/docs.yml
Запускается при:
Push в
main
Шаги:
✅ Сборка Sphinx документации
✅ Публикация на GitHub Pages
✅ Автоматическое обновление онлайн-документации
Результат: Документация доступна онлайн на https://yv0vaa.github.io/SE-XP/
Статусы сборок
Бейджи в README показывают текущее состояние:
Локальная проверка перед push
Используйте Makefile для локальной проверки:
Форматирование кода
make format
Или вручную:
cd hw_checker
black .
isort --profile black .
Проверка стиля
make lint
Или вручную:
flake8 hw_checker/
pylint hw_checker/assignments/
Запуск тестов
make test
Или вручную:
cd hw_checker
python manage.py test
Предупреждение
Pull request не будет смержен, если есть ошибки линтера или падающие тесты!