【问题标题】:VSTS CI - how to trigger a build for single projectVSTS CI - 如何触发单个项目的构建
【发布时间】:2018-04-19 18:44:24
【问题描述】:

我正在使用 Visual Studio Team Services 构建定义触发器。我正在尝试为我的分支上的 one 项目(但不是包含许多项目的整个分支)设置持续集成和交付。这将帮助我构建和发布单个微服务(当合同没有改变时......)。

我在这里或官方文档中找不到答案: Build definition triggers

我确实尝试过使用路径过滤器,但事实证明它不是一种可靠的方法。我可能听错了...

任何指导将不胜感激。提前通知

【问题讨论】:

    标签: tfs azure-devops tfsbuild


    【解决方案1】:

    要仅在project3 发生更改时触发 CI 构建,您只能指定项目目录的路径过滤器。

    比如你repo中的文件结构如下:

    Root repo
        |___ project1
                |___ ...
        |___ project2
                |___ ...
        |___ project3
                |___ ...
        |___ project.sln
        |___...
    

    然后你可以指定路径过滤器如下:

    并且要仅上传关于project3 的构建工件以进行持续部署,您可以将相关文件从$(Build.SourcesDirectory)\project3 复制到$(Build.ArtifactStagingDirectory),然后从$(Build.ArtifactStagingDirectory) 上传构建工件。

    【讨论】:

    • 谢谢。我刚刚再次测试它并且它有效。第一次,甚至在发布这个 Q 之前,我记得尝试过这种方法并且签入触发了所有 CI 构建。一定是太累了....非常感谢
    【解决方案2】:

    首先,您必须指定 CI 选项并启用它。 启用“在构建过程中进行批量更改”是可选的。

    将您想要的分支添加到“分支过滤器”。

    然后添加“包含”和要触发构建的路径列表。

    由于您添加排除所有配置(如您的问题),构建不能包含其他目录。

    您也不需要在路径中指定“*”。

    【讨论】:

    • 谢谢。所以,如果我有名为 1、2、3 ... N 的项目,并且我想 CI 只说项目 3。路径过滤器应该是什么样子?
    • 你必须为每个项目构建一个,然后指定用于构建的目录,以便仅在更改特定目录时启动它
    • 是的,这就是我的设置。我很感激你的时间。谢谢。
    猜你喜欢
    • 2017-12-18
    • 2014-10-09
    • 1970-01-01
    • 2016-04-22
    • 2020-02-26
    • 1970-01-01
    • 2016-10-29
    • 2018-10-18
    • 1970-01-01
    相关资源
    最近更新 更多