fre*_*all 26 teamcity teamcity-7.0
我正在寻找一种方法将一些特定的构建参数附加到计划的触发器.
我们的想法是不断构建我们产品的调试版本.不过,我们的夜间构建必须是发布版本.我们大多数项目的构建配置完全相同.它甚至已经有一个配置参数.所以我需要的是一个允许为单个构建参数指定覆盖的触发器.这将使构建配置减少一半.
有没有办法实现这个目标?
小智 6
我使用的方法是创建一个"Deploy :: Dev D1 :: Run all integration tests"构建.然后,我在每个集成服务构建上创建一个构建触发器.
我为集成服务构建创建了一个名为"env:OctopusEnvironment"的参数.将值设置为空.我喜欢使用提示和显示:
select display='prompt' label='OctopusEnvironment' data_13='Production' data_12='CI' data_11='Local - Hassan' data_10='Local - Mustafa' description='OctopusEnvironment' data_02='Test T1' data_01='Dev D1' data_04='Local - Taliesin' data_03='Continuous Deployment CI 1' data_06='Local - Paulius' data_05='Local - Ravi' data_08='Local - Venkata' data_07='Local - Marko' data_09='Local - Ivan'
Run Code Online (Sandbox Code Playgroud)
在每个集成服务构建中,我添加了这个PowerShell步骤:
$octopusEnvironment = ($env:OctopusEnvironment).Trim()
Write-Host "Octopus environment = '$octopusEnvironment'"
if ($octopusEnvironment.Length -lt 1) {
Write-Host "Auto detecting octopus environment"
$trigger = '%teamcity.build.triggeredBy%' -split '::'
if ($trigger.Length -gt 2){
$environment = $trigger[1].Trim()
Write-Host "##teamcity[setParameter name='env.OctopusEnvironment' value='$environment']"
}
}
Run Code Online (Sandbox Code Playgroud)
所以现在我可以通过触发器运行集成测试,当我直接运行它时,它会提示我在哪个环境下运行集成测试.
| 归档时间: |
|
| 查看次数: |
9975 次 |
| 最近记录: |