Primary tabs

Ежедневный цикл разработки Build Boss

Ссылка на оригинал - https://abovetheapi.com/posts/build-boss-daily-development-cycle, автор публикации - Kenneth Pirman

Интеграция небольшого социального слоя над непрерывной интеграцией и потоком git

В ходе веб-разработки моя личная производительность часто падает. Отчасти это объясняется тем, что многие ведущие и промежуточные ветви иногда могут лишь смутно приближать то, что живет, и это мешает работать. Иногда залив между средами довольно велик, он спагеттированный, горячий и трогательный. Или это называется Good-good-master-use-this-branch-version-2?

Этот цикл разработки - это моя неудачная попытка сохранить чистоту и мастер-класс, упростить git, ускорить цикл разработки и позволить командам лучше понять, что происходит. Это моя попытка выяснить этот момент в тесте Джоэл: Daily Builds.

Этот процесс представляет собой цикл разработки, основанный на успешной модели ветвления Git , но упрощенный.

Требования:

  • Нужны легко развертываемые среды разработки / тестирования (здесь называются средой с характеристиками, что-то вроде « Раши» или «Дэйли»
  • Филиалы функций и дисциплина jira
  • Slack (или другая корпоративная чат-служба)

Преимущества:

  • Быстрые циклы небольших улучшений делают некоторые интересные побочные эффекты
  • Легче отслеживать прогресс на ежедневной основе
  • Ежедневные журналы изменений для всех, чтобы увидеть
  • Отменить теги
  • Откаты
  • Вращающийся состав Build Bosses гарантирует, что каждый в команде знает ставки и знает свой путь вокруг процесса развертывания
  • Вероятно, гораздо меньше конфликтов ветвей, поскольку изменения должны только пузыриться вверх от постановки к мастеру
  • Требуется всего лишь час или около того времени, когда в течение дня или дня тестируется время, необходимое для регрессионного анализатора (если только что-то не сломается), но придает дисциплине и создает преимущества, которые выливаются всей команде.
  • Может набираться ежедневно, раз в две недели или раз в неделю.

Предостережения:

  • Вероятно, лучше всего для команд, работающих на одном репо, но я бы хотел реализовать его на основе всей продукции, возможно, можно было бы сгруппировать вместе иерархически?
  • Горячие патчи должны быть доставлены из функции -> постановка -> мастер, как функция
  • Время от времени каждого

Разработка функций

Когда разработчик получает задание на jira, она отделяет филиал от филиала «Мастер» и называет его именем билета jira и связывает билет. Dev расширяет новую среду, в которой полный функциональный набор платформы можно получить от QA и других заинтересованных сторон (например, тестового сервера). Это называется функциональной средой. После разработки функция передается в QA со ссылкой на среду функций, которую они могут видеть. Если заинтересованные стороны согласны с тем, что они полны, это отмечается на джире счастливым лицом или чем-то еще. Один разработчик может работать одновременно над несколькими функциями, но функции должны разрабатываться независимо в своих собственных средах.

Интеграция с мастером

Бросьте кости, чтобы увидеть, какой хороший разработчик берет мантию «Build Boss» за неделю. У вас есть слабый канал. Они получают причудливую иконку emoji на своем слабом статусе, поэтому каждый может их найти. Каждое утро, когда люди наконец прибыли в офис и имели свой кофе, Build Boss сливается с хозяином, создавая тег релиза. Затем Build Boss объявляет новую основную версию для слабого канала. Вероятно, это будет небольшой патч. Босс сборки включает в себя журнал изменений с новой версией, который вызывает у разработчиков «хип-хип-ура». Теперь настройки и мастер синхронизируются, а релиз - в прямом эфире. Журнал изменений теперь может быть отправлен по электронной почте по всей стране, доставлен в стороннюю компанию или предоставлен другим заинтересованным сторонам, которые хотят отслеживать все.

Интеграция стажа

Спустя некоторое время, возможно, до обеда, Build Boss призывает к промежуточной интеграции на слабом канале. Если у какого-либо разработчика есть функция, которая была отмечена счастливым лицом для QA, эти функции могут быть разбиты на Build Boss для включения в стадию (важно отметить, что промежуточная ветка в этой точке должна быть идентичной мастеру). Люди делают свои PR, и строительный босс одобряет или отвергает PR, в зависимости от его чувств, от выравнивания звезд или от того, насколько сложным станет промежуточная ветка после слияния. Build Boss затем объединяет вещи в стадию, отвергая некоторые PR для плохого качества кода или что-то еще. Если что-то задвинется, пусть будет так. Каждый день, вероятно, будут только два или три незначительных изменения и обновления функций.

Регрессионный раунд

После раунда интеграции интеграции, после обеда, мастер сборки берет свои краткие заметки журнала изменений, которые отражают текущее состояние промежуточной ветви в QA, где выполняется краткий регрессионный тест. Это простая проверка здравомыслия, тест на дым. Эти функции должны были быть проверены QA во время разработки (по просьбе разработчиков-разработчиков), этот шаг состоит в том, чтобы убедиться, что их объединение не вызвало никаких землетрясений. Некоторые части этого этапа могут быть автоматизированы. Разве что? Сегодня нет выхода. Staging возвращается к состоянию последнего тега релиза ведущей ветки. Разве что-то не сломалось? Отлично. Вам не нужно делать что-либо еще сегодня (кроме вашей нормальной работы, конечно) QA и Build Boss оставят весь день, чтобы выкарабкаться по очереди, если захотят.

Заметки:

  • Разработчик функций несет ответственность за то, чтобы удостовериться в том, что их функции проверены QA, и обратиться за тем, чтобы они были включены в ежедневный раунд интеграции.
  • Разработчик функций несет ответственность за то, чтобы все было готово к интеграции интеграции и интеграции с целью проведения регрессионных тестов после каждого этапа. Это включает в себя обеспечение предварительной загрузки базы данных и установки развертывания в порядке. Если что-то сломается, Build Boss ударит эту функцию из стадии, пока они не станут.
  • Контейнерная ветвь предназначена для того, чтобы объединить входящие функции и убедиться, что они хорошо сочетаются. Он не должен показывать заинтересованным сторонам новые функции! Это должно быть сделано в средах с характеристиками.

Не нашли ответ на свой вопрос? Возможно, вы найдете решение проблемы на нашем канале в Youtube! Здесь мы собрали небольшие, но эффективные инструкции. Смотрите и подписывайтесь на наш youtube-канал!

Смотреть на Youtube