Azure devops 发布预发布nuget包的条件buildnumber?
我正在自动部署nuget包。Azure devops 发布预发布nuget包的条件buildnumber?,azure-devops,azure-pipelines,Azure Devops,Azure Pipelines,我正在自动部署nuget包。 它工作正常,只是我无法按我想要的方式设置PreRelease软件包 有两个分支触发生成。 当主分支触发生成时,我想发布一个常规的nuget包。 当测试分支触发生成时,我想发布一个预释放包。 为此,我需要将-beta添加到nuget软件包版本号中。 因此,我将自动包版本控制从使用内部版本号更改为使用环境变量 见以下img: 起初,它抱怨变量说,没有为提供的环境变量找到任何值,但我通过删除$()解决了这个问题。但是现在我仍然被卡住了,因为我找不到方法用Build.Bu
它工作正常,只是我无法按我想要的方式设置PreRelease软件包 有两个分支触发生成。
当主分支触发生成时,我想发布一个常规的nuget包。
当测试分支触发生成时,我想发布一个预释放包。
为此,我需要将
-beta
添加到nuget软件包版本号中。
因此,我将自动包版本控制
从使用内部版本号
更改为使用环境变量
见以下img: 起初,它抱怨变量说,
没有为提供的环境变量找到任何值,但我通过删除$()
解决了这个问题。但是现在我仍然被卡住了,因为我找不到方法用Build.BuilderNumber
和-beta
设置变量。我可以复制构建并为自己的分支使用每个构建触发器,但是我宁愿只有一个构建可以处理来自两个分支的构建
因此,现在我考虑将设置改回use build number
,并更改在构建的选项卡options
中设置构建编号的表达式但是,即使在那里,我也无法在Build.SourceBranch
上使用条件表达式来添加或不添加-beta
克里斯·麦肯齐(Chris McKenzie)似乎也遇到了类似的问题,并通过powershell解决了这个问题。不幸的是,我不知道powershell,也无法理解,因为脚本似乎太大,无法满足我的需要。我仍然相信他们对我的希望。所以我将朝这个方向去实现我的条件构建编号
这个问题越来越长了,所以我用粗体标出了它的关键元素。
我在何处以及如何在源分支上设置一个条件,将-beta
附加到BuildNumber并用作nuget软件包版本?您可以通过添加一个PowerShell任务来实现,根据不同的分支更改变量$(PackageVersion)
条件
在NuGet pack任务之前,使用以下脚本添加一个PowerShell任务:
$branch1="test"
$branch2="master"
if ("$(Build.SourceBranchName)" -eq $branch1)
{
echo "the build is on $branch1"
Write-Host "##vso[task.setvariable variable=PackageVersion]$(Build.BuildNumber)-beta"
}
elseif ("$(Build.SourceBranchName)" -eq $branch2)
{
echo "the build is on $branch2"
Write-Host "##vso[task.setvariable variable=PackageVersion]$(Build.BuildNumber)"
}
else
{
echo "it's either on $branch1 branch nor $branch2 branch"
}
现在在NuGet pack setp中,如果分支是master
,则包版本将是$(Build.BuildNumber)
;如果分支是test
,则包版本将是$(Build.BuildNumber)-beta