我正在尝试使用Phing进行自动化:
我认为在我的项目中添加一个构建文件夹并将所有构建配置文件和db deltas放在该文件夹中是有意义的。并将所有这些提交到SVN存储库中。所以每个开发人员在从svn签出时都会获得更新的构建文件。并且能够运行构建以使用新的更改来更新他的数据库。
生产服务器上的: 我打算在那里添加另一个构建文件以获取svn中的最新Tagged版本并执行CSS& JS压缩。
我计划使用PHPUnderControl实现持续集成,因此我可以跟踪每个构建的结果,并在构建失败时收到通知。
所以,你觉得这一切都有意义吗,或者你还有其他更好的建议吗?
答案 0 :(得分:10)
你说的是有道理的:它与我经常使用的(有时使用ant,有时使用phing,有时使用一些shell脚本)非常接近。
在build
目录中,我会这样:
build/
testing/
development/
staging/
production/
common/
每个子目录中有一个build.xml
文件 - 包括位于build.xml
目录中的另一个common
文件,其目的是放置尽可能多的“常用”代码可以在“common”build.xml
文件中使用,并且包含每个环境特定的文件,其中包含尽可能少的xml代码。
这可以通过phing 的最后一个版本中存在的import
任务来完成(不确定它是否在稳定版本中 - 我正在使用SVN检查phing,有这个,对于我目前正在开展的项目)。
但有一件事:你说你想从生产服务器部署到生产;我宁愿相反:
想法是:
哦,作为旁注:你必须逐步写出“如何部署到生产”的某种文档!
这在您度假的那天非常有用,而且由于紧急的错误修复,其他人必须部署到生产中; - )