Источники меток с $(GitVersion.NuGetVersion) создают тег с именем переменной, а не со значением

После успешной сборки, настроив формат метки как $(GitVersion.NuGetVersion), результирующий тег будет установлен на $(GitVersion.NuGetVersion), а не на фактическое расширенное значение этой переменной.

В журнале выходных данных сборки есть 2 раздела/плана: Сборка и Завершение сборки.

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

Как я должен пометить источник полученной GitVersion, если контекст переменных GitVersion потерян во время раздела «Завершить сборку»?

https://github.com/Microsoft/vsts-agent/issues/716


person JoeBrockhaus    schedule 07.12.2016    source источник
comment
Тегирование выполняется на сервере, и переменные, заданные в контексте агента, недоступны при финализации.   -  person Chris Patterson    schedule 07.12.2016


Ответы (2)


Я ответил на ваш вопрос в вопросе на GitHub:

Я не думаю, что мы можем что-то сделать в рамках задачи GitVersion по этому поводу, пока VSTS не предоставляет соответствующий API. В настоящее время GitVersion просто определяет переменные с помощью команды ##vso[task.setvariable]value. Переменные явно определены в контексте задачи и поэтому доступны для последующих задач, но не вне контекста.

Особым случаем является номер сборки, для которого существует специальная команда ##vso[build.updatebuildnumber]build number который мы используем.

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

person Pascal Berger    schedule 07.12.2016
comment
Спасибо! Ценить это. - person JoeBrockhaus; 15.12.2016

Конкретные шаги для достижения желаемого результата:

  1. Настройте предварительные требования проекта/репозитория/сборки VSTS:
    https://www.visualstudio.com/en-us/docs/build/scripts/git-commands#enable-scripts-to-run-git-commands
  2. Git Docs для тегов (для полноты):
    https://git-scm.com/book/en/v2/Git-Basics-Tagging

Я добавил 2 задачи командной строки (пакетная задача была бы лучше) с помощью Tool: git:

  1. Аргументы: tag -a $(GitVersion_NuGetVersion) -m "Auto-Tagged v$(GitVersion_NuGetVersion) by Build ($(Build.BuildId))"
  2. Аргументы: push origin $(Build.BuildNumber)
person JoeBrockhaus    schedule 08.12.2016