如何将 Team Foundation Server SCM 插件与 Jenkins Pipeline groovy 脚本一起使用?
How can I use the Team Foundation Server SCM plugin with a Jenkins Pipeline groovy script?
使用 Jenkins v2.46 和 'Team Foundation Server Plug-in' v5.3.4,我已经能够编写作业脚本,它将最新源代码 (.NET Core) 从 TFS 中的存储库(在线)拉到我的 Linux 盒子和一个容器,太棒了!
作为 CI 解决方案的下一步,我想将这项工作转化为管道,这样我就可以编写步骤将生成的容器从开发环境推送到 QA 环境。我遇到 运行 的第一个问题是我不知道如何告诉 Jenkins 使用 groovy 语法从 TFS 在线提取。
使用 groovy 脚本生成器,没有使用 TFS 插件编写 SCM 控制脚本的选项,而且我找不到任何文档来定义如何执行此操作。
这真的可能吗,或者我应该尝试做一些事情来启动管道作为我工作的 post-构建步骤?
您似乎将代码存储在 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
经过更多的挖掘,发现在撰写本文时,目前还不可能。有关此问题的未解决问题,请参阅 https://issues.jenkins-ci.org/browse/JENKINS-31803。
我现在所做的是在 TFS 中创建了一个 GIT 存储库并与之通信;不像用于作业的 TFS 插件那样灵活,而且似乎无法正确跟踪变更集注释,但它确实会在我需要时触发构建。
步骤{
checkout([$class: 'TeamFoundationServerScm', localPath: 'D:\BUILD-Code-scm', projectPath: '$/ROOTDIR/Modules', serverUrl: 'http://XXX>XXX.com: 8080/tfs/ROOTDIR', useOverwrite: true, useUpdate: true, 用户名: 'TLR\UNMAE', 密码: hudson.util.Secret.fromString('PASSWORD'), workspaceName: 'Hudson-${JOB_NAME}-${NODE_NAME}'])
}
使用 Jenkins v2.46 和 'Team Foundation Server Plug-in' v5.3.4,我已经能够编写作业脚本,它将最新源代码 (.NET Core) 从 TFS 中的存储库(在线)拉到我的 Linux 盒子和一个容器,太棒了!
作为 CI 解决方案的下一步,我想将这项工作转化为管道,这样我就可以编写步骤将生成的容器从开发环境推送到 QA 环境。我遇到 运行 的第一个问题是我不知道如何告诉 Jenkins 使用 groovy 语法从 TFS 在线提取。
使用 groovy 脚本生成器,没有使用 TFS 插件编写 SCM 控制脚本的选项,而且我找不到任何文档来定义如何执行此操作。
这真的可能吗,或者我应该尝试做一些事情来启动管道作为我工作的 post-构建步骤?
您似乎将代码存储在 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
经过更多的挖掘,发现在撰写本文时,目前还不可能。有关此问题的未解决问题,请参阅 https://issues.jenkins-ci.org/browse/JENKINS-31803。
我现在所做的是在 TFS 中创建了一个 GIT 存储库并与之通信;不像用于作业的 TFS 插件那样灵活,而且似乎无法正确跟踪变更集注释,但它确实会在我需要时触发构建。
步骤{ checkout([$class: 'TeamFoundationServerScm', localPath: 'D:\BUILD-Code-scm', projectPath: '$/ROOTDIR/Modules', serverUrl: 'http://XXX>XXX.com: 8080/tfs/ROOTDIR', useOverwrite: true, useUpdate: true, 用户名: 'TLR\UNMAE', 密码: hudson.util.Secret.fromString('PASSWORD'), workspaceName: 'Hudson-${JOB_NAME}-${NODE_NAME}']) }