2012-01-28 69 views
2

我开始一个新项目,并希望为我的开发,持续集成和生产服务器提供一步构建过程。使用PEAR,Phing获得鲁棒部署解决方案?

我希望进程被包含在我的源代码控制(git/github)中,并在我的三台服务器上运行稳定,这些服务器非常相似,但是对于项目根目录有不同的路径。

我曾经计划使用Phing,PHPDocumentor,PHP_CodeSniffer,PHPUnit等通过Pyrus安装到可与项目一起部署的本地PEAR/PEAR2安装中,这样我就可以在构建时对我的依赖充满信心。

但是,我没有任何东西,但得到这个设置的问题。

这是我第一次尝试建立这样一个构建系统,* nix安装不是我的强项(尽管我最终总是最终得到一个可靠的系统),所以这里的薄弱环节也许我。但是,我所遇到的很多问题似乎都来自PEAR。

例如,无论我通过pyrus安装多么谨慎,所有事情最终都会遇到路径问题。纵观一些PEAR软件包,所有路径都使用我在安装(./pear等)期间使用的相对路径进行硬编码(可能在运行时设置)。这意味着我只能成功运行pyrus安装过程中的文件夹,即使运行脚本放在./pear/bin中,并且我在安装过程中设置了bin文件夹。有时路径内部冲突到单个封装,所以想从这里运行,但要管理从那边的配置...

phpDocumentor的不处理PHP5.3(并不会出马我可能是因为它有问题,也许是因为我错误安装了它?),所以我用PHPDoctor取代了它,最初看起来很不错。

另一个例子,安装后,Phing会运行,但只是静静地死去。挖掘并跟踪它之后,我发现/ io/PhingFile的第70行上的一个模糊函数对于所需的arg而言为空,该arg会引发一个ConfigurationException,从而导致它无提示地死去。

我相信我可以使所有这些工作正常,但我并不确定它将永远是一个可部署的健壮系统,而且我真的不想调试,调整,然后维护一大堆自修改的PEAR软件包必须在每次升级时都需要重新进行测试。

所以,最后的问题= O)

有谁在使用这些应用程序一个很好的稳固生成系统?有没有一些诀窍呢?

还是大家都有一个很好的健壮的构建系统,它只是我的天真与* nix安装和系统配置,使得这一切看起来像一个双大小的帮助clusterphuckery?

有没有人有过让这样的系统设置为跨多台服务器工作的指针,或者我只是在开玩笑吗?也许我应该在项目根目录之外的系统上单独安装,然后继续开发?

+1

我没有看到回答所有问题的可能性,但我已经使用类似的一套软件进行了设置。大约几个月前使用PEAR安装程序没有问题吗? – zerkms 2012-01-28 22:42:18

+0

@zerkms - 必须是我。我想我需要深入一点,看看它是如何发展的= o) – Eli 2012-01-29 09:10:59

回答

1

@work,我们在我们的软件中使用许多PEAR软件包,通过Pyrus将它们安装到本地目录中,并广泛使用Phing作为构建工具在不同的Linux系统上运行测试和部署软件,一些开发人员甚至可以运行它们他们的Windows盒子。

它工作可靠,我们没有遇到您所描述的问题。