Почему вашей команде необходимо добавить CM в конвейер CI/CD

Почему вашей команде необходимо добавить CM в конвейер CI/CD

27 января 2023 г.

Запрос на вытягивание (PR) — это стандартная методология, которую многие команды используют для отправки и проверки кода, внесенного другими разработчиками. Однако процесс получения и рассмотрения может задержать время цикла PR. Непрерывное слияние (CM) сокращает время, необходимое для проверки и слияния PR.

CM — это подход, основанный на правилах, который повышает эффективность слияния кода. Это повышает осведомленность о PR и обеспечивает важный контекст, например, указание предполагаемого времени проверки. CM автоматизирует, где это возможно, и использует людей только тогда, когда это необходимо.

CM классифицирует каждый запрос на вытягивание в зависимости от размера, сложности и типа изменения. Этот подход автоматизирует путь слияния на основе уникальных условий слияния каждого PR. Особое внимание уделяется тем PR, которые в этом нуждаются, в то время как PR, связанные с небольшими изменениями, ускоряются для повышения эффективности и скорости слияния.

В этой статье обсуждается, как разработчики могут ускорить проверку кода и повысить скорость слияния, внедрив CM в непрерывную интеграцию< /a> и непрерывное развертывание (CI/CD).

Конвейеры CI/CD работают лучше благодаря непрерывному слиянию

Конвейер CI/CD сокращает итерации внедрения, тестирования, разработки и развертывания новых функций. Это увеличивает скорость развертывания за счет выявления ошибок на ранних этапах производства, чтобы их можно было быстрее исправить. Этот процесс состоит из двух частей:

* CI — это автоматизированный процесс проверки новых изменений кода на наличие возможных ошибок перед их слиянием в центральный репозиторий для тестирования. * CD развертывает эти изменения кода в промежуточной среде, чтобы убедиться в их готовности к использованию в производственной среде.

Ускорение CI/CD

Хотя CI/CD помогает быстрее предоставлять клиентам новые функции, некоторые неудачи могут задержать этот процесс.

Без задержек со стороны рецензентов или разработчиков PR-ревью обычно занимает несколько часов. Однако из-за задержек эти проверки могут занимать дни, недели или даже месяцы. Рецензент может не захотеть браться за PR со слишком большим количеством строк кода из-за большого количества внесенных изменений. Или они могут расставить приоритеты в других задачах и посчитать обзор PR отвлекающим фактором.

Это также может замедлить процесс слияния и снизить скорость CI/CD. Кроме того, если задержка влияет на слияние PR, предназначенное для исправления ошибок или внедрения функций, замедление проявляется в конвейере CI/CD.

Рецензент может отвечать медленно и требовать существенных изменений PR. Затем разработчику может потребоваться некоторое время для внесения необходимых изменений, что еще больше задержит слияние. Быстрый ответ на проверку кода может, следовательно, сократить время ответа разработчика. Этот цикл положительной обратной связи повышает общую эффективность воронки продаж.

Проверка запросов на вытягивание

PR продвигает и объединяет все изменения кода, независимо от сложности. В результате изменение для исправления опечатки проходит тот же процесс, что и существенное изменение нескольких файлов.

В рамках этой парадигмы любые изменения в кодовой базе рассматриваются одинаково. В действительности риск и размер изменений различаются. Простой PR может занять несколько дней, чтобы получить отзыв или одобрение «выглядит хорошо для меня» (LGTM) без рецензента, запрашивающего изменения кода. Одинаковая обработка всех PR задерживает объединение простых PR, которые несут меньший риск.

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

Непрерывные запросы на слияние

CM оптимизирует процесс проверки PR, по возможности автоматизируя его. Он сортирует обзоры по таким факторам, как риск и тип контента. В зависимости от изменения кода менеджер по маркетингу может определить, какие PR или части процесса проверки следует автоматизировать.

Переформатирование кода, нефункциональные изменения, такие как тесты и документы, или изменения, связанные с конфиденциальными или устаревшими API, могут быть автоматизированы. PR, включающие небольшие изменения, не требующие тщательной проверки, утверждаются автоматически, чтобы ускорить слияние. Небольшие изменения включают исправления изображений или текста, которые прошли все тесты. Другие незначительные изменения, например изменения формата кода, могут быть одобрены и объединены автоматически.

Некоторые рецензенты являются экспертами в данной области или знакомы с аналогичными PR. В таких случаях CM назначает им определенный PR для утверждения или объединения простых изменений, прошедших все проверки. Для PR с большим количеством строк кода CM позволяет назначить более одного рецензента, чтобы ускорить процесс утверждения.

Вместо того, чтобы назначать PR с отсутствующими тестами, CM автоматически помечает такие PR, в которых нет тестовых изменений. PR, открытые без тестов, помечаются отсутствующей меткой теста, которая автоматически удаляется при добавлении и фиксации тестов. Дополнения к тестам также утверждаются автоматически. Следовательно, любые тестовые случаи, добавленные в репозиторий, проверяются. PR также утверждается автоматически.

Преимущества непрерывного слияния

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

CM также устраняет узкие места, уменьшая количество людей, вовлеченных в каждый этап процесса разработки и развертывания. Это достигается путем классификации PR в соответствии с различными факторами и присвоения им идеального соответствия.

Автоматизация проверки позволяет маркировать PR вместо того, чтобы назначать теги вручную. Это сокращает время ожидания отзывов и рецензирования. Автоматизация ускоряет процесс назначения рецензентов.

CM сокращает время ожидания проверки, автоматизируя незначительные изменения.

Будущее CI/CD

Если код застрял в PR, конвейер CI/CD может не выполнить свою задачу по более быстрой доставке качественного кода. CM помогает достичь этой цели, сокращая время, затрачиваемое вашими командами на проверку PR и процесс слияния. Для организаций так же важно конкурировать в будущем, как и сейчас для CI/CD.

CM — недостающий шаг в CI/CD

Запросы – это распространенный способ проверить изменения кода и объединить их с репозиторием проекта. Однако длительные периоды ожидания перед объединением PR отнимают много времени и утомительны. Время получения PR и процесс проверки значительно усугубляют эту проблему. n n Расширение CI/CD за счет включения CM — отличный способ сократить время цикла PR. CM использует основанный на правилах подход к объединению кода разработчика в репозиторий команды. Проверка изменения кода определяется риском, размером и важностью изменения. CM — отличный способ улучшить конвейер CI/CD и, в конечном счете, весь процесс разработки программного обеспечения.

Посетите gitStream, чтобы добавить непрерывное слияние в свой жизненный цикл разработки.

Хотите сократить время проверки кода до 40 %? Автоматически добавляйте расчетное время проверки в запросы на вытягивание!

GitStream – это бесплатный инструмент разработки от LinearB, который устраняет самое узкое место в рабочем процессе вашей команды: запросы на вытягивание и проверки кода. Изучив работу 2000 команд разработчиков, инженеры и специалисты по обработке и анализу данных LinearB обнаружили, что время подготовки и проверки кода занимает на 4–5 дней больше, чем должно быть.

Хорошая новость заключается в том, что они обнаружили, что эти задержки можно в значительной степени устранить, добавив расчетное время проверки в запросы на вытягивание!

Подробнее о том, как gitStream улучшает кодирование ЗДЕСЬ.


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE