Ежедневный цикл разработки 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

1 Что нужно восстановить?

Видео

MP4, AVI и HD видео хранятся на телефоне и / или по ошибке удаляются вместе с фотографиями и другими медиафайлами.

Контакты

Номера телефонов друзей и знакомых из приложения «Контакты Android», журналы вызовов; Восстановление SIM-карты.

Фото

Удалены файлы JPG / PNG из Галереи Android; фото, загруженные на мобильный, файлы повреждены после восстановления.

Смс и сообщения

Чаты WhatsApp и Facebook, текстовые сообщения в соцсетях, информация на сим-карте

2 Где пропали файлы?

На sd-карте

Фотографии и документы хранятся на SD-картах. Часто на них случайно удаляются файлы

На телефоне

Программы для восстановления не распознают внутреннее хранилище телефона как диск, но есть другие решения.

На USB флешке

Эти небольшие устройства хранения данных часто выходят из строя или на них появляются ошибки чтения.

На HDD или SSD

Несмотря на то, что настольные платформы становятся все менее популярными, проблема потери файлов всегда оставалась.