如何在使用jenkins-cli.jar运行从属作业时等待工作完成?

问题描述:

我有一个詹金斯奴隶(在localhost:8000)和I am executing it (link)从詹金斯大师(在localhost:8080)。这里的基本思想是运行远程作业并等待作业完成。如何在使用jenkins-cli.jar运行从属作业时等待工作完成?

java -jar jenkins-cli.jar -s http://localhost:8000 build "Test Suite" 

现在,这不等待。我开始从事奴隶工作,詹金斯大师说,尽管奴隶再运行30分钟,但任务立即结束。

有没有人知道我如何阻止或检查从站上的信号,以验证它完成并获得工作的退出状态代码?

注意:我的从站测试必须在从站上运行,因为它不会从作为服务运行的Jenkins主站运行,并且不允许从测试中启动webbrowser。所以,我在一个可见的控制台中运行该奴隶。

java -jar jenkins-cli.jar -s http://localhost:8000 build "Test Suite" -s 

添加参数-s到构建命令应该触发作业,并返回作业完成后

+0

我会在星期一尝试并回复你。非常感谢。 – djangofan 2013-03-16 22:46:28

+0

是的,它的工作。这很奇怪,-s用于URL,然后再次使用。这是怎么回事? – djangofan 2013-03-19 16:25:45

+1

我相信这个CLI界面的布局方式是参数的顺序。第一个-ar arg与您正在执行的命令(“build”)一起连接到CLI(即,什么服务器)。第二个/结尾-s特定于“build”子命令,并且帮助文档指出: “-s:等到命令完成/中止...” – kellyb 2015-09-08 21:46:54

每一个Windows应用程序,它的父返回退出代码。使用Windows批处理文件检查退出代码。例如:

java -jar jenkins-cli.jar -s http://127.0.0.1:9090 build "Test Suite" -s 
echo The exit code is %errorlevel% 

在全成工作完成后,您将获得:

Completed "Test Suite" #72 : SUCCESS 
The exit code is 0 

检查一些错误情况(错误的作业名称,作业创建失败等)

注:不运行主詹金斯因为Windows服务可能更容易。