TeamCity On-Premises 2024.03 Help

构建步骤执行条件

在配置构建步骤时,您可以选择一个通用的 执行策略,并且自 TeamCity 2020.1 起,还可以添加基于参数的 执行条件

执行条件使构建更加灵活,可以解决许多常见的使用场景,例如:

  • 仅在默认分支中运行步骤

  • 仅在 发布 分支运行步骤

  • 跳过 个人构建 中的步骤

您可以在构建步骤 Add condition 菜单中迅速选择任何可用的常用选项:

构建步骤执行条件

或者,选择 其他条件 选项以添加 参数基础执行条件 ,这是一个逻辑条件,其输入为 TeamCity 服务器或代理提供的任何 构建参数

例如,要仅在 testbranch 分支上运行构建步骤,您可以测试 teamcity.build.branch 参数的值,如下所示:

teamcity.build.branch 等于 testbranch

在 Kotlin DSL 中,您可以检查 teamcity.agent.jvm.os.name 参数,只在 Windows 代理上运行当前的构建步骤,如下所示:

package _Self.buildTypes import jetbrains.buildServer.configs.kotlin.* object MyBuildConfig : BuildType({ // ... steps { script { name = "Step 1" conditions { contains("teamcity.agent.jvm.os.name", "Windows") } // ... } } })

下面的示例说明如何利用报告步骤退出状态的参数来创建一个自定义条件(只有当步骤#2失败并且步骤#1成功时,步骤#3才会运行)。

package _Self.buildTypes import jetbrains.buildServer.configs.kotlin.* object MyBuildConf : BuildType({ steps { python { id = "Step1" // ... } python { id = "Step2" // ... } python { name = "Step3" conditions { equals("teamcity.build.step.status.Step1", "success") equals("teamcity.build.step.status.Step2", "failure") } // ... } } })

如果您声明了多个执行条件,只有在当前构建运行中 所有 条件都满足时,构建步骤才会被执行。

如果您在属于构建链的构建中使用基于参数的执行条件,注意,用于步骤条件的参数可能会在构建过程中更改自身的值。 这可能会在整个构建链中引起意外的源代码重用。 为了防止此情况,建议在依赖于具有此类条件的构建的构建配置的 快照依赖关系 中禁用 "如果有合适的构建,不要运行新构建" 选项。 如果启用此选项,TeamCity 将会显示受影响的构建配置对应的健康报告。

在这个演示中,我们探索了一个使用案例,即只有在特定环境中运行构建时,才需要运行给定的步骤。 这可以通过构建步骤条件轻松实现。

您还可以在 这篇博客文章 中阅读本教程的总结。

最后修改日期: 16日 7月 2024年