Процесс работы GitLab CI
Шаг 1: Отправка коммита
Когда ты отправляешь новый коммит в GitLab, GitLab CI автоматически запускает все этапы, описанные в файле .gitlab-ci.yml.
Шаг 2: Начало работы CI
GitLab CI считывает конфигурацию из .gitlab-ci.yml и начинает выполнение заданий последовательно по стадиям (stages).
Что делает GitLab CI:
Stage: before_script
- Сначала выполняются общие предварительные операции:
- Устанавливается Poetry.
- Деактивируется создание виртуальных сред (так как мы работаем в контейнере).
- Загружаются зависимости проекта через
poetry install --no-root.
Stage: format
- Этот этап отвечает за форматирование и очистку кода:
- Black применяет форматирование кода.
- Isort очищает и упорядочивает импорты.
Stage: type-check
- Здесь осуществляется проверка аннотаций типов:
- Mypy проверяет корректность аннотаций и сигнализирует о проблемах.
- Pyright также осуществляет проверку аннотаций, работая параллельно с Mypy.
Stage: lint
- Завершается процессом линта, проверяющим стиль и качество кода:
- Flake8 ищет стилистические ошибки и выдает предупреждения.
Какие результаты можно ожидать:
- Лог выполнения:
- Вся активность CI записывается в журнал.
- Ты можешь посмотреть отчёт о результатах в панели CI/CD на странице проекта в GitLab.
- Уведомления об успехе или неудаче:
- Если все этапы выполнены успешно, ты увидишь зелёный значок успеха возле последнего коммита.
- Если какая-то проверка завершилась неудачей, напротив соответствующего этапа появится красный индикатор.
- Детализация ошибок:
- Щёлкнув по этапу, ты можешь изучить детализированный лог ошибок или уведомлений,
- полученных от каждой утилиты (например, Flake8, Mypy, Pyright).
Просмотр отчётов
После выполнения всех проверок CI на GitLab ты можешь увидеть результаты следующим образом:
- Зайди в страницу своего проекта в GitLab.
- Перейди в раздел CI/CD -> Pipeline.
- Среди последних Pipeline'ов найди последний коммит.
- Наведи мышью на каждую стадию и щёлкни по ссылке для просмотра журнала.
В журнале ты увидишь точные уведомления о любых нарушениях, возникающих при проверке,
будь то неправильное форматирование,
нарушение стандартов PEP8 или проблемы с аннотациями типов.
Пример отчёта:
Предположим, ты отправил код с неправильными отступами. Тогда в логе ты увидишь что-то подобное:
src/annotation_ci_proj/basic_any.py:4:1: E302 expected 2 blank lines, found 1
Или, если Mypy нашел проблему с типизацией:
src/annotation_ci_proj/some_module.py:10: error: Argument 1 to "some_function" has incompatible type "float"; expected "int"
Заключение:
Процесс GitLab CI выстроен таким образом,
чтобы обеспечивать высокое качество кода и своевременно реагировать на любые отклонения от стандартов и требований.
Благодаря такому подходу ты будешь получать своевременные уведомления о проблемах и сможете оперативно вносить исправления.
Комментариев нет:
Отправить комментарий