在jenkins中,我如何通过他的xml文件看到上次构建运行?

时间:2015-08-13 07:09:11

标签: jenkins

我在詹金斯有超过1000个工作岗位, 我想通过所有这些来清理未使用的工作。 建议的方法是什么?

我想在每个作业“xml”文件中都有一个指示它上次运行的时间, 谁能指出我这个文件的位置?

4 个答案:

答案 0 :(得分:1)

我最终通过" 查看作业过滤器"来过滤作业。插件,

您可以按照以下步骤使用"按构建趋势过滤" 选项:

为"所有工作"创建一个视图 - >转到编辑视图 - >在"添加作业过滤器"选择"构建趋势过滤器" - >选择你想要的过滤器。

这就是我所做的:

enter image description here

答案 1 :(得分:0)

我认为你不能一步到位。但是你可以分2步完成。

  1. 使用以下方法查找所有作业的网址:

    https://jenkins-server/api/json?tree=jobs[url]

  2. 使用从步骤1返回的网址获取有关每项工作的详细信息:

    URL从 - 步骤1 / API / JSON

  3. 这将为您提供健康报告,上次失败/成功构建等。如果您需要有关这些版本的更多信息,您可以通过以下方式提出新请求:

    url-from-step1/last-build-number/api/json
    

    我建议使用JSON,并使用JQ(http://stedolan.github.io/jq/https://jqplay.org/)来解析您的JSON

    快乐的编码!

答案 2 :(得分:0)

您可以利用REST API。以下网址可能与您相关:

  • https://ci.jenkins-ci.org/api/xml?tree=jobs [name] - 获取职位列表
  • https://ci.jenkins-ci.org/job/ {jobName} / lastBuild / buildTimestamp?format = yyyy-MM-dd-HH-mm-ss - 获取上次构建作业的时间 {jobName}

随意将xml更改为json / python ...

我可以提供以下shell脚本作为一个粗略的例子:

#!/bin/bash

jenkinsUrlBase='https://ci.jenkins-ci.org'

callJenkins() {
    curl --silent --show-error -g "$jenkinsUrlBase${1}"
}

callJenkins '/api/xml?tree=jobs[name]' | xmlstarlet sel -t -v '//hudson/job/name' | while read projectName ; do
        timestamp=$(callJenkins "/job/${projectName}/lastBuild/buildTimestamp?format=yyyy-MM-dd-HH-mm-ss")
        echo "Last build of ${projectName}: ${timestamp}"
done

答案 3 :(得分:0)

您可以在$ {JENKINS_HOME}中利用目录和文件结构:

cd ${JENKINS_HOME}/jobs/${JOB_NAME}/builds
ls -lt | head -2 | tail -1 | awk '{print $9}'

示例输出:

2015-08-13_11-48-25