如何通过SSH在CI构建成功上部署我的webapp?

时间:2017-01-03 18:07:24

标签: git go ssh deployment gitlab

我在GitLab中有一个CI管道,用于构建我的应用程序并将其放在一个文件夹中。

发布它的正确方法是什么,并在部署它的服务器上进行一些更改?

我在考虑"拉"场景:将构建的应用程序推送到专用仓库,然后我在目标机器上克隆并运行必要的脚本。

我想我可以推动"来自CI服务器的应用程序通过SSH,但不确定它是否正确。

如何以正确而不复杂的方式制作它?

3 个答案:

答案 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。