若要通过远程代码仓库创建基于 Jenkinsfile 的流水线,可以在远程仓库中配置 webhook,以便在远程仓库变更时,自动触发流水线。

本文档演示如何在 GitHub 仓库中用 webhook 触发流水线。

前提条件

  • KubeSphere 企业版平台需要安装并启用 DevOps 扩展组件。

  • 已创建一个企业空间、一个 DevOps 项目和一个用户 (例如 project-regular),并已邀请该用户至 DevOps 项目且授予 operator 角色。请参阅角色和成员管理

  • 已通过远程代码仓库创建一个基于 Jenkinsfile 的流水线。有关更多信息,请参阅使用 Jenkinsfile 创建流水线

配置 Webhook

获取 webhook URL

  1. project-regular 用户登录 KubeSphere 企业版 Web 控制台。

  2. 点击企业空间管理并进入您的 DevOps 项目。

  3. 流水线页面,点击一个流水线(例如 jenkins-in-scm)以查看其详情页面。

  4. 点击更多操作,在下拉菜单中选择编辑设置

  5. 在弹出的会话框中,滚动至 Webhook 以获得 Webhook push URL。

在 GitHub 仓库中设置 webhook

  1. 登录您的 GitHub,并进入 devops-maven-sample 仓库。

  2. 点击 Settings > Webhooks,然后点击 Add webhook

  3. Payload URL 中输入流水线中的 Webhook push URL,然后点击 Add webhook。 本教程选择默认的 Just the push event,请根据实际需要进行配置。有关更多信息,请参阅 GitHub 文档

  4. 配置好的 webhook 会展示在 Webhooks 页面。

使用 Webhook 触发流水线

提交拉取请求到仓库

  1. 在 devops-maven-sample 仓库的 Code 页面,点击 master 然后选择 v4.1.0-sonarqube 分支。

  2. 转到 /deploy/dev-ol 然后点击文件 devops-sample.yaml

  3. 点击pen-light编辑文件。 例如,将 spec.replicas 的值改变为 3

  4. 点击 Commit changes

检查 webhook 交付

  1. 在 devops-maven-sample 仓库的 Settings > Webhooks 页面,点击创建的 webhook。

  2. 点击 Recent Deliveries,然后点击一个具体交付记录查看详情。

检查流水线状态

  1. project-regular 用户登录 KubeSphere 企业版 Web 控制台。

  2. 点击企业空间管理并进入您的 DevOps 项目。

  3. 流水线页面,点击一个流水线(例如 jenkins-in-scm)以查看其详情页面。

  4. 运行记录页签,检查提交到远程仓库 v4.1.0-sonarqube 分支的拉取请求是否触发了新的运行。