Как автоматически выполнить команду git tag -a после завершения запроса на вытягивание в Azure Devops?

Как добавить пользовательские теги с аннотациями на masterкак только запрос на вытягивание (PR) будет завершен автоматически?

Дополнительная информация:

  • С помощью azure-pipelines.yml
  • Политика филиала на master заставить PR использоваться
  • У нас есть репозиторий, содержащий шаблоны конвейеров Azure Devops ("репозиторий шаблонов DevOps").
  • В других репозиториях есть корневой файл конвейера, который ссылается на репозиторий "DevOps template".
  • Мы используем SEMVER для маркировки наших продуктов, включая репозиторий шаблонов DevOps.
  • В корневых конвейерах мы хотим привязать репозиторий шаблонов DevOps к выпуску SEMVER.
  • В настоящее время мы вручную помечаем каждый из следующих элементов, чтобы указать на фиксацию слияния, которая произошла после завершения PR.
    • "vMAJOR.MINOR.PATCH"
    • "vMAJOR.MINOR"
    • "vMAJOR"

Приколоть MAJOR единственный пример:

resources:
  repositories:
    - repository: templates
      type: git
      name: template_devops_pipelines
      ref: "refs/tags/v1"

1 ответ

Образец конвейера тегов, который я использую:

      trigger:
  - main

variables:
  user.email: "devops@myorganization.com" 
  user.name: "DevOps"
  defaultBranch: "main"
  major: 1
  minor: 0
  patch: $[counter(variables['patch'], 2)]

name: $(major).$(minor).$(patch)

steps:
  - checkout: self
    persistCredentials: true
  - script: |
      git config user.email ${{variables['user.email']}}
      git config user.name ${{variables['user.name']}}
    displayName: 'configure git credentials'
  - script: | 
      git tag "$(Build.BuildNumber)"
      git push origin "$(Build.BuildNumber)"
    displayName: 'git tag'
    condition: eq(variables['Build.SourceBranchName'], variables['defaultBranch'])

В основном вам понадобятся три вещи:

  1. оформить заказ с persistCredentials - чтобы ваш конвейер мог пометить и отправить позже
  2. настроить git user.email и user.password
  3. пометить и нажать

На последнем шаге вам нужно будет назначить разрешения «Участие» для учетной записи службы сборки конвейера. Перейти к: Project Settings -> Repositiories -> {your repo} -> Security, найди пользователя {your organization} Build Service и установите Contribute to Allow.

Другие вопросы по тегам