Jenkins 多分支流水线: 如何创建用于 Jenkins 状态检查的 GitHub 应用

使用 Jenkins 多分支流水线时,您可以将状态检查与 GitHub 拉取请求集成。

以下是状态检查的示例

要实现这些类型的状态检查,您需要创建一个与 Jenkins 主实例集成的 GitHub 应用。

在本博客中,我们将介绍如何创建一个 GitHub 应用,以便在流水线中启用状态检查。

创建 GitHub 应用


要创建 GitHub 应用,请选择您的 GitHub 个人资料,然后转到“设置”,如下所示。

向下滚动并选择开发者设置 

 然后点击 New GitHub App 按钮创建一个新的 GitHub 应用 

您需要在配置中填写以下详细信息。

  1. GitHub 应用名称:此名称必须是唯一的。例如,jenkins-auth-app。请将其替换为所需的名称。
  2. 主页 URL:输入您的 Jenkins URL。
  3. Webhook URL:包含 webhook 路径的 Jenkins URL(http://3.107.8.66:8080/github-webhook/)

 

 

 

 

在“仓库权限”下,从下拉菜单中选择以下权限。

  1. 管理:只读
  2. 检查:读写
  3. 提交状态:读写
  4. 内容:只读(用于在 git fetch 期间读取 Jenkinsfile 和仓库内容)。
  5. 元数据:只读
  6. 拉取请求:只读

 

在“订阅事件”下,选择以下事件:

  1. 检查运行
  2. 检查套件
  3. 拉取请求
  4. 推送
  5. 代码库

 

 创建应用程序后,您将看到生成私钥的通知,如下所示。

单击生成私钥选项,然后单击生成私钥按钮,如下所示。

 

它会下载一个私钥。

现在,您需要使用以下命令将密钥转换为 Jenkins 可以使用的格式。将 key-in-your-downloads-folder.pem 替换为您下载的私钥。

ninjamac@ip-192-168-1-95 key % openssl pkcs8 -topk8 -inform PEM -outform PEM -in rockjenkinsgithubapp.2025-04-18.private-key.pem -out converted-github-app.pem -nocrypt 


我们需要将转换后的密钥添加到 Jenkins 凭证中。

安装 Github 应用


现在,在应用配置页面上,您将看到一个名为“安装应用”的选项,如下所示。点击该选项即可为所有仓库启用此应用。

 

您可以选择所需的全部或单个存储库,然后单击“安装”。

将私钥添加到 Jenkins 凭证


现在,我们需要将转换后的 PEM 密钥添加到 Jenkins 凭证中。

前往 Jenkins 主页 --> 管理 Jenkins --> 凭证。

在“凭据”下,选择全局选项。
然后,选择“添加凭据”选项以添加新凭据。
现在,您需要选择“类型”为“GitHub 应用”。

我们还需要 Github 应用 ID。您可以从 Github 应用配置中获取它,如下所示。

 

 在key字段中,添加我们之前转换好的converted-github-app.pem私有文件内容,然后点击Create按钮,如下图所示。

差不多就是这样了。

现在,您可以在多分支管道中使用此凭证来启用 PR 期间的检查。

提交PR验证Jenkins status

修改readme文件,然后commit到develop分支,然后创建PR到master分支。

这时github 会通过github app来通知Jenkins webhook,触发PR pipeline

从下面的示例中可以看到有一个状态检查已经成功,单还有一个状态还没有完成。 

我们还可以在github -repo上设置分支保护rule: 在合并之前启用状态检查

总结

通过安装github app,你在通过github创建一个拉取请求的时候,会通过Jenkins webhook触发Jenkins PR 流水线,Jenkins 会将流水线的状态上报给github,这样可以确保该PR请求在从 Jenkins 构建作业获取所需的状态检查通知之前不会合并,通过与保护分支规则结合,你可以确保分支被合并之前必须通过所有的状态检查,从而有效地保护分支。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云攀登者-望正茂

你的鼓励是我前进的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值