使用 Webhook 触发流水线

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

本教程演示如何用 webhook 触发流水线。

准备工作

配置 Webhook

获取 webhook URL

  1. 使用 project-regular 帐户登录 Kubesphere Web 控制台。转到 DevOps 工程,点击流水线(例如,jenkins-in-scm)以查看详情页面。

  2. 点击更多,在下拉菜单中选择编辑配置

    edit-config

  3. 在出现的会话框中,滑动至 Webhook 推送 以获得 webhook push URL。

    webhook-push

在 GitHub 仓库中设置 webhook

  1. 登录您的 GitHub,并转到 devops-java-sample 仓库。

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

    click-add-webhook

  3. Payload URL 中输入流水线中的 webhook push URL,然后点击 Add webhook。出于演示需要,本教程选择 Just the push event。您可以根据需要进行配置。有关更多信息,请参见 GitHub 文档

    add-webhook

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

    webhook-ready

使用 Webhook 触发流水线

提交拉取请求到仓库

  1. 在您仓库的 Code 页面,点击 master 然后选择 sonarqube

    click-sonar

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

    click-file

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

    edit-file

  4. 在页面底部点击 Commit changes

检查 webhook 交付

  1. 在您仓库的 Webhooks 页面,点击 webhook。

    webhook-ready

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

    delivery-detail

检查流水线

  1. 使用 project-regular 帐户登录 Kubesphere Web 控制台。转到 DevOps 工程,点击流水线。

  2. 活动选项卡,检查提交到远程仓库 sonarqube 分支的拉取请求是否触发了新的运行。

    pipeline-triggered

  3. 转到 kubesphere-sample-dev 项目的 Pods 页面,检查 3 个 Pods 的状态。如果 3 个 Pods 为运行状态,表示流水线运行正常。

    pods


感谢您的反馈。如果您有关于如何使用 KubeSphere 的具体问题,请在 Slack 上提问。如果您想报告问题或提出改进建议,请在 GitHub 存储库中打开问题。