編輯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