gpt4 book ai didi

jenkins - 如何使用参数对 jenkins 构建进行 HTTP 调用,然后获取由该调用触发的正在运行的作业的输出?

转载 作者:行者123 更新时间:2023-12-02 16:29:32 25 4
gpt4 key购买 nike

我是 Jenkins 的新手,最好的方法是什么?我调用 jenkins URL 以使用 token 触发远程构建:

http://host/job/job-name/buildWithParameters?token=value&param1=val1

通过使用 REST 客户端进行测试,我发现这会返回 HTTP 201,并带有用于重定向到另一个资源的位置 header :

http://host/queue/item/34355/

但是查看该资源 URL 返回 404 not found

有没有比屏幕抓取(或者是否有 API 调用?)更好的方法来获取我触发的给定作业的最后/最新作业#(正在运行或已完成)?但理想情况下,我宁愿让调用的 HTTP 响应告诉我刚刚启动的匹配作业运行是什么,因为在同一作业(具有不同参数)的并发触发器中,最后/最新作业运行可能不是你启动的那个。

我需要获取作业运行编号以查看控制台输出以获取一些信息。例如该作业在后台执行一些任务并输出我需要获取以便稍后终止的进程 ID,等等。

最佳答案

像这样使用 REST API 触发构建只会将构建排入队列,等待执行。因此,API 调用会立即返回,而无需等待构建开始或完成(有可能两者都不会发生)。

但是对您的请求的响应将包含一个 Location HTTP header ,指向新创建的队列项。例如:

HTTP/1.1 201 Created
Location: http://localhost:8080/queue/item/16/

检查此资源的 API URL(即将 api/jsonapi/xml 附加到 URL)将返回有关排队项目的信息。

如果构建仍在队列中,您将看到原因原因(例如等待可用的代理),但如果构建已开始,您将看到executable.url 字段指向构建。例如,已启动构建的 API JSON:

{

"url": "queue/item/16/",
"executable": {
"_class": "org.jenkinsci.plugins.workflow.job.WorkflowRun",
"number": 16,
"url": "http://localhost:8080/job/test/4/"
}

}

通过该构建 URL 的 logText 端点,您可以获取构建日志,例如:
http://localhost:8080/job/test/4/logText/progressiveText?start=0

此功能在构建的 API 页面(即 /job/test/4/api)上有更详细的记录。

关于jenkins - 如何使用参数对 jenkins 构建进行 HTTP 调用,然后获取由该调用触发的正在运行的作业的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42822598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com