主にCIサーバーでのビルドを高速化するために、並列タスクを使用するようにbuild.xmlを変更しています。
私が抱えている小さな問題の 1 つは、出力 (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
タスクが完了するまでタスクの出力をバッファリングしてから標準出力に書き込む方法があることを願っています。
タスクに関する出力の順序については気にしないことに注意してください。あるタスクの出力を別のタスクの出力とインターリーブするだけです。
これを行う方法について何か提案はありますか?この問題を引き起こさずにビルドの速度を上げるより良い方法はありますか?