Stu*_*nge 47 teamcity teamcity-8.0
我正在为我们所有的项目定义一个通用的构建模板 - 我已将其置于"根项目"级别(感谢TeamCity 8的这一新功能).我们的一些项目创建了一个安装程序,需要通过运行powershell脚本的单独"构建步骤"生成.但是,我们的一些项目不会创建此安装程序,因此不需要此额外的构建步骤.
有没有办法根据构建参数有条件地执行构建步骤?我想也许可以在这里利用"禁用构建步骤"功能,但我没有看到通过参数定义步骤的启用/禁用状态的方法.
当然,我可以将这个条件烘焙到执行安装程序生成的构建步骤中,但如果可以从teamcity本身内部处理它,那将更加清晰.
小智 17
我已经在很多场合需要条件构建步骤但是唉,此功能目前还不存在.http://youtrack.jetbrains.com/issue/TW-17939
您没有理由不能使用许多构建配置使用的模板,然后只需在构建配置/项目中禁用不需要创建安装程序的构建步骤.禁用单个构建配置中的步骤不会影响它所基于的父模板.
不像在TC中内置运行时/动态方法那样整洁,但有时我会使用它.我已经完成了iwo的建议.
iwo*_*iwo 10
除了执行策略之外,TC似乎不支持在其级别执行条件运行程序步骤(仅当构建状态成功时,如果所有先前步骤成功完成,即使某些prev步骤失败,也是如此)但这不是您想要的.
因此,您似乎需要为安装程序生成器PowerShell构建步骤提供自定义系统构建参数,例如system.Generate,它应该是一个bool(您可以将其隐藏,提示,根据配置参数获取其值等),然后在您的powershell运行器中添加以下内容:
param([int]$Generate)
if ($Generate) {
Write-Host "generating installer..."
# call your func()
} else {
Write-Host "skip installer"
}
Run Code Online (Sandbox Code Playgroud)
在你的跑步者配置中,添加-Generate%system.Generate%作为脚本参数(小心,不是额外的命令参数!).%system.Generate%应根据其运行时值扩展为1或0.
As of 2020.1, it appears this feature is now supported.
现在,您可以使用新的执行条件对构建步骤进行精细控制。运行构建时,仅当当前运行中满足您配置的所有先决条件时,TeamCity 才会执行每个步骤。
在高级构建步骤设置中,单击添加条件并为 TeamCity 服务器或代理提供的任何构建参数指定逻辑条件。您可以在示例条件中快速选择,例如:
- 仅在默认分支中运行该步骤
- 仅在发布分支中运行该步骤
- 跳过个人构建步骤
或者,创建自定义条件,TeamCity 将自动建议支持的参数和值。可以使用多种逻辑条件和参数。
| 归档时间: |
|
| 查看次数: |
15657 次 |
| 最近记录: |