18.12. 教程: 使用 Source-to-Image (S2I) Webhook 进行自动部署


使用 webhook 修改源代码时,会自动触发构建和部署源代码。有关此过程的更多信息,请参阅 触发构建

流程

  1. 要获取 GitHub webhook 触发器 secret,请在终端中运行以下命令:

    $ oc get bc/ostoy-microservice -o=jsonpath='{.spec.triggers..github.secret}'

    输出示例

    `o_3x9M1qoI2Wj_cz1WiK`

    重要

    此过程的后续步骤中需要使用此机密。

  2. 要从 OSToy 的 buildconfig 获取 GitHub webhook 触发器 URL,请运行以下命令:

    $ oc describe bc/ostoy-microservice

    输出示例

    [...]
    Webhook GitHub:
    	URL:	https://api.demo1234.openshift.com:443/apis/build.openshift.io/v1/namespaces/ostoy-s2i/buildconfigs/ostoy/webhooks/<secret>/github
    [...]

  3. 在 GitHub Webhook URL 中,将 & lt;secret& gt; 文本替换为您检索到的 secret。您的 URL 将类似以下示例的输出:

    输出示例

    https://api.demo1234.openshift.com:443/apis/build.openshift.io/v1/namespaces/ostoy-s2i/buildconfigs/ostoy-microservice/webhooks/o_3x9M1qoI2Wj_czR1WiK/github

  4. 在 GitHub 仓库中设置 Webhook URL。

    1. 在存储库中,点 Settings > Webhooks > Add webhook

      添加 Webhook
    2. 将包含 Secret 的 GitHub Webhook URL 粘贴到 "Payload URL" 字段中。
    3. 将 "Content type" 更改为 application/json
    4. Add webhook 按钮。

      完成 Add Webhook

      您应该看到一条来自 GitHub 的消息,说明您的 Webhook 已配置成功。现在,每当您将更改推送到 GitHub 存储库时,新构建都会自动启动,成功构建后都会启动新部署。

  5. 现在,在源代码中进行更改。任何更改都会自动触发构建和部署。在本例中,表示 OSToy 应用程序状态的颜色会随机选择。要测试配置,请将框更改为仅显示 grayscale。

    1. 进入存储库 https://github.com/<username>/ostoy/blob/master/microservice/app.js 中的源代码。
    2. 编辑该文件。
    3. 注释掉第 8 行(包含 randomColor = getRandomColor ();)。
    4. 取消注释第 9 行(包含 randomColor = getRandomGrayScaleColor ();)。

      7   app.get('/', function(request, response) {
      8   //let randomColor = getRandomColor(); // <-- comment this
      9   let randomColor = getRandomGrayScaleColor(); // <-- uncomment this
      10
      11  response.writeHead(200, {'Content-Type': 'application/json'});
    5. 输入更新的消息,如"changed box to grayscale colors"。
    6. 单击底部的 Commit,将更改提交到 main 分支。
  6. 在集群的 Web UI 中,点 Builds > Builds 来确定构建的状态。构建完成后,部署将开始。您还可以通过在终端中运行 oc status 来检查状态。

    构建运行
  7. 部署完成后,返回到浏览器中的 OSToy 应用程序。访问左侧的 Networking 菜单项。box 颜色现在限制为灰色。

    灰色
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.