【问题标题】:Can you configure incremental builds via jenkins TFS您可以通过 jenkins TFS 配置增量构建吗
【发布时间】:2016-09-01 06:35:43
【问题描述】:

我们有一个运行时间很长的构建,我们正在尝试将其分解为增量构建。代码为 c#/.net,jenkins 作为构建管理器,TFS(visualstudio online 作为源代码控制)

所以架构看起来像:

  1. 区域 1(1 个或多个解决方案)
  2. 区域 2(1 个或多个解决方案)
  3. 区域 3(1 个或多个解决方案)

所以想法是,如果代码在区域 1 中签入,则仅构建该区域的相关解决方案并运行该区域的测试。 然后,我们还将有一个构建所有内容的夜间构建。

我的问题是,Jenkins/TFS 是否可以检测已签入的代码区域并将变量(或变量列表)传递到构建脚本中,该脚本告诉它要构建/测试哪些项目?

【问题讨论】:

  • 只使用visualstudioonline,没有TFS服务器。并使用 MSBuild 脚本执行构建(通过 Jenkins 中的 MSBuild 任务)

标签: jenkins tfs build continuous-integration azure-devops


【解决方案1】:

Visual Studio Team Service (Visual Studio Online) 支持 Git 和 Team Foundation 版本控制 (TFVC)。

如果您使用 TFVC 进行版本控制,VSTS 可以检测到哪个区域的代码已签入。但是,它无法告诉 Jenkins 哪个区域已更新和构建。因此,另一种方法是为这三个区域创建三个 Jenkins 作业,并由三个 VSTS 服务挂钩触发。

例如,您在“测试”项目中有三个区域,因此文件夹结构将是:

$/测试

---/区域1

-----/项目与解决方案

---/区域2

-----/项目与解决方案

---/区域3

-----/项目与解决方案

您可以为 Area1 创建一个 Jenkins 服务挂钩,如下所示来触发 Area1 的 Jenkins 作业:

在 Jenkins 中,更新 Area1 作业的设置以获取 Area1 的源文件:

现在,只有在 Area1 中的代码签入时,才能触发 Area1 的 Jenkins 作业。并重复上述步骤配置Area2和Area3的设置。

如果您使用 Git 进行版本控制。 Git仓库中的区域文件夹无法触发构建,需要将三个区域分开并放入三个Git仓库中。

【讨论】:

    猜你喜欢
    • 2017-11-01
    • 2019-12-22
    • 1970-01-01
    • 2016-03-06
    • 2013-06-28
    • 1970-01-01
    • 1970-01-01
    • 2020-04-26
    • 2018-05-31
    相关资源
    最近更新 更多