我已经设置了git push来部署,如图所示here并且它工作得很好但是当需要添加或删除环境变量时,它当前涉及额外的步骤,如此
git push production master - 更新服务器上的源代码,运行部署后任务,重新启动应用服务器
将production.env复制到生产 - 覆盖production.env,重新启动应用服务器
我想知道我是否可以“将控制权”传递回启动推送的本地计算机,从本地计算机复制env文件并“返回控制”到生产服务器以运行部署后任务并最终重新启动服务器。所有git帖子都收到钩子?
或者简而言之,推动部署能够在一个步骤中复制env文件的解决方案。有人知道是否有一个在本地执行的预推钩?
同样好奇PaaS提供商如何通过网络界面管理env vars,这些环境存储在数据库中并在某些时候导出?
当前解决方案
deploy.sh(此文件位于本地主机上并在本地执行)
post_deploy.sh(此文件位于服务器上,并从部署脚本远程执行,如上所述在本地执行)
理想解决方案
我希望能够跑步
git push production master
并执行以下任务,由git post-receive hook或适当的替代方法触发。
答案 0 :(得分:1)
通过尝试解释自己的问题,您可以学到很多东西,结果是在运行推送之前在客户端运行了一个预推挂钩。我在那里添加了预部署任务,它按预期工作。总而言之,最终推送部署设置如下所示
git push production master
这将执行以下操作: