我一直在努力思考如何使用GitLab CI实现持续交付?
我为CD阅读的每个解决方案都依赖于多步骤管道(例如Jenkins),或者是侦听webhook并提供自己的部署界面的自定义应用程序(例如GitHub的HuBot + Heaven + Janky)。
如果我们只关心在Master分支上执行CD,并且我们的测试套件/部署步骤非常快,则可以将其作为由GitLab CI运行的Shell脚本的一部分。套房不快吗?还是您的部署可能需要几分钟来下载软件包等?然后,您的CI Runner忙于工作。
我能想到的最好的解决方案是:
有什么想法吗?有没有人用GitLab CI实现CD?
最佳答案
我会从gitlab CI开发一个Webhooks的侦听器,并且只处理跟踪分支的成功构建,然后需要将其 checkout 并交付。特别是,我认为不需要处理来自gitlab和corrdination的webhooks,来自gitlab CI的信息似乎足够了(它包含生成状态,引用分支和提交ID)。
根据您的存储库布局,然后可以通过以下方式下载归档文件:
或 check out 相关的提交并调用CD脚本。
如果要集成CD脚本的反馈(部署是否可行),则可以从运行程序中调用所有这些。请记住,如果设置时间太长,则可以有多个运行者。