当我的团队成员在 GitHub 存储库中推送更改时,我的 azure 管道未触发

问题描述

我为 GitHub 存储库中的 .net 应用程序创建了一个经典的 CI azure 管道,并在触发器中启用了持续集成,还在分支过滤器中添加了 2 个分支。但是当我的团队成员进行了一些更改并提交时,我的管道没有触发,也没有创建构建。我不知道可能是什么问题,因为我是天蓝色管道的新手

解决方法

以下是一些故障排除建议,您可以点击 this document 了解更多详细信息:

  1. 您是否使用 GitHub 应用程序连接将管道连接到 GitHub?如果您使用的是 GitHub 应用程序连接,请按照以下步骤操作:

GitHub 和 Azure DevOps 之间的映射设置是否正确?打开一个 在您的 GitHub 存储库中拉取请求,并发表评论 /azp 在哪里。这向 Azure DevOps 组织报告了 存储库被映射到。

如果没有设置组织来使用该应用程序构建此存储库, 去 https://github.com/<org_name>/<repo_name>/settings/installations 和 完成应用的配置。

如果报告了不同的 Azure DevOps 组织,则有人 已经为这个 repo 建立了一个不同的管道 组织。我们目前的限制是我们只能映射一个 GitHub 存储库到单个 DevOps 组织。只有第一个管道 Azure DevOps 组织可以自动触发。要更改 映射,从 GitHub 组织卸载应用程序,以及 重新安装它。重新安装时,请确保选择正确的 重定向到 Azure DevOps 时的组织。

  1. 您是使用 OAuth 还是 PAT 将管道连接到 GitHub?如果您使用的是 GitHub 连接,请按照以下步骤操作:

OAuth 和 PAT 连接依赖于网络钩子将更新传达给 Azure 管道。在 GitHub 中,导航到您的设置 存储库,然后到 Webhook。验证 Webhook 是否存在。通常 您应该会看到三个 webhooks - push、pull_request 和 issue_comment。 如果不这样做,则必须重新创建服务连接并 更新管道以使用新的服务连接。

选择 GitHub 中的每个 webhooks 并验证有效负载 对应用户的提交存在并成功发送到 Azure DevOps。如果事件不能,您可能会在此处看到错误 传达给 Azure DevOps。

  1. 您的管道是暂停还是禁用?打开管道的编辑器,然后选择设置进行检查。如果您的管道是 暂停或禁用,则触发器不起作用。

  2. 您是否在定义触发器或路径时使用了变量?不支持。

  3. 您是否排除了将更改推送到的分支或路径?通过将更改推送到包含路径中的包含路径来进行测试 分支。请注意,触发器中的路径区分大小写。确保 您在指定文件夹时使用与真实文件夹相同的案例 触发器中的路径。

更新:

github 中的 webhooks 无需更改,只需到 github Settings -> Webhooks 查看是否有“Recent Deliveries”即可。如果最近交付有错误,会指出问题的原因。

enter image description here

如果Azure DevOps和GitHub连接正确,GitHub会自动生成Webhooks。如下图:

enter image description here

“Payload URL”的内容是:

https://dev.azure.com/{organization}/_apis/public/hooks/externalEvents?publisherId=github&channelId={channelId}&api-version=6.1-preview

请注意,一个 GitHub 存储库只能连接到一个 Azure DevOps 组织。如果您已连接到多个组织,请保留您当前使用的唯一一个。

,

在 DevOps 中点击左侧导航栏中的 Pipelines

选择您的管道。

点击编辑

然后在新的窗口窗格(左上角)中,您将看到一个触发器选项卡。

您可以在此处配置持续集成设置以触发推送/拉取请求等的构建。

这是一个例子enter image description here

为开发分支启用了持续集成,因此对该分支的任何推送都将触发构建。