Режим по умолчанию в конфигурационном файле GitVersion - PullRequest
0 голосов
/ 25 января 2020

Мне трудно начать работу с gitversion.

Мой вопрос здесь заключается в том, как интерпретировать файл config .

У меня есть файл конфигурации GitVersion.yml что выглядит следующим образом.

  1. Итак, что теперь представляет режим во второй строке? Это по умолчанию, который будет рассматриваться, если режим не указан для ветви?

  2. В следующем сценарии все ветви имеют указанный режим. Так что бы это значило? Для какой-либо из ветвей (master, release, feature, pull pull, hotfix, support and development) будут рассматриваться соответствующие указанные режимы (для ex ContinuousDeployment указан для development)? Будет ли настройка режима на уровне ветви переопределять настройку в строке 2?

  3. И, наконец, скажем, что я создаю новый срочное исправление ветви (не указано в файле конфигурации yaml), затем режим ContinuousDelivery будет считаться, потому что его по умолчанию?

next-version: 6.0.1
mode: ContinuousDelivery
branches:
  master:
    mode: ContinuousDelivery
    tag: ''
    increment: Patch
    prevent-increment-of-merged-branch-version: true
    track-merge-target: false
    regex: ^master
    tracks-release-branches: false
    is-release-branch: false
  release:
    mode: ContinuousDelivery
    tag: beta
    increment: Patch
    prevent-increment-of-merged-branch-version: true
    track-merge-target: false
    regex: ^releases?[/-]
    tracks-release-branches: false
    is-release-branch: true
    pre-release-weight: 1000
  feature:
    mode: ContinuousDelivery
    tag: useBranchName
    increment: Inherit
    prevent-increment-of-merged-branch-version: false
    track-merge-target: false
    regex: ^features?[/-]
    tracks-release-branches: false
    is-release-branch: false
  pull-request:
    mode: ContinuousDelivery
    tag: PullRequest
    increment: Inherit
    prevent-increment-of-merged-branch-version: false
    tag-number-pattern: '[/-](?<number>\d+)[-/]'
    track-merge-target: false
    regex: ^(pull|pull\-requests|pr)[/-]
    tracks-release-branches: false
    is-release-branch: false
  hotfix:
    mode: ContinuousDelivery
    tag: beta
    increment: Patch
    prevent-increment-of-merged-branch-version: false
    track-merge-target: false
    regex: ^hotfix(es)?[/-]
    tracks-release-branches: false
    is-release-branch: false
  support:
    mode: ContinuousDelivery
    tag: ''
    increment: Patch
    prevent-increment-of-merged-branch-version: true
    track-merge-target: false
    regex: ^support[/-]
    tracks-release-branches: false
    is-release-branch: false
  develop:
    mode: ContinuousDeployment
    tag: unstable
    increment: Minor
    prevent-increment-of-merged-branch-version: false
    track-merge-target: true
    regex: ^dev(elop)?(ment)?$
    tracks-release-branches: true
    is-release-branch: false
ignore:
  sha: []
merge-message-formats: {}

1 Ответ

1 голос
/ 10 марта 2020

Чтобы ответить на ваши вопросы:

  1. Это «глобальный» режим управления версиями для всех ветвей (если он не переопределен в конфигурации ветки в разделе branches).
  2. Да режимы, указанные в конфигурациях отдельных филиалов, переопределяют глобальные настройки в строке 2.
  3. В этом случае (и документация не на 100% ясна, что именно так и происходит, но я полагаю, что, исходя из моего опыта это правда), поскольку вы не указали regex es для своих конфигураций ветвей, я считаю, что GitVersion будет «откатываться» на значения по умолчанию. Регулярное выражение для ответвлений: ^features?[/-]. По сути, ветвь, которая необязательно начинается с feature (единственное или множественное число), за которым следует / или - (и не указано явно в регулярном выражении), за которым следует что-нибудь еще. Поскольку urgentfix не соответствует ни одному из регулярных выражений других ветвей по умолчанию (согласно GitFlow), urgentfix считается ветвью объектов.

Для номера 3 выше, мне неясно, если * Секция 1019 * - это секция свободной формы, в которую вы можете добавить любую спецификацию ветки, которую вы хотите (например, добавить секцию urgentfix:), или если вы должны использовать одну из «предопределенных» (которые все основаны на ветках GitFlow). ).

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

Если нет, возможно, вы захотите «взломать» одну из других конфигураций ветки, которой у вас может не быть. используя для достижения того, что вы хотите. Если вы go этот маршрут, вам может потребоваться переопределить другие параметры конфигурации, такие как source-branches, чтобы GitVersion мог правильно рассчитывать версии. И, конечно же, не забудьте использовать соответствующее регулярное выражение, чтобы GitFlow знал, как использовать эту конфигурацию для urgentfix ветвей.

HTH.

UPDATE

Я только что видел в их документации, что вы можете добавить свои собственные конфигурации веток помимо тех, которые хорошо известны для GitFlow или GitHubFlow. Но вы должны настроить конфигурацию так, чтобы GitVersion вычислял версию в соответствии с вашими требованиями.

...