我正在尝试加快我的构建速度一些,并且正在寻找一些关于如何这样做的想法。我目前使用 Hudson
作为 PHP
项目的持续集成服务器。
我使用 Ant
build.xml 文件进行构建,使用的文件类似于 Sebastian Bergmann 的 php-hudson-template
.不过目前(由于 Hudson 崩溃的一些奇怪问题),我只运行 phpDocumentor
、phpcpd
和 phpUnit
。 phpUnit
也会生成 Clover
代码覆盖率报告。
以下是一些可能的瓶颈:
phpDocumentor
:需要 180 秒。我的项目中包含一些大型库,例如awsninja
、DirectedEdge
、oauthsimple
和phpMailer
。我不确定我是否真的需要为这些开发文档。我也不确定如何使用我的 build.xml 文件忽略整个子目录。phpUnit
:需要 120 秒。这是构建中唯一不作为parallelTask
运行的部分。编写的测试越多,这个时间就越长。真的不知道该怎么办,除了可能运行多个 Hudson build slaves 并为每个 slave 分配单独的测试套件。但我也不知道该怎么做。phpcpd
:耗时 97 秒。我确信我可以通过忽略那些包含的库来消除一些解析和转换时间。不确定如何在我的 build.xml 文件中执行此操作。- 我的服务器:现在我使用的是一台 Linode 服务器。整个过程似乎很累。
我会将您能想到的任何其他可能的瓶颈添加到列表中。
有哪些解决方案可以缩短我的构建时间?
最佳答案
我根本不是 PHP 专家,但如果需要,您应该能够将 PHPUnit 测试拆分到多个 Hudson 从服务器上。我只是将您的测试套件拆分,并将每个子集作为一个单独的并行 Hudson 作业运行。如果您有一台具有多个 CPU/内核的机器,您可以在其上运行多个从站。
您没有提到的一件显而易见的事情 - 只升级您的硬件,或者看看 Hudson 主机上还有什么正在运行并可能占用资源怎么样?
关于php - 在 Hudson CI 上加速 PHP 持续集成构建服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3696629/