【问题标题】:TFS 2015, Git and Jenkins work flow issueTFS 2015、Git 和 Jenkins 工作流程问题
【发布时间】:2016-07-29 19:47:40
【问题描述】:

我正在尝试设置新的工作流程。我们在 Git SCM 支持的前提下使用 TFS 2015。但是,我也想使用 Jenkins 进行构建和部署。我们正在为 android、nodejs 和其他一些位构建 .NET/mono Java 和 Java。此外,从 Jenkins 自动部署到 docker。因此,尽管新的 TFS 构建看起来更好,但我现在不想尝试它们。

我的问题是关于 TFS 拉取请求和代码审查。开发人员无法提交给 master,我设置了分支策略,因此他们必须提交一个拉取请求,其中涉及将分支推送到远程。但是,我无法设置“必需构建”策略,因为虽然我已经链接了 Jenkins,但它只允许我选择 TFS 构建作为分支策略的一部分。

所以我已经使用服务挂钩功能将 Jenkins 链接到 TFS,我可以通过这种方式启动 TFS 构建,但我认为这对我没有帮助,因为它必须监控特定的分支。因此,我只是从 Jenkins 轮询 git 并针对除 master 之外的 repo 中的所有分支进行构建。

我想做的是让开发人员将他们的分支推送到远程,让 Jenkins 构建它(我已经做到了这一点),然后以某种方式将构建报告或指向它的链接发布回 TFS,所以当其他开发人员来使用 TFS UI 进行代码审查,然后可以去查看构建报告。 (这是我卡住的地方)

完成并执行合并后,执行部署等的其他构建可以针对主分支运行。它只是我正在努力解决的 TFS 的这个链接,其他人有答案吗

有没有人解决这个问题?我尝试使用 git publish 插件将构建结果的 url 添加到 git 注释中,但 TFS 似乎没有在任何地方显示。我考虑过建立一个 TFS 构建来简单地调用 Jenkins 工作,但感觉有点 hacky。有没有更好的办法?

【问题讨论】:

    标签: git jenkins tfs continuous-integration


    【解决方案1】:

    根据您的描述,您想从 TFS 触发 Jenkins,并将 Jenkins 构建结果发布回 TFS。

    当您的 tfs 项目中发生事件时,作为服务挂钩可以让您在其他服务上执行任务。但是 TFS 只为带有构建定义的构建提供构建报告。在 TFS 方面,没有将 Jenkins 构建结果发布回 TFS 的功能。

    【讨论】:

    • 嗯,这有点失败主义。正如我所说,我考虑过创建一个调用 Jenkins 构建的 TFS 构建。今天早上,我还尝试让 Jenkins 在拉取请求中添加一个提交,其中包含指向 Jenkins 构建结果的链接。
    【解决方案2】:

    我最终解决了这个问题。我所做的是让 Jenkins 在拉取请求中添加另一个提交,提交中的评论是指向 Jenkins 构建报告的链接。我还必须修改 Jenkins 作业以忽略 Jenkins 用户的提交,以防止构建的无限循环。

    现在,当提交拉取请求时,Jenkins 会选择它,构建它并创建额外的提交。作为审阅者,我收到一封电子邮件,提醒我有一个拉取请求。我点击链接去看看,当我去提交时,我看到了 Jenkins 构建报告的链接。

    它并不完美,但它确实有效。这肯定是比放弃更好的解决方案,因为 TFS 没有该功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-24
      • 1970-01-01
      • 2012-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多