Развертывание — Рабочий Процесс Git С Пользовательской Средой Принятия И Промежуточной Средой

  • Автор темы NeimbismIceby56
  • Обновлено
  • 21, Oct 2024
  • #1

Я пытаюсь оптимизировать/стандартизировать рабочий процесс git на своем рабочем месте. Текущий процесс разработки выглядит следующим образом:

  1. Вытащить ветку «разработка»
  2. Напишите код, зафиксируйте его и отправьте в ветку «разработка».
  3. Вишневый выбор из ветки «разработка» в ветку «тестирование» для пользовательского приемочного тестирования.
  4. Переход от «тестирования» к «постановке»
  5. «постановка» объединяется с «главным» раз в неделю

Я хочу внедрить рабочий процесс «функциональной ветки» с тестированием, промежуточным этапом и мастер-классом. Поэтому я не думаю, что существует какая-либо необходимость в «развитии». Насколько я понимаю, ветки функций следует брать из «master».

У меня возникли проблемы с пониманием того, как вписать среды «тестирования» и «промежуточные» в рабочий процесс git «ветвь функции».

Может кто-нибудь объяснить, как это может работать?

#deployment #git #continious-deployment #gitlab #workflow

NeimbismIceby56


Рег
01 Nov, 2007

Тем
67

Постов
180

Баллов
525
  • 25, Oct 2024
  • #2

Мой любимый рабочий процесс — master -less "branch per feature" workflow from Adam Dymitruk (http://dymitruk.com/blog/2012/02/05/branch-per-feature/). Имеет такие филиалы:

  • Ровно один git in an unbroken line from day 0 up to the version of your app that is currently in production.
  • Много git rebase branches.
  • Один (или, если вам так хочется, больше) qa branch.

Жуткие подробности можно найти на сайте Адама, но вкратце:

  • Каждый ветка уходит из qa-... .
  • Все ветки, находящиеся в активном тестировании, объединяются в qa .
  • qa-staging только когда-либо содержит коммиты слияния (т. е. ветки функций, объединенные друг с другом, начиная с qa-acceptance ), никогда прямые манипуляции.
  • Всякий раз, когда ветка функций получает новые коммиты, и вы хотите, чтобы они были в qa , you rebuild qa с нуля.
  • Всякий раз, когда вы хотите развернуть несколько функций, вы создаете git rerere from all of them, test to your heart's content, and then simply rename that branch to the new master (который, как это началось со старого master , will be a direct, unbroken line of merge commits from day 0). Then, all feature branches are rebased on that.
  • Одной из фундаментально важных частей этого рабочего процесса является возможность qa cache feature, and distribute that cache between all developers. Hence, every merge conflict needs to be resolved only once, globally.

Тривиально иметь более одного qa branch at a time to test different subsets of features; in your case, you could have qa (все почти готово, т. е. компилируется без ошибок), master , qa или что вам нравится.

По моему опыту, всегда существует относительно большая основная, продолжающаяся работа. qa branch (recreated from the master and features regularly), and when some features are picked for release, the will be a temporary smaller master .

Добавлять и удалять отдельные функции из набора тривиально. qa or release-candidate branches on the fly, as those are recreated constantly and only ephemeral.

Вы найдете много людей, которые категорически возражают против feature-... , but if one wraps their mind around the fact that this is just a tool like any other, it will be fine. You need good tooling for this of course, but this is not complicated to program yourself; the actual master все команды довольно просты и не требуют пояснений.

Мы расширили рабочий процесс (или, скорее, наши инструменты), чтобы разрешить даже произвольные подфункции (т. е. ветви функций, выходящие из другой ветки функций, а не development ), so multiple branches can go off of a common ancestor which is not yet in production; works like a charm. But you can get pretty far without this.

 

Bertolucci


Рег
19 Oct, 2004

Тем
79

Постов
218

Баллов
613
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно