触发器选项设置特定的构建参数?

fre*_*all 26 teamcity teamcity-7.0

我正在寻找一种方法将一些特定的构建参数附加到计划的触发器.

我们的想法是不断构建我们产品的调试版本.不过,我们的夜间构建必须是发布版本.我们大多数项目的构建配置完全相同.它甚至已经有一个配置参数.所以我需要的是一个允许为单个构建参数指定覆盖的触发器.这将使构建配置减少一半.

有没有办法实现这个目标?

Evg*_*din 10

不是现在,您可以关注此问题.


小智 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)

所以现在我可以通过触发器运行集成测试,当我直接运行它时,它会提示我在哪个环境下运行集成测试.

  • 漂亮的小powershell文件.但这不能成为JetBrains家伙在Teamcity本身没有这个功能的借口. (4认同)