我正在使用Perl脚本通过LWP模块触发Jenkins中的构建。虽然这个方法可行,但在执行作业后,我想解析控制台输出。
有没有办法获取它?
登录 Jenkins 并在网页底部靠近右侧查看,然后单击 REST API
链接。这会为您提供有关 Jenkins RESTful API 的信息,一旦了解如何构造 URL,它是从 Jenkins 拉取信息的好方法。
以下是获取控制台文本的方法:
$ curl "${JENKINS_URL}/job/${JOB_NAME}/lastBuild/consoleText"
您可以使用Perl的各种LWP模块与Jenkins进行通信。
如果您想从运行在主节点上的另一个Jenkins作业中访问日志,您可以从一个链接(子)作业中进行访问而无需发送http GET请求。请参见https://dev59.com/CVoU5IYBdhLWcg3wg3II#41974193。
consoleText
替换为consoleFull
,则可以在 HTML 中获取日志。当然,您需要解析它以提取内容。在 Windows 上,您可以免费使用 Powershell 进行操作。 $resp = Invoke-Webrequest "$(JENKINS_URL)/job/$(JOB_NAME)/lastBuild/consoleFull"$resp.ParsedHtml.body.innerText > someFile.log (Powershell Core 也可在 Linux 上使用,但由于需要 MS DLL,因此在对象中不包括 ParsedHtml) - Ingemar
${JENKINS_URL}/job/${JOB_NAME}/lastBuild/timestamps?appendLog&elapsed=HH:mm:ss.S
- Ingemartimestamps
API 方法是由 Timestamper 插件 提供的。它还提供了诸如startLine
、endLine
、locale
等参数。 - cod3monk3ylatestBuild
确实返回上一个构建。我不想添加睡眠或其他东西。 - nehem