TeamCity On-Premises 2024.03 Help

分支远程运行触发器

每当 TeamCity 检测到构建配置的 VCS 根的特定分支中有变化时,分支远程运行触发器会自动启动一个新的个人构建。 完成的个人构建在 构建历史记录 中列出,但只对启动它们的用户可见。

目前,分支远程运行触发器仅支持 Git 和 Mercurial VCS。

对于非个人构建的分支,请查看 使用功能分支。 当为 VCS 根配置了分支规格时,分支远程运行触发器仅处理不符合规格且未被排除的分支。

触发设置

触发器监视与特定模式匹配的分支名称。
默认模式包括:

  • 对于 Git 仓库: refs/heads/remote-run/*

  • 对于 Mercurial 仓库: remote-run/*

这些分支是常规的版本控制分支,TeamCity 不对它们进行管理(也就是说,如果您不再需要该分支,您需要使用常规的版本控制方法来删除该分支)。

默认情况下,TeamCity 会为在分支的最后一次提交中检测到的用户触发个人构建。 您也可以在分支的名称中指定一个 TeamCity 用户。 要做到这一点,请在模式中使用占位符 TEAMCITY_USERNAME ,并在分支的名称中使用您的 TeamCity 用户名。 例如,模式 remote-run/TEAMCITY_USERNAME/* 将匹配分支 remote-run/joe/my_feature 并为 TeamCity 用户 joe 启动个人构建(如果该用户存在)。

要能够触发,构建分支应至少有一个新的提交与主分支进行比较。

示例:从命令行运行个人构建

Git

% cd <your_local_git_repo> % git branch * master % git checkout -b my_feature Switched to a new branch 'my_feature' //code, commit; code, commit % git push origin +HEAD:remote-run/my_feature

在默认模式( refs/heads/remote-run/* )下, git branch -r 命令将列出您的个人分支。 如果您想要隐藏它们,请将模式更改为 refs/remote-run/* ,并将您的更改推送到像 refs/remote-run/my_feature 这样的分支。 在这种情况下,您的分支未被上述命令列出,尽管您可以使用 git ls-remote <url_of_git_repository> 来查看它们。

Mercurial

% cd <your_local_hg_repo> % hg branch default % hg branch remote-run/my_feature marked working directory as branch remote-run/my_feature //code, commit; code, commit % hg push -b remote-run/my_feature --new-branch

技术所限

如果您的构建配置有多个支持远程运行分支的 VCS 根,且您向所有这些 VCS 根推送更改,那么 TeamCity 将会为每一个 VCS 根启动一个包含更改的个人构建。

触发构建自定义

触发器设置中的 Build Customization 标签允许配置由此触发器启动的构建的自定义参数。 与 Run Custom Build 对话框类似,它让您可以覆盖 构建参数 的值,并选择是否在构建前清理 检出目录

在此选项卡中,您可以自定义当前构建配置中使用的任何参数的值。 或者,您可以添加一个新的参数,它将仅在由此触发器启动的构建中可用。 如果当前构建对其他构建有快照依赖,这样一个参数也可以用来覆盖依赖构建配置的某个属性:使用这个 reverse.dep.<dependencyBuildID>.<property> 语法。

请注意,如果您在触发器中重新定义了构建参数,然后在 参数 中删除了原始参数,那么它的重新定义值将被转换为触发器自己的纯文本参数。 在定制安全值时,这一点至关重要,因为只有与 "Password" 类型 一起存储时,它们才会被隐藏,如果转化为纯文本,它们将变得可读。

TeamCity 允许以多种方式解决类似的任务,在某些情况下,仍然优先创建不同的构建配置。 例如,如果在同一配置中有太多自定义运行,那么 TeamCity 预测每次构建的确切持续时间可能会更加困难。 如果您需要触发带有大量不同参数的构建,我们建议您创建一个 构建配置模板,并将其用作各种配置的蓝图,每种配置都有其自己的参数。

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