我在GitLab中有一个CI管道,用于构建我的应用程序并将其放在一个文件夹中。
发布它的正确方法是什么,并在部署它的服务器上进行一些更改?
我在考虑"拉"场景:将构建的应用程序推送到专用仓库,然后我在目标机器上克隆并运行必要的脚本。
我想我可以推动"来自CI服务器的应用程序通过SSH,但不确定它是否正确。
如何以正确而不复杂的方式制作它?
答案 0 :(得分:1)
将构建的应用程序推送到专用的repo,然后我在目标计算机上克隆并运行必要的脚本。
这可以通过服务器上裸存储库上的post-receive
hook设置来完成。钩子脚本将是:
git --git-dir=/path/to/project_root/.git --work-tree=/var/www/http/ checkout -f
您可以使用其他命令完成该脚本,以进一步修改部署。
答案 1 :(得分:0)
您的CI应该测试您构建应用的方式是否良好。 在构建并放入文件夹之后,添加对此应用程序的测试(功能,通过部署它,如果相关,或只是验证它的完整性)。 然后,您可以选择合并(然后,正如您所说,在目标计算机上克隆repo);事实上,这可以通过另一个CI管道来完成。 对我而言,推送应用程序不是管道的一部分,也不是代码的一部分,所以它不应该集成在它上面。
答案 2 :(得分:0)
Gitlab CI为您提供了部署应用程序的自由度。您可以选择使用泊坞窗,布料,木偶,厨师,ansible或只是简单的bash和ssh。
我自己使用fabric + docker。