Как получить Git Tag в конвейерах Azure - PullRequest
1 голос
/ 27 мая 2019

В конвейерах Azure я включил теги git для запуска конвейеров следующим образом:

trigger:
  branches:
    include:
    - '*'
  tags:
    include:
    - '*'

Теперь я хочу знать, есть ли способ определить программно:

  1. Был ли конвейер запущен из git commit или git tag?
  2. Если конвейер был запущен из тега git, каково имя тега?

Ответы [ 2 ]

1 голос
/ 28 мая 2019

Это нужно учитывать в разных ситуациях.Если вы просто добавляете тег или создаете его с помощью пользовательского интерфейса, конвейер запускается из тега git.Просто зафиксируйте без какого-либо тега, он начнется с git commit.Без сомнения, сборка будет запущена только один раз.

Но если вы нажмете на коммит с тегом, сборка будет запущена дважды.Первый запускается коммитом, а второй - тегом.Проверьте это изображение.enter image description here

Это означает, что конвейер начался с коммита вместо тега.

В общем, независимо от того, что является первым, тег, который запускает сборку,все, что вы нажали или создали.

Чтобы получить более интуитивное представление об этом, вы можете добавить переменную ' $(Build.SourceBranch)' в свой номер сборки.Вот мой код о том, как настроить номер сборки в файле YAML:

name: $(Build.SourceBranch)-$(date:yyyyMMdd)$(rev:.r)
trigger:
  branches:
    include:
    - '*'
  tags:
    include:
    - '*'

Вот результат того, что вызвало сборку.Если тег, он показывает refs_tags_{tagname}, если это коммит, он показывает refs_heads_{branchname}.

enter image description here

0 голосов
/ 28 мая 2019

Когда вы настраиваете конвейер для запуска с тегом, это означает, что при нажатии нового тега конвейер начинает работать.Итак:

1) Конвейер начнется с тега git.

2) Я не понимаю вопроса, если вы нажали тег test, поэтому имя тега будет test.

Если вы хотите программно узнать, был ли триггер построения тегом и каково имя тега, вы можете проверить переменную среды Build.SourceBranch, если сборка происходит из тега, значение будет: refs/tags/tagName.

Так что просто добавьте задачу PowerShell и напечатайте значение:

Write-Host $env:Build_SourceBranch
...