我一直试图围绕如何使用GitLab CI实现持续交付?
我为CD读取的每个解决方案都依赖于多步骤流水线(例如Jenkins),或者是一个自定义应用程序,它可以监听webhook并提供自己的部署界面(例如,GitHub的HuBot + Heaven + Janky).
如果我们只关心在Master分支上执行CD,并且我们的测试套件/部署步骤非常快,您可以简单地将其作为由GitLab CI运行的shell脚本的一部分包含....但是,如果您的测试怎么办?套房不快?或者您的部署可能需要几分钟才能下载软件包等?然后你的CI Runner正在忙着处理事情.
我能想出的最佳解决方案是:
创建一个Web应用程序,接受来自GitLab和GitLab CI的Web Hook,并跟踪每个单独的提交和构建状态.
启动自己的自定义运行程序,尝试为收到的每个传递的webhook执行分段站点的传递.应用程序可以使用例如fabistrano,以便于部署/回滚.
在GitLab中监听合并请求以合并到通过所有测试的GITLab中.
有什么想法吗?有没有人用GitLab CI实现CD?