使用GitLab CI持续交付

我一直试图围绕如何使用GitLab CI实现持续交付?

我为CD读取的每个解决方案都依赖于多步骤流水线(如Jenkins),或者是一个自定义应用程序,它监听webhook并提供自己的部署接口(例如,GitHub的HuBot + Heaven + Janky)。

如果我们只关心在Master分支上执行CD,并且我们的测试套件/部署步骤非常快,那么您可以简单地将它包含为由GitLab CI运行的shell脚本的一部分....但是,如果您的测试套件不是很快? 或者您的部署可能需要几分钟才能下载软件包等? 然后你的CI亚军忙于处理东西。

我能想出的最佳解决方案是:

  • 创建一个Web应用程序,它接受来自GitLab和GitLab CI的Web Hook,并跟踪每个单独提交以及构建状态。
  • 启动自己的自定义运行程序,尝试执行传递到每个传递的WebHook收到一个中转站点。 例如,应用程序可以使用fabistrano来轻松部署/回滚。
  • 在GitLab中接受通过所有测试的合并请求以合并为主人。
  • 有什么想法吗? 有没有人用GitLab CI实现过CD?


    我会开发一个来自gitlab CI的webhooks的监听器,并且只处理跟踪分支的成功构建,然后需要结算并交付。 特别是,我没有看到需要从gitlab和corrdination处理webhooks,gitlab CI的信息似乎足够了(它包含构建状态,引用分支和提交id)。

    根据您的存储布局,您可以通过下载存档

    gitlab.example.net/namespace/repository/archive.zip?ref=githash

    或检出相关提交并调用您的CD脚本。

    如果您想整合CD脚本的反馈(无论部署是否有效),您可以调用跑步者的所有内容。 请记住,如果您的设置时间过长,您可以拥有多个参赛者。

    链接地址: http://www.djcxy.com/p/22363.html

    上一篇: Continuous Delivery with GitLab CI

    下一篇: Amazon S3 video upload issue for the iOS SDK v2