1

我正在修改我们的 build.xml 以使用并行任务,主要是为了加快我们在 CI 服务器上的构建速度。

我遇到的一个小问题是阻止输出(stdout)变得混乱。

<target name="build">
    <antcall target="clean"/>
    <antcall target="prepare"/>
    <antcall target="externals"/>
    <antcall target="migrate"/>

    <parallel>
        <antcall target="phpunit"/>         
        <antcall target="jshint"/>
        <antcall target="phploc"/>
        <antcall target="phpcpd"/>
        <antcall target="pdepend"/>
        <antcall target="phpcs"/>
        <antcall target="phpmd"/>
        <antcall target="php-lint"/>
    </parallel>
</target>

输出的片段(来自 php-lint 和 phpunit 任务):

[apply] No syntax errors detected in /home/bhafichuk/workspace/icarus/source/library/Icarus/Model/DbTable/User.php
 [exec] ............................................................
 [exec] 
 [exec] Time: 02:11, Memory: 24.75Mb
 [exec] 
        OK (123 tests, 433 assertions)

[apply] No syntax errors detected in /home/bhafichuk/workspace/icarus/source/library/Icarus/Model/DbTable/User/Contact.php

我希望有一种方法可以缓冲任务的输出,直到任务完成,然后写入标准输出。

请注意,我真的不关心输出相对于任务的顺序,只关心一个任务输出与另一个任务输出的交错。

有人对如何做到这一点有任何建议吗?是否有更好的方法来提高不会导致此问题的构建速度?

4

0 回答 0