Skip to content

gooodh/github_actions_example

Repository files navigation

CI/CD Configuration

Этот проект использует GitHub Actions для автоматизации процессов разработки.

Workflows

🔄 CI/CD Pipeline (ci.yml)

Основной pipeline, который запускается при каждом push и pull request:

  • Тестирование: Запуск unit и integration тестов
  • Проверка качества кода: Линтинг, форматирование, типизация
  • Сканирование безопасности: Bandit и Safety проверки
  • Сборка Docker образа: Автоматическая сборка и публикация
  • Деплой: Автоматический деплой в staging/production

📊 Code Quality (code-quality.yml)

Проверка качества кода:

  • Black (форматирование)
  • isort (сортировка импортов)
  • Flake8 (линтинг)
  • MyPy (проверка типов)
  • Bandit (безопасность)
  • Radon (сложность кода)

🔄 Dependency Update (dependency-update.yml)

Автоматическое обновление зависимостей каждый понедельник.

🚀 Release (release.yml)

Автоматическое создание релизов при создании тегов.

Настройка

1. Secrets

Добавьте следующие secrets в настройках репозитория:

  • GITHUB_TOKEN - автоматически доступен
  • Дополнительные secrets для деплоя (если нужны)

2. Environments

Создайте environments в настройках репозитория:

  • staging - для тестового окружения
  • production - для продакшн окружения

3. Branch Protection

Настройте защиту веток:

  • Требовать проверку статуса CI
  • Требовать актуальные ветки
  • Ограничить push в main/develop

Локальная разработка

Pre-commit хуки

make pre-commit-install

Запуск тестов локально

make ci-test

Проверка качества кода

make ci-lint

Проверка безопасности

make ci-security

Деплой

Staging

Автоматически деплоится при push в develop ветку.

Production

Автоматически деплоится при создании release.

Ручной деплой

Можно запустить workflow вручную через GitHub Actions UI.

Мониторинг

  • Codecov для покрытия тестами
  • GitHub Security для уязвимостей
  • Dependabot для обновления зависимостей

Troubleshooting

Тесты падают в CI

  1. Проверьте логи в GitHub Actions
  2. Запустите тесты локально: make ci-test
  3. Проверьте переменные окружения

Проблемы с качеством кода

  1. Запустите локально: make ci-lint
  2. Исправьте ошибки автоматически: make format
  3. Проверьте конфигурацию в .flake8 и pyproject.toml

Проблемы с Docker

  1. Проверьте Dockerfile
  2. Убедитесь, что все зависимости указаны
  3. Проверьте логи сборки в Actions

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors