CI/CD Pipeline

Автоматизация через GitHub Actions

CI Pipeline

Файл: .github/workflows/ci.yml

Запускается при:

  • Push в main

  • Pull Request

Шаги:

  1. ✅ Setup Python (3.10, 3.11, 3.12) - matrix strategy

  2. ✅ Установка зависимостей

  3. ✅ Линтинг (flake8, black, isort, pylint)

  4. ✅ Запуск тестов

  5. ✅ Проверка миграций

Пример конфигурации:

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

Шаги:

  1. ✅ Сборка Sphinx документации

  2. ✅ Публикация на GitHub Pages

  3. ✅ Автоматическое обновление онлайн-документации

Результат: Документация доступна онлайн на https://yv0vaa.github.io/SE-XP/

Статусы сборок

Бейджи в README показывают текущее состояние:

Tests/Flake/Black/isort Documentation Status

Локальная проверка перед 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 не будет смержен, если есть ошибки линтера или падающие тесты!