Uda*_*ant 6 php git deployment automation
最近,我们开始探索GIT的目标是让我们的开发人员能够在任何地方工作,其次是自动化整个部署过程.
我们有一个中央测试服务器,我们托管所有应用程序/站点以进行测试和/或演示目的,一旦开发和测试完成,我们将应用程序移动到各自的实时服务器.
无论我使用GIT设置了什么,如下所示
1.在测试服务器上创建一个裸仓库
2.为每个涉及的开发人员获取本地克隆,开发人员将推送到远程(测试服务器)dev分支
3.有人将合并所有更改来自dev分支到master分支并将其推送到远程
4.测试服务器(裸仓库)有一个post-receive钩子,它将master分支检出到public_html文件夹(使用GIT_WORKING_DIR和checkout -f).
截至目前,一切运行良好,我能够在托管页面上的主分支上看到合并(当然,在测试服务器上).现在我的问题是......
1.我这样做了吗?
2.我想我已经设置了post-receive hook,也可以在push to dev分支上执行.怎么避免这个?
3.我如何将这些内容发送到我的实时服务器?由于我有一些具有大量代码库的项目,检查测试服务器上的所有内容然后将其发送到现场看起来不够好.
我听说过CI服务器,但据我所知,他们在本地检查并使用'rsync' 上传所有内容(不知道它是同步更改还是上传所有内容)或此类工具.如果出现任何问题,我只是想避免一切都出现并保持打开回滚的选项.我很擅长在实时服务器上设置git.
branch=$(git rev-parse --symbolic --abbrev-ref $refname)
另请参阅" 编写git post-receive挂钩以处理特定分支 "关于部署,如" 部署rsync(或svn,git,cvs)并忽略部署期间的不一致状态? ",在一个单独的目录中部署(甚至所有内容)并将prod实例符号链接到该目录是一种很好的避免方法部署期间的不一致,以及在出现问题时便于回滚(符号链接回到上一个实时目录).
| 归档时间: |
|
| 查看次数: |
2864 次 |
| 最近记录: |