psy*_*ych 4 teamcity nuget teamcity-8.0
如何从nuspec中提取版本号到TeamCity?
我们有一个带有相应nuspec节点的csproj文件:
1.3.2
在TeamCity中,我想构建这个项目,并创建一个版本为1.3.2.%build.counter%的NuGet包.例如,1.3.2.322.重要的是版本号来自源代码控制(NuSpec)中的文件,我不想将其复制为TeamCity中的变量.有没有办法从NuSpec文件中提取1.3.2并将其用作TeamCity变量?
这种方法适用于TeamCity的10+版本,并解决了Select-Xml与名称空间有关的问题.
$Version = ([xml](Get-Content .\MyProject.nuspec)).package.metadata.version
$BuildCounter = %build.counter%
echo "##teamcity[setParameter name='PackageVersion' value='$Version.$BuildCounter']"
Run Code Online (Sandbox Code Playgroud)
我能想到的几种方法都使用TeamCity 服务消息:
使用 PowerShell 构建步骤,如下所示(抱歉我的 PS 不太好):
$buildcounter = %build.counter%
$node = Select-Xml -XPath "/package/metadata/version" -Path /path/to/nuspec.nuspec
$version = $node.Node.InnerText
Write-Output "##teamcity[buildNumber '$version.$buildcounter']"
Run Code Online (Sandbox Code Playgroud)
或者,类似地,引导一个类似XmlStarlet的工具:
$buildcounter = "1231"
$version = xml sel -T -t -v "/package/metadata/version" Package.nuspec
Write-Output "##teamcity[buildNumber '$version.$buildcounter']"
Run Code Online (Sandbox Code Playgroud)
需要在需要内部版本号的任何其他步骤之前添加此步骤。
| 归档时间: |
|
| 查看次数: |
1991 次 |
| 最近记录: |