我目前正在开始将我们的构建转换为Jenkins构建管道。在某些时候,我们有必要等待docker容器中Web应用程序的启动。
我的想法是使用这样的东西:
timeout(120) { waitUntil { sh 'wget -q http://server:8080/app/welcome.jsf -O /dev/null' } }
不幸的是,这使管道构建失败:
错误:脚本返回了退出代码4
有什么简单的方法可以使这项工作吗?
编辑:
我设法使用下面的代码使其工作,但是该阶段仍标记为失败(尽管构建继续并且最后标记为绿色)。
timeout(120) { waitUntil { try { sh 'wget -q http://server:8080/app/welcome.jsf -O /dev/null' return true } catch (exception) { return false } } }
他们刚刚发布了新版本的“ 管道节点和流程插件”,它增加了对返回退出状态的支持。这似乎现在可以完成工作:
timeout(5) { waitUntil { script { def r = sh script: 'wget -q http://remoterhoste/welcome.jsf -O /dev/null', returnStdout: true return (r == 0); } } }