若要通过远程代码仓库创建基于 Jenkinsfile 的流水线,可以在远程仓库中配置 webhook,以便在远程仓库变更时,自动触发流水线。
本文档演示如何在 GitHub 仓库中用 webhook 触发流水线。
前提条件
KubeSphere 企业版平台需要安装并启用 DevOps 扩展组件。
已创建一个企业空间、一个 DevOps 项目和一个用户 (例如 project-regular),并已邀请该用户至 DevOps 项目且授予 operator 角色。请参阅角色和成员管理。
已通过远程代码仓库创建一个基于 Jenkinsfile 的流水线。有关更多信息,请参阅使用 Jenkinsfile 创建流水线。
配置 Webhook
获取 webhook URL
以 project-regular 用户登录 KubeSphere 企业版 Web 控制台。
点击企业空间管理并进入您的 DevOps 项目。
在流水线页面,点击一个流水线(例如 jenkins-in-scm)以查看其详情页面。
点击更多操作,在下拉菜单中选择编辑设置。
在弹出的会话框中,滚动至 Webhook 以获得 Webhook push URL。
在 GitHub 仓库中设置 webhook
登录您的 GitHub,并进入 devops-maven-sample 仓库。
点击 Settings > Webhooks,然后点击 Add webhook。
在 Payload URL 中输入流水线中的 Webhook push URL,然后点击 Add webhook。 本教程选择默认的 Just the push event,请根据实际需要进行配置。有关更多信息,请参阅 GitHub 文档。
配置好的 webhook 会展示在 Webhooks 页面。
使用 Webhook 触发流水线
提交拉取请求到仓库
在 devops-maven-sample 仓库的 Code 页面,点击 master 然后选择 v4.1.0-sonarqube 分支。
转到 /deploy/dev-ol 然后点击文件 devops-sample.yaml。
点击编辑文件。 例如,将 spec.replicas 的值改变为 3。
点击 Commit changes。
检查 webhook 交付
在 devops-maven-sample 仓库的 Settings > Webhooks 页面,点击创建的 webhook。
点击 Recent Deliveries,然后点击一个具体交付记录查看详情。
检查流水线状态
以 project-regular 用户登录 KubeSphere 企业版 Web 控制台。
点击企业空间管理并进入您的 DevOps 项目。
在流水线页面,点击一个流水线(例如 jenkins-in-scm)以查看其详情页面。
在运行记录页签,检查提交到远程仓库 v4.1.0-sonarqube 分支的拉取请求是否触发了新的运行。