【问题标题】:TeamCity: How to setup proper trigger file wildcardsTeamCity:如何设置正确的触发器文件通配符
【发布时间】:2021-06-22 05:34:22
【问题描述】:

假设我有一个在文件夹树中包含以下项目的解决方案(这是 C#,但原则上可以是任何东西):

MySolution
- SharedFolderA
  - File1.cs
  - File2.cs
  - SharedProject.csproj
- SharedFolderB
  - File1.cs
  - File2.cs
  - SharedProject.csproj
- Hosts
  - Host1
    - Program.cs
    - Host1.csproj
  - Host2
    - Program.cs
    - Host2.csproj

现在在 TeamCity 中,我希望将每个主机构建成单独的构建。所以我将有一个名为MySolution 的项目,其中包含以下构建:

  • 构建主机 1
  • 构建 Host2

现在问题来了:对于每个构建,我想设置一个 VCS 触发规则,如果提交包含对其中任何一个的更改,它将触发构建

  • 根文件夹中的文件
  • 一个或多个共享文件夹中的文件
  • 特定主机文件夹中的文件 - 但不是其他主机文件夹

示例:如果以下任何文件夹中的任何文件已更改,则应触发 Host2 的构建:

  • 我的解决方案
  • SharedFolderA
  • SharedFolderB
  • 主机/主机2

我应该如何设置文件通配符?

【问题讨论】:

    标签: teamcity devops


    【解决方案1】:

    格式如下来自 TeamCity Ref也许考虑不同的方法,因为你有不同的构建/主机条件!


    选项 1:

    由于您有各种具有构建条件的主机,因此(恕我直言)**推荐使用通配符构建依赖项,即使用工件依赖项功能,该功能反过来允许在下图中的文件和文件夹中使用通配符。


    选项 2:但是,如果您选择沿 原始 构建触发路径,您可以试试这个。

    +|-[:user=VCS_username;]root=VCS_root_id;]comment=VCS_comment_regexp]]:Ant_like_wildcard

    通过 UI 进行设置后,您可以复制并通过添加修改来编辑触发器。

    //all files, or .CS in the root folder
    /root/**
    /root/*.cs
    
    //files in one or more of the shared folders
    /root/SharedFolderA/**
    /root/SharedFolderB/*.cs
    
    //files in the specific host folder - but not the other host folder
    /root/SharedFolderA/**
    // the -ve sign will ignore it
    -/root/Hosts/Host2/**
    

    您可以添加正则表达式或**? singmatch


    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-26
      • 1970-01-01
      • 1970-01-01
      • 2019-05-31
      • 2019-11-21
      • 2021-02-13
      • 1970-01-01
      相关资源
      最近更新 更多