Jenkins 多分支流水线: 怎样创建用于 Jenkins 状态查抄的 GitHub 应用
利用 Jenkins 多分支流水线时,您可以将状态查抄与 GitHub 拉取请求集成。以下是状态查抄的示例
https://i-blog.csdnimg.cn/direct/f367a005d2284e999f7ec7a3624acdd5.png
要实现这些类型的状态查抄,您必要创建一个与 Jenkins 主实例集成的 GitHub 应用。
在本博客中,我们将先容怎样创建一个 GitHub 应用,以便在流水线中启用状态查抄。
创建 GitHub 应用
要创建 GitHub 应用,请选择您的 GitHub 个人资料,然后转到“设置”,如下所示。
https://i-blog.csdnimg.cn/direct/4440e2b264804c27896ed2e076701e58.png
向下滚动并选择开发者设置https://i-blog.csdnimg.cn/direct/71fa3c1c3e214b1c91271097041834de.png
https://i-blog.csdnimg.cn/direct/dc73310c99df48fdb96102d18b83c707.png
然后点击 New GitHub App 按钮创建一个新的 GitHub 应用
https://i-blog.csdnimg.cn/direct/29a20b9732164bd4b0733bcd923c416f.png
您必要在配置中填写以下详细信息。
[*]GitHub 应用名称:此名称必须是唯一的。比方,jenkins-auth-app。请将其替换为所需的名称。
[*]主页 URL:输入您的 Jenkins URL。
[*]Webhook URL:包罗 webhook 路径的 Jenkins URL(http://3.107.8.66:8080/github-webhook/)
https://i-blog.csdnimg.cn/direct/80013c6a79e24ff1989e73d3b854bba8.png
https://i-blog.csdnimg.cn/direct/bb14bdc6d25a4ba4a36bbb2850204a1a.png
https://i-blog.csdnimg.cn/direct/e5313b4e2cb74d0888bb4cd465326abc.png
https://i-blog.csdnimg.cn/direct/6eaf65dc9cfb48aa80b3b779d83540f1.png
在“仓库权限”下,从下拉菜单中选择以下权限。
[*]管理:只读
[*]查抄:读写
[*]提交状态:读写
[*]内容:只读(用于在 git fetch 期间读取 Jenkinsfile 和仓库内容)。
[*]元数据:只读
[*]拉取请求:只读
https://i-blog.csdnimg.cn/direct/c3579d4904b340a3a4f5b63457d5f7c5.png
在“订阅事件”下,选择以下事件:
[*]查抄运行
[*]查抄套件
[*]拉取请求
[*]推送
[*]代码库
https://i-blog.csdnimg.cn/direct/ef2c391865e343dca3908a3a20465ac0.png
创建应用程序后,您将看到生成私钥的关照,如下所示。
https://i-blog.csdnimg.cn/direct/7b3be72c1cd94e859e90a0e8183fbaca.png
单击生成私钥选项,然后单击生成私钥按钮,如下所示。
https://i-blog.csdnimg.cn/direct/34a1c667266d4146a0a064ffd36a3400.png
它会下载一个私钥。
现在,您必要利用以下命令将密钥转换为 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 应用
现在,在应用配置页面上,您将看到一个名为“安装应用”的选项,如下所示。点击该选项即可为全部仓库启用此应用。
https://i-blog.csdnimg.cn/direct/5de376397ba84c52927c94c9d7d9d5cb.png
您可以选择所需的全部或单个存储库,然后单击“安装”。
https://i-blog.csdnimg.cn/direct/775ff563e8cd4edab7ca29feb3132d9c.png
将私钥添加到 Jenkins 凭证
现在,我们必要将转换后的 PEM 密钥添加到 Jenkins 凭证中。
前往 Jenkins 主页 --> 管理 Jenkins --> 凭证。
https://i-blog.csdnimg.cn/direct/93298a708ffe433092b628b484269578.png
在“根据”下,选择全局选项。
然后,选择“添加根据”选项以添加新根据。
现在,您必要选择“类型”为“GitHub 应用”。
https://i-blog.csdnimg.cn/direct/d3e6118c09464ee5a3d196529c8511e6.png
我们还必要 Github 应用 ID。您可以从 Github 应用配置中获取它,如下所示。
https://i-blog.csdnimg.cn/direct/ebca264a6fb94ba99c42a8444c973532.png
在key字段中,添加我们之前转换好的converted-github-app.pem私有文件内容,然后点击Create按钮,如下图所示。
https://i-blog.csdnimg.cn/direct/53898502144f45d1aa86e380e16d7fb0.png
差不多就是如许了。
现在,您可以在多分支管道中利用此凭证来启用 PR 期间的查抄。
提交PR验证Jenkins status
修改readme文件,然后commit到develop分支,然后创建PR到master分支。
https://i-blog.csdnimg.cn/direct/03da9a0a67b24eb1a537d809ab56621d.png
这时github 会通过github app来关照Jenkins webhook,触发PR pipeline
https://i-blog.csdnimg.cn/direct/aabc1c50b9b440b3bf8343cba8af0d8f.png
从下面的示例中可以看到有一个状态查抄已经乐成,单还有一个状态还没有完成。
https://i-blog.csdnimg.cn/direct/14091d767ebf4417af9fec82bb187d3c.png
我们还可以在github -repo上设置分支掩护rule: 在归并之前启用状态查抄
https://i-blog.csdnimg.cn/direct/6d1c520f0abb4b76869263bc650843b7.png
https://i-blog.csdnimg.cn/direct/c21ea41192114df78965642dc7b000c1.png
总结
通过安装github app,你在通过github创建一个拉取请求的时候,会通过Jenkins webhook触发Jenkins PR 流水线,Jenkins 会将流水线的状态上报给github,如许可以确保该PR请求在从 Jenkins 构建作业获取所需的状态查抄关照之前不会归并,通过与掩护分支规则结合,你可以确保分支被归并之前必须通过全部的状态查抄,从而有用地掩护分支。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]