我希望这样TeamCity将部署到一个文件夹以从主服务器生成并从另一个文件夹生成其他任何文件夹。一些谷歌搜索后,我跑过这篇文章:TeamCity, passing an id generated in one build step to a later build stepTeamCity更改基于分支的artifactory部署目录
不幸的是,它似乎并没有为我工作,我希望有人会告诉我为什么。
然后我的PowerShell脚本是这样的:
if ("%teamcity.build.branch%".CompareTo("refs/heads/master")) {
Write-Host "##teamcity[setParameter name='artifactory_deploy_dir' value='test1']"
} else {
Write-Host "##teamcity[setParameter name='artifactory_deploy_dir' value='test2']"
}
Write-Host %artifactory_deploy_dir%
这就是它输出:
我宁愿通过命令行做到这一点,但我阅读回声并不真正起作用,这种说法有没有任何效力?
感谢
当您的powershell脚本由TeamCity生成时,变量值将被注入到该脚本中,使用%artifactory_deploy_dir%,因此在此时该值将为静态值。使用set参数更新参数将起作用,但您只是写出静态注入值。添加一个额外的构建步骤并将最后一行(Write-Host%artifactory_deploy_dir%)移至该行,您将看到该值已更新 –
此外,CompareTo()方法的结果未被测试。如果字符串匹配区分大小写的比较,它将返回0。 –