可以在ExecuteShell中访问Jenkins构建状态吗?

可以在ExecuteShell中访问Jenkins构建状态吗?,jenkins,jenkins-cli,Jenkins,Jenkins Cli,有没有一种方法可以让从executeshell步骤运行的脚本访问构建状态以及关于构建的其他信息?(例如,构建编号、开始/结束时间等) 我需要用包含构建信息的脚本更新wiki页面 提前谢谢 在执行构建时,可以在脚本中使用 另请参阅有关如何使用它的详细信息- 批处理文件中的%VAR%和Jenkins作业配置页面中的$VAR生成状态信息保存到简单的XML文件中。看看 {jenkins directory}/jobs/{job name}/builds/{build number}/build.xml。

有没有一种方法可以让从executeshell步骤运行的脚本访问构建状态以及关于构建的其他信息?(例如,构建编号、开始/结束时间等)

我需要用包含构建信息的脚本更新wiki页面

提前谢谢

在执行构建时,可以在脚本中使用

另请参阅有关如何使用它的详细信息-


批处理文件中的
%VAR%
和Jenkins作业配置页面中的
$VAR
生成状态信息保存到简单的XML文件中。看看
{jenkins directory}/jobs/{job name}/builds/{build number}/build.xml
。如果需要,可以使用符号链接,如lastSuccessfulBuild,而不是指定生成编号

您将在那里找到关于构建的所有信息:构建状态、开始时间、持续时间等。解析XML文件或在bash脚本中使用grep

如果不想使用文件系统,可以使用


但是在任何情况下,一旦你得到了一个可以确定构建参数并更新你的wiki页面的脚本,你就可以将它放入另一个Jenkins作业并自动触发它(例如,使用)。

我正在使用Jenkins自己的API在作业运行时获取构建状态,这就像一个符咒。请注意,我正在使用解析json响应

要使其正常工作,只需添加一个shell脚本并执行以下命令:
BUILD\u STATUS=$(curl--silent${BUILD\u URL}api/json | jq-r'.result')

其结果如下:


@user1432893已回答。。但是,如果您想要获得构建状态(通过或失败),这将没有帮助。因为exceute shell是构建的一部分。。生成步骤后只更新生成状态。没有公开生成状态的环境变量,这是问题中提出的第一个信息…事实上。在env中没有BUILD_状态、结果或任何东西。我知道jenkins正在XML文件中存储配置和数据。有没有办法将其配置为存储在数据库中(mysql、postgres…)当我运行“BUILD_状态=$(curl--silent${BUILD_URL}api/json | jq-r'.RESULT')时,我得到了“解析错误:第1行第18列的无效数字文字”目前无法测试它,因为我没有可用的jenkins,但是
curl--silent${BUILD\u URL}api/json
返回了什么?检查输出,看看是否有适合您的内容。解决方案是使用完成构建的${BUILD\u URL},而不是当前构建。short_description=$(curl-g-u pseudo:token--silent”“| jq-r”“。操作[0]。原因[0]。“shortDescription”“)这给了我未知的命令shor_description为什么?在此处发布json:并共享以获取帮助。