在从终端使用curl调用build之后,如何在从终端生成的过程中查看Jenkins控制台输出?

在从终端使用curl调用build之后,如何在从终端生成的过程中查看Jenkins控制台输出?,jenkins,curl,terminal,zap,Jenkins,Curl,Terminal,Zap,我建立了一个Jenkins作业来运行自动ZAP代理扫描 我使用了curl-X POST-u您的用户:您的用户密码http://YOUR_JENKINS_URL/job/YOUR_JOB从终端生成作业。在构建作业时,是否有办法在终端中显示控制台输出 这是可能的,但由于两个原因,它有点复杂: 当您通过curl触发新生成时,生成不会立即启动。构建将进入构建队列,只有在Jenkins找到合适的执行者后,它才会开始执行。在此之前,根本没有构建URL 从技术上讲,(连续)控制台输出是以多个片段交付的,这些片

我建立了一个Jenkins作业来运行自动ZAP代理扫描


我使用了
curl-X POST-u您的用户:您的用户密码http://YOUR_JENKINS_URL/job/YOUR_JOB
从终端生成作业。在构建作业时,是否有办法在终端中显示控制台输出

这是可能的,但由于两个原因,它有点复杂:

  • 当您通过
    curl
    触发新生成时,生成不会立即启动。构建将进入构建队列,只有在Jenkins找到合适的执行者后,它才会开始执行。在此之前,根本没有构建URL
  • 从技术上讲,(连续)控制台输出是以多个片段交付的,这些片段必须通过HTTP单独检索
  • 因此,一旦触发了构建,就需要在if离开构建队列后找到它的URL。它可以在Groovy中很好地完成——作为一种更简单的启发式方法,您可以等待一定的时间,然后使用
    lastBuild
    引用

    为了获取控制台日志片段,您将使用
    /logText/progressiveText
    端点。创建一个获取该URL的循环,并检查
    X_More_Data
    X_Text_Size
    HTTP头,以获取有关控制台输出是否可用(以及可用内容)的信息。您可以在循环中使用
    curl
    bash
    中实现这一点;我在网上找到了这个

    最后,最优雅的解决方案可能是

    • 通过提交一个Groovy脚本来触发新的构建,该脚本将触发构建,然后等待构建离开构建队列,返回构建URL
    • 然后使用另一个脚本轮询/获取/显示该构建的控制台输出
    如果使用CLI界面提交脚本,则可以在单个脚本中执行所有这些步骤。如果您使用RESTAPI,那么第二部分(“连续输出”)可能由于RESTAPI端的输出缓冲而无法工作