Система непрерывной интеграции при разработке многокомпонентных приложений

При разработке больших приложений принято руководствоваться принципом единой ответственности и разделять приложение на модули. Такой подход позволяет упростить разработку за счет разделения логики работы на отдельные компоненты. Однако это приводит к тому, что при внесении изменений в код модуля необходимо убедиться, что эти изменения не приведут к проблемам в модулях, которые от него зависят.

В рамках этой работы предполагается, что в системе Gitlab будет создан набор CI/CD компонент, которые выполняют поиск и тестирование зависимых модулей. Работа предполагает в первую очередь работу с модулями, написанным на языке python.

Ориентировочный план работы по теме:

  1. Изучение методов сборки (poetry, uv) и контроля качества (pytest, ruff, mypy) модулей на python
  2. Изучение GitLab CI/CD, создание стенда для тестирования
  3. Разработка системы учета модулей и их связи
  4. Разработка ci/cd пайплайна для тестирования модулей
  5. Разработка системы каскадного запуска процесса тестирования на новой версии
  6. Формирование отчета по тестированию и создание MR
  7. Каскадное создание MR-ов для обновления зависимостей
Требования к студенту

Для выполнения работы требуется:

  1. Знание языка python
  2. Умение разбираться в API
  3. Базовое понимание git, умение работать с Gitlab CI/CD
Уровень

2 курс, 3 курс


Руководитель

Луцив Дмитрий Вадимович


Консультант

Ашихмин Илья Алексеевич


Источник

ООО «Цифровое Проектирование»