【问题标题】:How Do I set a Teamcity Trigger on a Particular Folder for Git VCS trigger如何在 Git VCS 触发器的特定文件夹上设置 Teamcity 触发器
【发布时间】:2022-04-26 22:33:08
【问题描述】:

我希望 Teamcity 在特定文件夹的特定分支上发生 gerrit 更改时触发构建。我无法达到同样的效果,非常感谢所有有经验的用户提出的任何建议。

以下是我的结构的样子,我希望分支开发和暂存,仅在 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

这是我尝试过的

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

【问题讨论】:

    标签: git version-control triggers teamcity


    【解决方案1】:

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

    • 在版本控制设置选项卡中,分别添加两个 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,然后选择允许在默认分支中构建。

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

    【讨论】:

    • 感谢您提供详细信息,我会尝试一下,但我实际上是在尝试在单个 vcs 根目录中使用两个分支,以便同时监视两个分支但是检测到更改时,仅根据触发器检出一个分支,这是否可能?
    【解决方案2】:

    repo root 后面应该有一个斜线。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多