Php Phing-大型部署

Php Phing-大型部署,php,phing,Php,Phing,我正在尝试使用phing来部署我正在进行的项目。 到目前为止,我只是在生产服务器上使用“git pull”,并手动执行其他需要的操作 通过网络,我看到很多人推荐以下流程: 在本地计算机上准备并归档所有内容 SCP/FTP将其传输到生产服务器并在那里解包 更新多个符号链接 我喜欢这个过程,因为它透明、安全,而且很容易回到以前的版本。 但我的项目代码(以及所有主题/图像等)大约需要300Mb,整个过程大约需要2小时才能完成,而之前我只花了不到一分钟的时间 为一个简单的修补程序等待2个小时似乎真的太多

我正在尝试使用phing来部署我正在进行的项目。 到目前为止,我只是在生产服务器上使用“git pull”,并手动执行其他需要的操作

通过网络,我看到很多人推荐以下流程:

  • 在本地计算机上准备并归档所有内容
  • SCP/FTP将其传输到生产服务器并在那里解包
  • 更新多个符号链接
  • 我喜欢这个过程,因为它透明、安全,而且很容易回到以前的版本。 但我的项目代码(以及所有主题/图像等)大约需要300Mb,整个过程大约需要2小时才能完成,而之前我只花了不到一分钟的时间

    为一个简单的修补程序等待2个小时似乎真的太多了。
    有没有办法克服这个问题?或者,您可以建议使用不同的部署方式。

    如果您有很多静态内容(主题)不会随时间而改变,请扩展marcelog的评论,然后,您可能希望将其从代码部署中分离出来,并对其进行1)版本控制,这样它就不会经常刷新2)将其放在不同的服务器/主机上,以区分静态和非静态


    如果查看提交历史记录,您还没有涉及到整个repo部分,为什么不将它们提取到不同的repo中,而不是每次都重新发布?

    我认为推荐的方法是持续集成+持续交付。你不能把你的项目分成几个模块吗?通过这种方式,您可以使CI服务器从不同的作业生成不同的构件,并且您可以根据需要自行部署这些构件(通过capistrano之类的工具自动部署,甚至通过CI服务器本身部署),而不必为整件事使用一个单片构建。您可以只部署代码库的一部分(前端、后端、中间件),或者只部署一个特定的主题,等等。我只是担心在这种模块化部署的情况下,很难保持系统的完整性。例如,如果我更改后端代码+主题,然后只部署后端代码,那么该站点将被破坏。没有人说后端和代码+主题部署脚本不能同时运行。一个好的构建部署工具的目标是以一致的可靠性自动化一切