通过Groovy脚本获取Jenkins内部版本号?

时间:2018-11-05 18:18:24

标签: jenkins groovy jenkins-pipeline

我有一个名为“ deploy-job”的Jenkins参数化构建,并且我将“可扩展选择”选项设置为“系统Groovy选择参数”。在Groovy脚本框中,我有这个

import hudson.model.*

BUILD_JOB_NAME = "build-multi-branch-pipeline-job"

def getJobs() {
    def hi = Hudson.instance
    return hi.getItems(Job)
}

def getBuildJob() {
    def buildJob = null
    def jobs = getJobs()
    (jobs).each { job ->
        if (job.displayName == BUILD_JOB_NAME) {
            buildJob = job
        }
    }
    return buildJob
}

def getAllBuildNumbers(Job job) {
    def buildNumbers = []
    (job.getBuilds()).each { build ->
        def status = build.getBuildStatusSummary().message
        if (status.contains("stable") || status.contains("normal")) {
          buildNumbers.add(build.BUILD_NUMBER.toString())
        }
    }
    return buildNumbers
}

def buildJob = getBuildJob()
return getAllBuildNumbers(buildJob)

但是,当我运行我的“ deploy-job”时,当我运行带有参数的Build时,我没有在选择框中看到“ multi-branch-pipeline-job”的内部版本号! >

我怀疑我没有打这个电话吗?

buildNumbers.add(build.BUILD_NUMBER.toString())

在这种情况下正确的语法是什么?谢谢!

1 个答案:

答案 0 :(得分:0)

1 /使用try-catch查看您选择的错误。这将帮助您了解错误。

def getAllBuildNumbers(Job job) {
    try {
        ...
        return buildNumbers
    }catch(Throwable t){ 
        return [t.toString()]
    }
}

2 /您的答案已经存在

Jenkins Plugin How to get Job information