【问题标题】:Difference Between Webhooks and CI/CDsWebhook 和 CI/CD 之间的区别
【发布时间】:2020-03-27 00:13:34
【问题描述】:

我知道 Webhook 用于从托管的 git 存储库触发服务器端操作,并且 CI/CD 代表托管 git 存储库的持续集成和持续部署/交付,但关键区别是什么,特别是当它们都是由 GitLab 或 GitHub 等单一 git 托管服务提供商提供的? (对于 GitLab,这些指的是 Webhooks 和 CI/CD,而对于 GitHub,这些指的是 Webhooks 和 GitHub Actions。)

文档模糊地详细说明了 Webhook 如何以及如何用于触发 CI/CD,但与此同时,即使在 git 存储库中没有添加显式 Webhook 时,供应商提供的 CI/CD 也可以正常工作。这是否意味着每个使用供应商提供的 CI/CD 的托管 git 存储库都有一个 Webhook?

我从上面的理解是,显式 Webhook(与底层的相反)可用于触发 3rd 方 CI/CD,而 git 托管服务提供商的 CI/CD 由同一方托管和运行。这是正确的吗?

非常感谢您发布答案。

【问题讨论】:

    标签: git continuous-integration webhooks continuous-deployment github-actions


    【解决方案1】:

    Webhook 和 CI/CD 是两种不同的技术,您经常会发现它们一起使用。

    Webhook 设置为将数据实时发布到消费应用程序。 Webhook 通常发布到设置为接受来自它的信息的 URL 端点。在 CI 的情况下,这可能是一个 webhook,它在提交发生时发布有关提交的信息。请参阅此处了解更多信息 - https://codeburst.io/what-are-webhooks-b04ec2bf9ca2

    CI/CD 的存在是为了自动化软件的部署和构建。一个常见的用法是为它可能需要的不同环境构建软件,例如。开发,登台,生产。一个流行的 CI 工具是 Team City - https://www.jetbrains.com/teamcity/

    重申一下,webhook 并没有试图解决与 CI/CD 相同的问题,但它们确实扩展了它可以做的功能。

    【讨论】:

    • 感谢您的澄清。 GitHub 或 GitLab 等提供的 CI/CD 是否有 webhook? (即,每当将 git 事件发布到远程时,如果为该远程配置了供应商提供的 CI/CD,则会触发一个 webhook(在用户界面上不可见),然后触发相应的 CI/CD?)像这样:git event => [webhook] => CI/CD)
    • 这很可能是幕后发生的事情,但是我对 GitHub 或 GitLab 提供的 CI 软件不太熟悉,所以我必须对此进行一些研究。这些提供商确实为您提供了添加自己的 webhook 的选项。把它想象成一个“反向 API”,你在他们的末端设置了一个 webhook,每当调用触发器(例如 git push)时,他们就会向你发布相关数据。这方面的一个例子是当构建完成或失败时发布到你的 Slack 频道,而不是你查询服务,数据被实时推送给你。
    猜你喜欢
    • 1970-01-01
    • 2019-02-12
    • 2020-11-30
    • 2011-08-07
    • 2020-01-19
    • 2018-03-13
    • 1970-01-01
    • 2011-04-17
    • 2014-06-04
    相关资源
    最近更新 更多