在 GitHub SCM 中,我们提供了两种方式可以让用户配置以实现自动扫描,我们推荐用户同时配置两个设置以达到最佳的效果:触发 Jenkins 自动扫描应该以 Webhook 为主,以在 KubeSphere 设置定期扫描为辅。
Webhook 是一种高效的方式可以让我们发现远程仓库的变化,但是因为网络等问题,Webhook 消息可能不是总能被收到,因此推荐用户在 KubeSphere 创建 DevOps 工程的高级设置中,勾选 如果没有扫描触发,则定期扫描,并将时间间隔设置为可以容忍的最大时长 (推荐 1 小时到 1 天之间)。
第二步:设置 GitHub Webhook
1、Webhook 需要用户自行到 GitHub 的 Settings → Webhooks 自行进行配置,并且需要 GitHub 能够访问到您安装的 KubeSphere 控制台地址。进入 GitHub,访问需要配置 Webhook 的仓库,比如当前的示例仓库 devops-docs-sample,选择 Settings → Webhooks 进行设置。
注意,Payload 地址填写为关联的流水线 Webhook 推送 的默认地址,
3、点击 Add Webhook 完成 Webhook 的添加,可以看到 Webhook 已经创建成功。
1、在项目设置按钮下点击 Webhooks 进入 Webhook 设置页面
2、同上,输入 Pipeline 配置的地址,最后点击页面最下方完成创建
在传统的 SVN 当中不包含 Webhook 的概念,因此推荐在 KubeSphere 设置时间间隔较短的定期扫描来进行远程构建的触发,通常我们会将时间间隔设置为 15 分钟到 1 小时,团队可以根据自己的实际情况来设置定时扫描。