如何通过系统Groovy脚本从构建中获取特定参数

时间:2018-12-31 10:46:42

标签: jenkins groovy jenkins-plugins jenkins-groovy

我对詹金斯(Jenkins)和格罗维(Groovy)并不陌生,有点死胡同。我非常感谢您的帮助。

我的目标是从特定作业的构建中获取特定参数。这是我的代码:

import jenkins.model.*
import hudson.model.*

def ji = Jenkins.instance
// get current thread / Executor
def thr = Thread.currentThread()
// get current build
def build = thr?.executable

def param_name = "GERRIT_CHANGE_ID"
def job_pattern = /test/ 

def matchedJobs = ji.items.findAll { job ->
    job.name =~ job_pattern 
} // I am trying to get the builds from this specific job and then extract the parameter in question

matchedJobs.each {
  allBuilds = it.getBuilds()
  jobName = it.fullName
  allBuilds.each {
     def foo = build.buildVariableResolver.resolve("GERRIT_CHANGE_ID")
     println "GERRIT_CHANGE_ID=$foo"
    }
}

我得到的结果是:

Building on master in workspace /var/jenkins_home/workspace/paramtest
GERRIT_CHANGE_ID=null
GERRIT_CHANGE_ID=null
GERRIT_CHANGE_ID=null
Script returned: [org.jenkinsci.plugins.workflow.job.WorkflowJob@317e5888[test]]
Finished: SUCCESS

如果我为系统Groovy脚本作业(我正在处理)定义了一个具有相同名称的参数,则它将毫无问题地返回该参数。

所以我认为该脚本仅在系统Groovy作业本身的工作空间中搜索,而不是进入我尝试建立的版本。不过,我不知道如何使它工作。

祝大家新年快乐!

欢呼

0 个答案:

没有答案