Git通过推送到远程服务器传递变量

时间:2015-11-02 13:32:09

标签: git deployment version-control web-deployment git-post-receive

我将服务器设置为“生产”远程服务器,该服务器运行后接收shell脚本以部署具有主分支的“硬”部署的站点。或者将dev分支“软”部署到不同的目录。

return Mage::helper('adminhtml')->__("Edit User '%s'", $this->escapeHtml(Mage::registry('api_user')->getUsername()));

有时我只想在主分支推送上进行“软”部署,如果它像修补程序一样微小,因为硬盘可能需要一段时间来复制非跟踪文件,如上传等,并且似乎浪费服务器资源说如果为不同的应用程序做多个修补程序。

我是否可以将本地服务器(如git配置文件的远程部分)中的变量传递给远程服务器,告诉它为主分支进行软部署还是硬部署?

我在想是否远程服务器知道我可以使用本地远程名称,或者我是否可以在远程定义中的url中添加变量,如:

soft (fast, low resources) - checks out the work-tree to the /dev directory (fast)

hard (slower, more resources) - check out the work-tree to a new '/temp' directory, 
       copies the non-tracked files from the '/live' directory to '/temp' (can be large)
       if successful, renames the '/live' directory to '/live-old'
       renames the '/temp' to '/live' and deletes the older '/live-old' directory

我确信这种方式可能不起作用,但希望你能理解我想要做的事情。

另外,请说如果这是非常糟糕的做法,我应该使用其他方法。

感谢。

1 个答案:

答案 0 :(得分:0)

不,您无法传递其他变量。

但是你可以评估被推送到的分支名称。

因此,您可以设置一个post-receive hook来检查被推送到的分支:

  • 推送到production-hard→执行hard部署
  • 推送到production-soft→执行soft部署