我正在尝试建立一个新的工作流程。我们在Git SCM支持的前提下使用TFS 2015。但是,我还想使用Jenkins进行构建和部署。我们正在构建.NET / mono Java& Java for android,nodejs和其他几个位。此外,从Jenkins自动部署到docker。因此,尽管新的TFS构建看起来更好,但我现在不想尝试它们。
我的问题是关于TFS拉取请求和代码审查。开发人员无法提交给master,我设置了分支策略,因此他们必须提交一个pull请求,其中包括将分支推送到远程。但是,我无法设置“必需的构建”策略,因为虽然我已经链接了Jenkins,但它只允许我选择TFS构建作为分支策略的一部分。
所以我使用服务挂钩功能将Jenkins链接到TFS,我可以通过这种方式启动TFS构建,但我认为它不会对我有所帮助,因为它必须监视特定的分支。所以相反,我只是从Jenkins轮询git并在repo中除了master之外的所有分支。
我想做的是让开发人员将他们的分支推送到远程,让Jenkins构建它(我已经做到这一点),然后以某种方式发布构建报告或链接到TFS,所以当其他开发人员使用TFS UI进行代码审查,然后可以查看构建报告。 (这就是我被困的地方)
一旦完成,并且执行了合并,执行部署等的其他构建可以针对主分支运行。只是这个回到TFS的链接我正在努力,有其他人得到答案
有人有解决方案吗?我尝试使用git发布插件将构建结果的url添加到git notes中,但是TFS似乎没有在任何地方显示。我已经考虑过设置一个TFS版本来简单地调用Jenkins的工作,但感觉有点hacky。有没有更好的办法?
答案 0 :(得分:0)
我最终解决了这个问题。我所做的是让Jenkins为pull请求添加另一个提交,提交中的注释是Jenkins构建报告的链接。我还必须修改Jenkins作业以忽略Jenkins用户的提交,以防止无限循环的构建。
现在,当提交拉取请求时,Jenkins会选择它,构建它并创建额外的提交。作为评论者,我收到一封电子邮件,提醒我有一个拉取请求。我点击链接去查看,当我去提交时,我看到了Jenkins构建报告的链接。
它并不完美,但它确实有效。这肯定是比放弃更好的解决方案,因为TFS没有这个功能。