为 Jenkins 创建服务挂钩

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

本文介绍如何为 Azure DevOps 项目设置服务挂钩以触发 Jenkins 生成。 如果使用 Jenkins 生成应用,则可以将代码存储在 Git 存储库中,并使用 Jenkins 进行持续集成生成。 将代码推送到 Git 存储库或签入代码到 Team Foundation 版本控制 (TFVC) 存储库时,可以触发 Jenkins 生成。

可以在 Azure Pipelines 和 Jenkins 中生成应用的一部分。 完成 Azure Pipelines 生成后,可以触发 Jenkins 生成,以便使用这两个系统生成应用。

Azure DevOps 不收取设置服务挂钩或与外部服务集成的费用,Jenkins 是完全开放源代码且可供免费使用。

创建 Jenkins 服务挂钩

若要管理服务挂钩 Azure DevOps 组织或项目,必须在组织中具有 “所有者 ”或 “项目集合管理员” 角色。

配置 Jenkins

  1. 如果没有,请设置 Jenkins 服务器。

  2. 如果在本地设置 Jenkins, 请启用 HTTPS

  3. 在jenkins.xml配置文件中,通过在标记中添加<arguments>或更新以下行,在参数之前-jar将hudson.plugins.git.GitStatus.NOTIFY_COMMIT_ACCESS_CONTROL系统属性设置为disabled

    -Dhudson.plugins.git.GitStatus.NOTIFY_COMMIT_ACCESS_CONTROL=disabled

设置 Jenkins 版本

  1. 在 Jenkins 中,创建新项。

    显示 Jenkins 中的“新建项”链接的屏幕截图。

  2. 选择适合项目的生成类型。

    显示 Jenkins 中的“生成名称和类型”的屏幕截图。

  3. 输入 Git 存储库的 URL。

    显示 Jenkins 中源代码管理设置的屏幕截图,其中选择了 Git。

设置 Jenkins 服务挂钩

  1. 在 Azure DevOps 项目中,转到 Project 设置>服务挂钩。https://<organization-name>/<project-name>/_settings/serviceHooks

    项目设置中服务挂钩选项的屏幕截图。

  2. “服务挂钩 ”页上,选择 + 图标或 “创建订阅”。

    在“服务挂钩”页上选择“创建订阅”的屏幕截图。

  3. “服务 ”屏幕上,选择 Jenkins,然后选择“ 下一步”。

    在“服务”页上选择 Jenkins 的屏幕截图。

  4. “触发器 ”屏幕上,选择要触发 Jenkins 生成的 Azure DevOps 事件,然后选择“ 下一步”。

    选择和配置触发器事件的屏幕截图。

  5. “操作”屏幕上,将 Jenkins 操作 配置为在事件发生时执行。

    配置“操作”对话框的屏幕截图。

  6. 选择“ 测试 ”以测试服务挂钩,然后 完成 配置。

现在,当事件在 Git 存储库中发生时,它会触发 Jenkins 生成。

提示

还可以使用 REST API 以编程方式创建服务挂钩订阅。 有关详细信息,请参阅 以编程方式创建服务挂钩订阅。