【问题标题】:How to wait for job to finish when using jenkins-cli.jar to run a slave job?使用 jenkins-cli.jar 运行从属作业时如何等待作业完成?
【发布时间】:2013-03-15 17:26:32
【问题描述】:

我有一个詹金斯奴隶(在 localhost:8000 )和 I am executing it ( link ) 来自詹金斯大师(在 localhost:8080 )。这里的基本思想是运行远程作业并等待作业完成。

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

现在,这不等待。我在 slave 上开始工作,Jenkins Master 说任务立即完成,尽管 slave 又运行了 30 分钟。

有谁知道我如何阻止或检查从站上的信号以验证它是否已完成并获取作业的退出状态代码?

注意:我的从属测试必须在从属上运行,因为它不会从 Jenkins 主控运行,它作为服务运行并且不允许从测试启动网络浏览器的权限。所以,我在一个可见的控制台中运行从站。

【问题讨论】:

    标签: jenkins continuous-integration hudson


    【解决方案1】:
    java -jar jenkins-cli.jar -s http://localhost:8000 build "Test Suite" -s
    

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

    【讨论】:

    • 我会在星期一试一试,然后回复你。非常感谢。
    • 是的,它奏效了。这很奇怪, -s 用于 URL,然后又再次使用。这是怎么回事?
    • 我相信这个 CLI 界面的布局方式很重要 args 的顺序。第一个 -s 参数与您正在执行的命令(“构建”)一起附加到 CLI(即什么服务器)。第二个/尾随 -s 特定于“build”子命令,正如帮助文档所述:“-s:等待命令完成/中止......”
    【解决方案2】:

    每个 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 服务运行 jenkins 可能更容易。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-24
      • 2020-09-02
      • 1970-01-01
      相关资源
      最近更新 更多