【问题标题】:TFS - How to set build definition to build on workspace changes, but NOT download files to workspace?TFS - 如何设置构建定义以构建工作区更改,但不将文件下载到工作区?
【发布时间】:2017-09-28 23:02:49
【问题描述】:

我有关于 CI 构建的解决方案。这行得通。

当开发人员签入更改时,将构建解决方案,但仅限于对该解决方案的更改。

如何让构建定义基于解决方案之外的其他文件夹更改进行构建?

是的,我可以在工作区源选项卡中添加工作区。但这意味着在每次构建时都会下载所有代码。

我们的解决方案有十几个依赖项。如果任何这些依赖关系发生变化,我想触发构建。我们根本不需要将依赖源代码下载到构建工作区中。那是没有意义的。

是的,我们在 TFS 中有一个用于存放 Nuget 包的文件夹。我们会在构建时自动检查它们(感谢 TFS)。

我可以将 NugetPackage 工作区添加到解决方案的工作区列表中,但这会导致每个依赖项的每个版本都下载到构建工作区中。

如何在构建定义的工作区列表中未列出的更改上触发构建?

顺便说一句,我们使用的是 TFS 2012

我希望 Cloaking 功能允许这样做,但如果它被隐藏,则不会触发自动构建。仅当工作区文件夹设置为活动时才会触发自动构建。这也意味着在同一个文件夹中下载每个 NugetPackage!

【问题讨论】:

    标签: tfs build tfsbuild


    【解决方案1】:

    它无法根据构建定义的工作区列表中未列出的更改触发 CI 构建。

    需要了解的其他一些事项

    • 确保包含在触发器中的文件夹也包含在“存储库”选项卡上的映射中(与 工作区映射)。

    Source Link

    作为一种解决方法,您可以将 clean workspace 设置为 false,这样每次都不会获取其他未更改的文件。

    如果您的构建过程不需要干净的工作区或 存储库,您可以显着减少所需的时间 运行构建,将此参数值设置为 False。

    【讨论】:

    • Team Foundation Server 2017 还没有解决这个问题?哇
    • 不幸的是,管理层坚持干净的工作空间是的。对我来说,微软为什么要对这两个离散的信息进行标记是没有意义的。监视文件夹以进行更改的需要与在构建期间从该文件夹获取最新文件的需要无关。我真的希望 MS 在某个时候将这两条信息分开。两种情况都需要相互独立。在监控范围之外的构建过程中,也有很多人使用第三方工具将版本控制文件获取到他们的构建服务器上。
    • @user5855178 我想知道,如果依赖项的源代码没有下载到代理工作空​​间,如何构建项目/解决方案?您可以提供示例来解释它。
    猜你喜欢
    • 2012-10-08
    • 2018-11-11
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多