如何确定是否正确部署了缓慢部署的应用程序?

时间:2012-10-18 10:42:18

标签: continuous-integration jenkins continuous-deployment

我有一个构建应用程序的Jenkins项目,然后,如果成功,将应用程序复制到我们的测试环境并重新启动Tomcat服务器。 Tomcat启动大约需要90秒。如何自动和/或以编程方式检查Tomcat启动是否成功,以便我可以触发部署到我们的暂存环境?我们有一个可以监控的监控URL,但我没有关于如何在Jenkins中实现这一点的线索。

2 个答案:

答案 0 :(得分:1)

创建一个ant scriptlet,并将两件事放入parallel任务中:

  • 使用exec任务
  • 启动Tomcat
  • condition元素,其中包含用于waitfor内tomcat的http端口的套接字侦听器。您可以定义timout属性,如果在waitfor之后定义,则可以使用fail使构建失败。要检查属性,您只需创建一个带有条件运行的子目标,等待之后就可以调用它。

这样的事情:

<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>

答案 1 :(得分:1)

我只是通过在Jenkins中设置一个执行以下命令的简单exec-job来解决这个问题。

curl -f -m 120 -o /dev/null -s -S http://example.org:8080/application