如何将Team Foundation Server SCM插件与Jenkins Pipeline groovy脚本一起使用?

时间:2017-04-12 09:18:58

标签: jenkins groovy tfs jenkins-pipeline

使用Jenkins v2.46和' Team Foundation Server插件' v5.3.4,我已经能够获得一个Job脚本,它将把最新的源代码(.NET Core)从TFS(在线)的存储库中提取到我的Linux盒子上并构建一个容器,这很棒!

作为CI解决方案的下一步,我想将此作业转换为管道,以便我可以编写脚本以将生成的容器从开发环境推送到QA环境。我遇到的第一个问题是我不知道如何告诉Jenkins使用groovy语法从TFS在线提取。

使用groovy脚本生成器,没有选项可以使用TFS插件编写SCM控件脚本,我找不到任何文档来定义如何执行此操作。

它实际上是否可行,或者我应该尝试做一些从我的工作中作为后期构建步骤开始管道的事情?

3 个答案:

答案 0 :(得分:1)

经过多次挖掘后,事实证明,在撰写本文时,目前尚不可能。有关此问题的未解决问题,请参阅https://issues.jenkins-ci.org/browse/JENKINS-31803

我现在所做的是在TFS中创建一个GIT存储库并与之通信;不像作业的TFS插件那样光滑,并且似乎无法正确跟踪变更集注释,但它确实触发了我需要的构建。

答案 1 :(得分:0)

似乎您将代码存储在Visual Studio Team Services(TFS在线)中,并希望将Jenkins用于持续集成构建。

对于CI,在TFS方面,当您将代码推送到团队项目的Git存储库或将代码检入Team Foundation版本控制时,您可以直接触发Jenkins构建。

如果您无法使用groovy脚本生成器来使用TFS插件编写SCM控件脚本。您可以通过使用subscriptions REST APIs以编程方式创建在TFS团队项目中发生特定事件时对外部(使用者)服务执行操作的订阅。

有关详细信息,您可以阅读本教程:Jenkins with Visual Studio Team Services

答案 2 :(得分:0)

步骤{               checkout([$ class:'TeamFoundationServerScm',localPath:'D:\ BUILD-Code-scm',projectPath:'$ / ROOTDIR / Modules',serverUrl:'http://XXX> XXX.com:8080/tfs/ ROOTDIR',useOverwrite:true,useUpdate:true,userName:'TLR \ UNMAE',密码:hudson.util.Secret.fromString('PASSWORD'),workspaceName:'Hudson-$ {JOB_NAME}-$ {NODE_NAME}'] )            }