Как получить конкретный параметр из сборки через системный скрипт Groovy - PullRequest
0 голосов
/ 31 декабря 2018

Я довольно новичок в Дженкинс и 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, а не в сборках, к которым я пытаюсь это сделать.Я понятия не имею, как заставить это работать иначе, однако.

Всем хорошего Нового года!

Приветствия

...