Jenkins 如何用詹金斯管道Groovy脚本使用Team Foundation Server SCM插件? 使用詹金斯V2.46和“Team Foundation Server插件”V5.3.4,我已经能够找到一个脚本,该脚本将最新的源(.Net Core)从TFS(在线)的存储库中拉到我的Linux框上,并构建一个容器,这是非常好的!p>

Jenkins 如何用詹金斯管道Groovy脚本使用Team Foundation Server SCM插件? 使用詹金斯V2.46和“Team Foundation Server插件”V5.3.4,我已经能够找到一个脚本,该脚本将最新的源(.Net Core)从TFS(在线)的存储库中拉到我的Linux框上,并构建一个容器,这是非常好的!p>,jenkins,groovy,tfs,jenkins-pipeline,Jenkins,Groovy,Tfs,Jenkins Pipeline,作为CI解决方案的下一步,我希望将此作业转换为管道,以便编写步骤脚本,将生成的容器从开发环境推送到QA环境。我遇到的第一个问题是,我不知道如何告诉Jenkins使用groovy语法从TFS online中提取 使用groovy脚本生成器,没有使用TFS插件编写SCM控制脚本的选项,我也找不到任何文档来定义如何执行此操作 实际上是否可能,或者我是否应该尝试从我的工作中启动管道作为构建后步骤?似乎您将代码存储在Visual Studio Team Services(TFS online)中,并希望使

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

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


实际上是否可能,或者我是否应该尝试从我的工作中启动管道作为构建后步骤?

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

对于CI,在TFS端,当您将代码推到您的团队项目的Git存储库中,或者当您将代码检查到Team Foundation版本控制时,可以直接触发詹金斯生成。 如果无法使用groovy脚本生成器使用TFS插件为SCM控件编写脚本。当TFS团队项目中发生特定事件时,您可以通过使用以编程方式创建一个订阅,该订阅在外部(使用者)服务上执行操作


有关详细信息,请参阅本教程:

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

对于CI,在TFS端,当您将代码推到您的团队项目的Git存储库中,或者当您将代码检查到Team Foundation版本控制时,可以直接触发詹金斯生成。 如果无法使用groovy脚本生成器使用TFS插件为SCM控件编写脚本。当TFS团队项目中发生特定事件时,您可以通过使用以编程方式创建一个订阅,该订阅在外部(使用者)服务上执行操作


有关详细信息,您可以阅读本教程:

在进行了大量挖掘之后,发现在撰写本文时,目前还不可能这样做。有关此问题的未决问题,请参阅


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

经过更多的挖掘,在编写本文时发现,这在当前是不可能的。有关此问题的未决问题,请参阅

我现在所做的是在TFS中创建一个GIT存储库,并与之通信;不像用于作业的TFS插件那么灵活,似乎无法正确跟踪变更集注释,但它确实会根据需要触发生成。

步骤{ 签出([$class:'TeamFoundationServerScm',localPath:'D:\BUILD Code scm',projectPath:'$/ROOTDIR/Modules',serverUrl:'>XXX.com:8080/tfs/ROOTDIR',useOverwrite:true,useUpdate:true,用户名:'TLR\uname',密码:hudson.util.Secret.fromString('password'),工作空间名:'hudson-${JOB\u NAME}-${NODE\u NAME}')) }步骤{ 签出([$class:'TeamFoundationServerScm',localPath:'D:\BUILD Code scm',projectPath:'$/ROOTDIR/Modules',serverUrl:'>XXX.com:8080/tfs/ROOTDIR',useOverwrite:true,useUpdate:true,用户名:'TLR\uname',密码:hudson.util.Secret.fromString('password'),工作空间名:'hudson-${JOB\u NAME}-${NODE\u NAME}')) }