如何在特定文件夹上为 Git VCS 触发器设置 Teamcity 触发器

Jos*_*ose 4 git version-control teamcity triggers

我希望 Teamcity 在特定文件夹的特定分支上发生 gerrit 更改时触发构建。我无法实现相同的目标,非常感谢您所有有经验的用户的任何建议。

以下是我的结构的样子,我希望构建同时被 Branch dev 和 Staging 触发,仅在 New/Folder/My_Content 下进行任何更改,而不是在任何其他 foder 、文件内容上

 - Branch dev
  --Repo
     * New/Folder/My_Content
     * Folder 2
     * Folder 3
     * File1.txt
     * File1.html
     * File1.log

 - Branch Staging
  --Repo
     * New/Folder/My_Content
     * Folder 2
     * Folder 3
     * File1.txt
     * File1.html
     * File1.log
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的

VCS root name: my_root 

set on branches 

+:refs/(changes/*)
+:refs/heads/dev
+:refs/heads/Staging

VCS Trigger rules:
+:root=my_root:New/Folder/My_Content/**
Branch filter:
+:changes/*
Run Code Online (Sandbox Code Playgroud)

上述规则总是在所有文件夹上触发构建,除了我需要的文件夹。

我的第二个问题是,我可以在 VCS 触发器规则中使用参数吗?事情如下。

VCS Trigger rules:
+:root=my_root:New/Folder/%my_var%/**
Branch filter:
+:changes/*
Run Code Online (Sandbox Code Playgroud)

Mar*_*Liu 5

您只需要为分支添加两个 VCS Rootsdev并且Staging您要触发并指定您需要触发的文件路径。详细设置如下:

  • 在 Version Control Settings Tab 中,分别添加两个 VCS 根:

    第一个 VCS 根名称是<repo URL>+:refs/heads/dev,默认分支是refs/heads/dev.

    第二个 VCS 根名称是<repo URL>+:refs/heads/Staging,默认分支是refs/heads/Staging.

    下面是一个示例 VCS 根配置:

    在此处输入图片说明

    对于 VCS 签出模式,您可以选择Always checkout files on agent,然后选择Allow builds in the default branch在此处输入图片说明

  • 在 Triggers Tab 中,将触发规则设置为+:New/Folder/My_Content/**

    在此处输入图片说明