アプリケーションをビルドする Jenkins プロジェクトがあり、成功した場合はアプリケーションをテスト環境にコピーし、Tomcat サーバーを再起動します。Tomcat の起動には約 90 秒かかります。ステージング環境へのデプロイをトリガーできるように、Tomcat の起動が成功したかどうかを自動またはプログラムで確認するにはどうすればよいですか? 監視できる監視 URL がありますが、これを Jenkins に実装する方法についての手がかりがありません。
2 に答える
            1        
        
		
Ant スクリプトレットを作成し、2 つのことを並列タスクに入れます。
- execタスクで Tomcat を起動する
- waitfor内の tomcat の http ポートのソケット リスナーを持つ条件要素。timeout プロパティを定義できます。waitfor の後に定義されている場合は、failを使用してビルドを失敗させることができます。プロパティを確認するには、条件付き実行でサブターゲットを作成するだけで、waitfor の後にそれを呼び出すことができます。
だから、このようなもの:
<target name="runCheckedTomcat">
    <parallel>
        <sequential>
            <echo>Tomcat starts</echo>
            <exec command="start.bat" dir="tomcatdir">
            </exec>
        </sequential>
        <sequential>
            <waitfor timeoutproperty="timeout" maxwait="15" maxwaitunit="second">
                <socket server="localhost" port="8080"/>
            </waitfor>
            <antcall target="fail"/>
        </sequential>
    </parallel>
</target>
<target name="fail" if="timeout">
    <fail message="Tomcat is not started in time"/>
</target>
于 2012-10-20T22:18:31.897   に答える
    
    
            1        
        
		
Jenkins で次のコマンドを実行する単純な exec-job を設定することで、これを簡単に解決しました。
curl -f -m 120 -o /dev/null -s -S http://example.org:8080/application
于 2012-10-22T10:30:55.343   に答える