编辑TeamCity中构建配置的设置时,是否有解析XML文件的方法来生成稍后将在构建步骤中使用的环境变量? XML文件我想分析(假设version.xml)中包含的是要在以后使用的版本号:TeamCity构建配置从XML填充环境变量
<Version>
<Major>2015</Major>
<Minor>2</Minor>
</Version>
而且我希望能够用%env.VersionNumber%
后得到"2015.2"
编辑TeamCity中构建配置的设置时,是否有解析XML文件的方法来生成稍后将在构建步骤中使用的环境变量? XML文件我想分析(假设version.xml)中包含的是要在以后使用的版本号:TeamCity构建配置从XML填充环境变量
<Version>
<Major>2015</Major>
<Minor>2</Minor>
</Version>
而且我希望能够用%env.VersionNumber%
后得到"2015.2"
是的你可以。您可以解析您想要的xml,并在第1个构建步骤中设置属性。你可以阅读Teamcity's confluence page了解更多详情。
您可以使用您在任何后续构建步骤中设置的属性。您甚至可以将它传递给后续构建。
,只要你想在bash脚本
echo "##teamcity[setParameter name='env.build.version.major' value='$xml.parsed.value.major']"
echo "##teamcity[setParameter name='env.build.version.minor' value='$xml.parsed.value.minor']"
echo "##teamcity[setParameter name='env.build.version' value='${xml.parsed.value.major}.${$xml.parsed.value.minor}']"
最后我用一个PowerShell脚本解析您可以设置尽可能多的属性,例如:
$Source = @"
using System;
using System.Xml.Linq;
namespace VersionTools
{
public static class XmlVersionParser
{
public static string GetVersion(string xml)
{
var doc = XDocument.Load(xml);
var major = doc.Root.Element("Major").Value;
var minor = doc.Root.Element("Minor").Value;
return string.Format("{0}.{1}", major, minor);
}
}
}
"@
Add-Type -ReferencedAssemblies ("System.Xml", "System.Xml.Linq") -TypeDefinition $Source -Language CSharpVersion3
$xmlVersion = [VersionTools.XmlVersionParser]::GetVersion(".\version.xml")
Write-Host "##teamcity[setParameter name='env.XmlVersion' value='$xmlVersion']"
然后,在最后一行,我用Biswajit_86的推荐使用##teamcity
你在做什么? Linux呢?视窗?此外,它是否必须是一个环境变量?如果有其他方式传递版本号,它可以工作吗? – zck