在Hudson CI上加速PHP持续集成构建服务器

Jos*_*ith 5 php continuous-integration hudson ci-server

我正试图加快我的构建速度,并且正在寻找关于如何这样做的一些想法.我目前Hudson用作项目的持续集成服务器PHP.

我使用Antbuild.xml文件来构建,使用类似于Sebastian Bergmann的文件php-hudson-template.目前,尽管(由于与哈德森否则崩溃一些奇怪的问题),我只是跑phpDocumentor,phpcpdphpUnit.phpUnit确实Clover也会生成代码覆盖率报告.

以下是一些可能的瓶颈:

  1. phpDocumentor:需要180秒.有在我的项目的一些大的包括库,如awsninja,DirectedEdge,oauthsimple,和phpMailer.我不确定我是否真的需要为这些开发文档.我也不确定如何使用我的build.xml文件忽略整个子目录.
  2. phpUnit:需要120秒.这是构建中唯一没有运行的部分parallelTask.写入的测试越多,这个时间就越长.真的不知道如何处理这个问题,除了可能运行多个Hudson构建从属服务器并向每个服务器分别提供单独的测试套件.但我也不知道如何去做.
  3. phpcpd:需要97秒.我确信通过忽略那些包含的库,我可以消除一些解析和转换时间.不知道如何在我的build.xml文件中执行此操作.
  4. 我的服务器:现在我正在使用单个Linode服务器.它似乎在整个过程中变得非常沉重.

您可以想到的任何其他可能的瓶颈我将添加到列表中.

有哪些解决方案可以减少构建时间?

gar*_*les 2

我根本不是 PHP 专家,但如果需要,您应该能够将 PHPUnit 测试拆分到多个 Hudson 从属服务器上。我只是将您的测试套件分开,并将每个子集作为单独的并行 Hudson 作业运行。如果您有一台具有多个 CPU/核心的机器,您可以在其上运行多个从站。

您没有提到的一件明显的事情 - 只升级您的硬件,或者看看 Hudson 主机上正在运行并可能占用资源的其他内容怎么样?