DevOps Azure Используйте Build.SourceBranchName в качестве версии исправления NuGet для предварительного тестирования - PullRequest
0 голосов
/ 18 мая 2019

Мы пытаемся использовать Azure DevOps для создания наших веток git и создания пакетов NuGet с помощью команды NuGet Pack, мы хотим автоматически построить master, а также любые ветки функций, которые являются предварительными.

Мы попытались установить формат номера сборки на:

$ (BuildDefinitionName) _ $ (Дата: YYyyMmDd) $ (BuildID) $.. (Ред: .r) $ (Build.SourceBranchName)

Это дает нам ошибку:

[ошибка] Не удалось найти данные номера версии в следующей переменной среды: BUILD_BUILDNUMBER. Значение переменной должно содержать подстроку с или являются положительными целыми числами.

Я установил формат номера сборки на 1.0.0-alpha, который работал, но в списке Артефактов он просто отображается как 1.0.0.

Как мы можем использовать CI в Azure Devops для создания главной и всех наших ветвей функций, создания пакетов NuGet и применения имени ветви к версии NuGet, чтобы мы могли использовать эти пакеты в нашей тестовой среде и тестировать ветку функций изолированно

1 Ответ

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

Как мы можем использовать CI в Azure Devops для создания главной и всех наших ветвей функций, создания пакетов NuGet и применения имени ветви к версии NuGet, чтобы мы могли использовать эти пакеты в нашей тестовой среде и тестировать ветку функций изолированно

Прошу прощения за этот поздний ответ, надеюсь, он вам поможет.

Боюсь, мы не смогли использовать $(Build.SourceBranchName) в формате номера сборки в качестве версии Nuget. После того, как я попробовал номер сборки в различных форматах, я обнаружил, что мы можем использовать только номер данных в качестве версии nuget при использовании номера сборки в качестве версии nuget, в противном случае мы получим ошибку, подобную вам:

"переменная должна содержать подстроку с положительным значением или целые "

Затем я создаю ветку с числовыми данными, например 9, она отлично работает.

Таким образом, в качестве теста мы не смогли применить имя ветви (String) к версии NuGet при использовании номера сборки в качестве версии nuget.

В качестве обходного пути я использую опцию Use an environment variable, затем определяю переменную nugetversion со значением $(Major).$(Minor).$(Patch)-$(Build.SourceBranchName):

enter image description here

enter image description here

enter image description here

С помощью этого обходного пути мы можем использовать имя ветви в качестве версии пакета nuget, , но также имеет некоторые ограничения, то есть мы не можем использовать некоторые предопределенные переменные, такие как $(Rev:.r), $(BuildID), это означает, что мы не можем автоматически увеличить версию пакета nuget.

Надеюсь, это поможет.

...