サーバーのテストとシャットダウンに並列タスクを使用しています。
コードは次のとおりです。
<target name="runandtest" description="run the server and test it">
<parallel timeout="1380000">
<sshexec host="XXX.XX.XX.XX" username="XXXXX" password="xxxxxxxxx" trust="true" command='cd test;nohup bin/server > log.txt'/>
<sequential>
<sleep seconds="1200"/>
<!-- run test-->
<scp file="XXXXXX:XXXXXX@XXX.XX.XX.XX:/home/XXXXX/test/log.txt" todir="/ant/" trust="true" />
<mail enableStartTLS="true" mailhost="smtp.gmail.com" mailport="587" user="XXXXXXX" password="XXXXXXX" subject="Run test" from="XXXXXXXX" tolist="XXXXXXX" files="log.txt" message="blabla"/>
<!-- FAIL BELOW -->
<sshexec host="XXX.XX.XX.XX" username="XXXX" password="XXXXX" trust="true" command="kill $(ps aux | grep '[s]erver' | awk '{print $2}')"/>
</sequential>
</parallel>
</target>
コメントを書いた場所でビルドが失敗します。
テストが完了したら、同じサーバーで ssh を実行し、最初の並列タスクのプロセスを強制終了するだけなので、これは非常に論理的です。
しかし、私の run-test-shutdown プロセスでは、これは完全に正常な動作であるため、この BUILD FAIL エラーをキャッチして、ant プロジェクトを続行できるかどうか疑問に思っていました。
ありがとうございました。