[英]How to view Jenkins console output during a build from the terminal after invoking build using curl from the terminal?
我已经构建了一个 Jenkins 作业来运行自动 ZAP-Proxy 扫描。
我使用curl -X POST -u YOUR_USER:YOUR_USER_PASSWORD http://YOUR_JENKINS_URL/job/YOUR_JOB
从终端构建作业。 有没有办法在构建作业时在终端中显示控制台输出?
这是可能的,但由于两个原因,它有点复杂:
curl
触发新构建时,构建不会立即开始。 构建将进入构建队列,并且只有在 Jenkins 找到合适的执行器后才会开始执行。 在此之前,根本没有构建 URL。 所以,一旦你触发了构建,你需要在离开构建队列后找到它的 URL。 它可以在 Groovy 中很好地完成 —— 作为一种更简单的启发式方法,您可以等待特定时间,然后使用lastBuild
引用。
为了获取控制台日志片段,您将使用<buildUrl>/logText/progressiveText
端点。 创建一个循环获取该 URL 并检查X_More_Data
和X_Text_Size
HTTP 标头以获取有关控制台输出是否(以及什么)可用的信息。 您可以在bash
使用curl
循环执行此操作; 我在网上找到了这个Groovy 示例。
最后,最优雅的解决方案可能是
如果您使用 CLI 界面提交脚本,那么您可以在单个脚本中完成所有这些步骤。 如果您使用 REST API,那么由于 REST API 端的输出缓冲,第二部分(“连续输出”)可能无法工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.