【问题标题】:How can I use Jenkins in MS VSTS to build Pull Requests?如何在 MS VSTS 中使用 Jenkins 构建拉取请求?
【发布时间】:2018-06-12 00:37:40
【问题描述】:

我尝试通过点击此链接将我的 Jenkins 服务器连接到 VSTS 存储库。

https://blogs.msdn.microsoft.com/devops/2017/04/25/vsts-visual-studio-team-services-integration-with-jenkins/

但是,选项与教程不同。 没有办法为 Pull Request 设置规则,这是我正在尝试做的。

我设置了一个新的构建定义,以使 Jenkins 构建在每次提交时都能正常工作,但不适用于拉取请求。

【问题讨论】:

  • 您好,您的 Jenkins 服务器中安装了哪个版本的 TFS 插件(如果有)?您使用哪个版本的 Jenkins?您是否在构建定义中选择了 Queue Jenkins Job 任务的 2.* 版本?您是否按照GitHub 中的说明配置了您的 Jenkins 作业?

标签: jenkins azure-devops azure-pipelines


【解决方案1】:

要将 Jenkins 作业排队以进行 VSTS 拉取请求构建验证,您可以按照以下步骤操作:

  1. 在 Jenkins 中创建作业

    首先,您需要在 Jenkins 中创建一个作业。如果您已经创建,则跳过此步骤。

  2. 为 PR 构建验证创建和配置构建定义

    似乎您已经创建了一个名为 Jenkins 的构建定义,然后添加 Jenkins 队列作业任务。

    如果您没有在 VSTS 项目中将 Jenkins 配置为端点,您可以单击“新建”按钮指定服务器 URL、用户名和密码以登录 Jenkins。 然后指定 Jenkins 作业进行排队。

    注意:如果您的 Jenkins 设置为本地服务器(网址为 http://localhost:8080),那么您需要排队 VSTS 构建由 私人代理 也位于同一台机器。

  3. 添加构建策略作为目标分支策略

    在构建策略中,可以设置Trigger为Automatic,Policy要求为Required,Build过期时间为Immediately。

现在,当创建或更新拉取请求以合并到目标分支时,将立即触发 VSTS 构建,并且 Jenkins 作业也将在 VSTS 构建期间排队。

【讨论】:

  • 非常感谢您的回答。我试过这个并且似乎工作正常,但是只有当我尝试提交到目标分支时构建才会成功(在我的例子中是staging)。每当我为 PR 验证创建分支策略时,它都会给我一个 Job Creation Failed 消息和 {"statusCode":400,"body":"java.lang.IllegalArgumentException: Job: project_mayflower-frontend_vsts not found\n\tat hudson.plugins.tfs.TeamBuildEndpoint.getJob(TeamBuildEndpoint.java:269)... 我是否必须在 Jenkins 上为 Normal Commit 和 Pull Request 做不同的工作?
  • 不需要做不同的工作。出现错误时可以显示屏幕截图吗?
  • 我添加了一个截图。请检查。只有在我提出拉取请求时才会发生这种情况。当我将它正常推送到分支时,它工作正常。
  • + 如需更多信息,我们使用 Jenkins 2.107.3 和 TFS 插件版本 5.133.0。此外,我们在 Jenkins 中使用了多分支管道项目。
  • @Dawn17 根据屏幕截图,PR 构建验证是使用托管代理构建的。所以请确保托管代理可以访问您的詹金斯服务器。此外,您能否显示另一个为正常提交而构建的详细构建日志(通过将system.debug 设置为true)?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-14
  • 1970-01-01
  • 1970-01-01
  • 2021-01-10
  • 1970-01-01
  • 2019-05-27
相关资源
最近更新 更多