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