我一直在努力探讨如何使用GitLab CI实现持续交付?
我为CD阅读的每个解决方案都依赖于多步骤管道(例如Jenkins),或者是一个侦听webhooks并提供自己的部署界面的自定义应用程序(例如,GitHub' s HuBot + Heaven + Janky )。
如果我们只关心在Master分支上执行CD,并且我们的测试套件/部署步骤非常快,您可以简单地将其作为由GitLab CI运行的shell脚本的一部分包含....但是,什么如果你的测试套件不快?或者您的部署可能需要几分钟才能下载软件包等?然后你的CI Runner正在忙着做事。
我能想出的最佳解决方案是:
有什么想法?有没有人用GitLab CI实现CD?
答案 0 :(得分:3)
我会从gitlab CI开发一个webhooks的监听器,只处理跟踪分支的成功构建,然后需要签出和交付。特别是,我没有看到需要从gitlab和corrdination处理webhooks,来自gitlab CI的信息似乎已经足够(它包含构建状态,引用分支和提交ID)。
根据您的repositoy布局,您可以通过
下载存档gitlab.example.net/namespace/repository/archive.zip?ref=githash
或签出相关提交并调用您的CD脚本。
如果要整合CD脚本的反馈(部署是否有效),您可以从跑步者那里调用所有内容。请注意,如果设置时间过长,您可以拥有多个参与者。