【发布时间】:2018-05-26 01:36:42
【问题描述】:
我正在使用 jenkins 管道 2.0,我想获得另一个作业的最新成功构建号。
要使用什么管道语法?
【问题讨论】:
我正在使用 jenkins 管道 2.0,我想获得另一个作业的最新成功构建号。
要使用什么管道语法?
【问题讨论】:
你可以这样得到它
def buildNumber = Jenkins.instance.getItem('jobName').lastSuccessfulBuild.number
如果您获得RejectedAccessException,则必须批准这些方法,请参阅In-process Script Approval
【讨论】:
lastSuccessfulBuild 字段是否有一些文档?在 Jenkins 的官方 API 文档中找不到任何提及。
getItemByFullName() 而不是getItem()。如果您有文件夹并且 jobName 在另一个文件夹中,这可能很重要。
为了补充 Vitalii 的答案,这是在您使用 Multibranch Pipeline Plugin 的情况下:
def buildNumber = Jenkins.instance.getItem('jobName').getItem('branchName').lastSuccessfulBuild.number
【讨论】:
在企业环境中获得批准很烦人(大量的请求和批准) 所以我正在使用以下 API 方式来获取最新的内部版本号。
import groovy.json.JsonSlurperClassic
httpRequest url: 'https://jenkinsurl.local/job/Build/api/json', outputFile: 'output.json'
def jsonFile = readFile(file: 'output.json')
def data = new JsonSlurperClassic().parseText(jsonFile)
latestBuildNumber = "${data.lastSuccessfulBuild.number}"
【讨论】:
def build_job = build job: "Build"
build_job_number = build_job.getNumber()
【讨论】: