【问题标题】:Query the Parameters of a Jenkins Job which is triggered using Rebuild Plugin?查询使用 Rebuild Plugin 触发的 Jenkins Job 的参数?
【发布时间】:2018-12-16 14:11:47
【问题描述】:

我每周使用 Jenkins CLI 为一周内的工作创建报告。

def deployOnK8sJob = Jenkins.instance.getItemByFullName('<JOB>')
def jobBuilds=deployOnK8sJob.getBuilds().byTimestamp(System.currentTimeMillis()-numberOfHoursBack*60*60*1000, System.currentTimeMillis())

println build.number + "  " + build.actions[0].parameters[0].value + "  " + build.actions[0].parameters[1].value + "  " + build.timestamp.format("dd/MM/yyyy HH:mm:ss.SSS") + "  " + build.result + "  " + build.actions[0].parameters[3].value + "  " + build.actions[0].parameters[4].value

这对我来说很好。但是,如果构建失败并且任何人使用 Rebuild Plugin 再次触发了该作业,build.actions[0].parameters[x] 将不可用。

我有一个收集这些报告的 groovy 脚本。

【问题讨论】:

  • 不可用是什么意思?你得到什么错误?
  • ERROR: Unexpected exception occurred while performing groovy command. groovy.lang.MissingPropertyException: No such property: parameters for class: hudson.model.CauseAction 这是我得到的例外。此外,当我在 UI 上打开作业时,我看到一行说明 Rebuilds build 我如何通过代码知道这是一个重建作业?这也有帮助。

标签: groovy jenkins-plugins jenkins-cli


【解决方案1】:

我认为在使用 Rebuild Plugin 时,build.actions[0].parameters[x] 不可用,因为在这种情况下,build.actions[0] 不是来自 ParametersAction 类,而是来自 CauseAction 类,正如你得到的例外所说。

所以,我建议使用build.getAction(ParametersAction.class) 而不是build.actions[0]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-19
    • 1970-01-01
    • 2021-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多