当前位置: 首页 > 面试题库 >

使Jenkins管道等待服务器启动

印晋
2023-03-14
问题内容

我目前正在开始将我们的构建转换为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);
       }
    }
}


 类似资料:
  • 问题内容: 我正在尝试重新启动服务器,然后使用以下命令等待: 但是我得到这个错误: 问题答案: 您应该将wait_for任务更改为local_action,然后指定要等待的主机。例如:

  • 无法启动边缘驱动程序,我得到下面提到的错误和代码,我使用的是下面。请帮忙

  • 我已经尝试了Stackoverflow主题中告诉我的一切。我通过jenkins在远程从机上运行java selenium测试。荒谬的是,第一个测试总是运行,浏览器打开,所有其他测试都给我“等待驱动服务器启动超时”。 错误: 到目前为止我尝试过的所有解决方案: 更新Java1_8_271 更新硒4 更新ChromeDriver 87 用rawcap检查localhost流量 检查localhostd

  • Jenkins作为一项windows服务,已经运行了几个月,没有出现任何问题。 我做了一些Jenkins更新(将一个更新的.war文件复制到.Jenkins文件夹),也进行了一些windows更新。我的版本是Jenkins 2.263.3。 我浏览了很多文档和其他StackOverflow票据,发现JENKINS_HOME环境变量缺失。我加了这个。 这是我的调查揭示的。 设置Java环境变量-见下

  • 问题内容: public class Dem { public static void main(String[] args) throws InterruptedException { WebDriver driver; String url = "https://www.google.com”; System.setProperty(“webdriver.chrome.driver”,”C:\

  • Selenium webdriver和Chrome driver是最新版本 Selenium webdriver:3.14.0 ChromeDriver:2.42 Java:1.8.0_181 这是运行代码后的错误。谷歌chrome根本没有推出。 严重:org.apache.commons.exec.executeException:进程退出,但出现错误:-1073741792(退出值:-1073