如何在Git VCS触发器上设置Teamcity触发器以针对特定文件夹进行触发。

5
我希望Teamcity能够在特定分支和特定文件夹中的Gerrit更改时触发构建。但我无法实现这一点,非常感谢所有有经验的用户提供的任何建议。
以下是我的结构,我希望构建同时在dev和Staging两个分支下的New/Folder/My_Content文件夹中的任何更改时被触发,而不是其他文件夹或文件的内容。
 - 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

这是我尝试过的内容

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/*

以上规则始终会触发所有构建操作,但不包括我需要的文件夹。

我的第二个问题是,我可以在VCS触发规则中使用参数吗?类似以下内容。

VCS Trigger rules:
+:root=my_root:New/Folder/%my_var%/**
Branch filter:
+:changes/*
2个回答

6
您只需要添加两个版本控制源,分别为您想要触发的 devStaging 分支,并指定要触发的文件路径。 详细设置如下:
  • 在版本控制设置选项卡中,分别添加两个 VCS 根:

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

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

    以下是示例 VCS 根配置:

    enter image description here

    对于 VCS 检出模式,您可以选择 总是在代理上检出文件 并选择 允许在默认分支中构建enter image description here

  • 在触发器选项卡中,将触发规则设置为 +:New/Folder/My_Content/**

    enter image description here


感谢提供详细信息,我会尝试一下。 但是我实际上想要在单个VCS根目录中使用这两个分支,以便同时监视这两个分支,但仅基于触发器检测到更改时才检出一个分支,这是否可能? - Jose

0

仓库根目录后面应该加上斜杠。

+:root=my_root:/New/Folder/%my_var%/**

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接