使用变量作为TeamCity属性的名称
我有以下powershell脚本:使用变量作为TeamCity属性的名称,teamcity,Teamcity,我有以下powershell脚本: $triggerBy = "Finish Build Trigger; Aed / My Application / Service / My Application Service, build #4.1.2.41" $buildId = $triggerBy -replace 'Finish Build Trigger; ', '' -replace ', build #.*', '' -replace '( \/ )', '_' -r
$triggerBy = "Finish Build Trigger; Aed / My Application / Service / My Application Service, build #4.1.2.41"
$buildId = $triggerBy -replace 'Finish Build Trigger; ', '' -replace ', build #.*', '' -replace '( \/ )', '_' -replace ' ', ''
运行时,$buildId
设置为Aed\u MyApplication\u Service\u MyApplicationService
然后我想获取变量%dep.Aed\u MyApplication\u Service\u MyApplicationService.build.number%
的值。但是我需要使用$buildId
的值作为中间部分
有没有办法说$buildNumber=
%dep.$buildId.build.number%
和TeamCity认识到,$buildId
应该在计算变量之前展开?没有,很遗憾,没有办法强迫TeamCity惰性地计算构建
如果这是一个$triggerBy
“开关/案例”类型的选择,您可以创建一个构建步骤(在构建开始时),该步骤将:
- 测试您计算的
是否为$buildId
Aed\u MyApplication\u Service\u MyApplicationService
如果是,则以下内容应允许您在下一个生成步骤中使用
:%myDepBuildNumber%
什么也不做否则
$triggerBy
案例重复此if
/else
如果未设置%dep.Aed\u MyApplication\u Service\u MyApplicationService.build.number%
时出错:设置此参数应该可以解决此问题。(例如,如果您的构建和Aed\u MyApplication\u Service\u MyApplicationService
都属于Aed\u MyApplication\u Service
,请在此处声明参数)
echo "##teamcity[setParameter name='myDepBuildNumber' value='%dep.Aed_MyApplication_Service_MyApplicationService.build.number%']"