从jenkins以前的构建中提取参数

从jenkins以前的构建中提取参数,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我正在开发Jenkins版本2.32.1管道。我想提取在上一次构建作业时选择的参数 在我们之前的Jenkins实例(1.627)中,我们使用了Jenkins.model.Jenkins.instance.getItem(job.lastBuild.getBuildVariables().get(param) 由于某些原因,在这个版本中这不起作用(我还尝试禁用沙盒) 关于如何实现这一目标,有什么建议吗?类似的建议可能有效,基于: 上一个脚本的简化版本: def build = Jenkins.ge

我正在开发Jenkins版本2.32.1管道。我想提取在上一次构建作业时选择的参数

在我们之前的Jenkins实例(1.627)中,我们使用了
Jenkins.model.Jenkins.instance.getItem(job.lastBuild.getBuildVariables().get(param)

由于某些原因,在这个版本中这不起作用(我还尝试禁用沙盒)


关于如何实现这一目标,有什么建议吗?

类似的建议可能有效,基于:


上一个脚本的简化版本:

def build = Jenkins.get().getItems(org.jenkinsci.plugins.workflow.job.WorkflowJob).find {it.displayName == 'YOUR_JOB_NAME_HERE'}?.getLastBuild()
build.actions.find{ it instanceof ParametersAction }?.parameters.each {echo "${it.name}=${it.value}"}
实际上,对于那些希望从上一次运行中获取当前版本的参数并正在开发新的2+Jenkins版本的用户来说,版本稍微短了一点。
要获取1个特定参数,请执行以下操作:

def cls = currentBuild.getPreviousBuild().getRawBuild().actions.find{ it instanceof ParametersAction }?.parameters.find{it.name == 'cls'}?.value
尊敬地获取所有参数:

def cls = currentBuild.getPreviousBuild().getRawBuild().actions.find{ it instanceof ParametersAction }?.parameters

这就是我的工作原理,来自@dan.goriaynov和@jherb的回答给我带来了一些CPS关闭问题

(代码的要点是只允许部署比前一个标签号更大的标签号)

stage('Validate build number'){
def previous_build=currentBuild.getPreviousBuild().getRawBuild();
def PREVIOUS_标签=“”;
对于(int i=0;i标记.toInteger()){
回显上一个标签
错误('标签号需要大于上一个')
}
}
def cls = currentBuild.getPreviousBuild().getRawBuild().actions.find{ it instanceof ParametersAction }?.parameters