Я отправил Как передать тип параметра Extensible Choice в конвейер Jenkins? и нашел ответ, то есть, по крайней мере, я больше не получаю дамп ядра. Тем не менее, у меня есть 2 дополнительных вопроса.
Снова у меня есть 2 вакансии, Job1 и Job2. Job1 только запускает Job2. Job2 имеет расширяемый параметр выбора с именем TARGET_VERSION
, который запускает сценарий, который показывает номера успешных сборок Job1. Вот сценарий Groovy
import hudson.model.*
BUILD_JOB_NAME = "Job1"
def getBuildJob() {
def buildJob = null
Hudson.instance.getAllItems(Job.class).each {
if (it.fullName == BUILD_JOB_NAME) {
buildJob = it
}
}
return buildJob
}
List<String> getAllBuildNumbers(Job job) {
List<String> buildNumbers = []
(job.getBuilds()).each {
def status = it.getBuildStatusSummary().message
if (status.contains("stable") || status.contains("normal")) {
buildNumbers.add(it.displayName)
}
}
return buildNumbers
}
Job buildJob = getBuildJob()
List<String> buildNumbers = null
if (buildJob) {
buildNumbers = getAllBuildNumbers(buildJob)
}
return buildNumbers
И Job2 ничего не делает, кроме этого
node('someNode') {
stage('Print target version') {
println "$TARGET_VERSION"
}
}
Так что, если Job1 имеет следующую историю построения
Build# result
--------------------
#4 success
#3 fail
#2 success
#1 fail
Когда я запустить Job2's Build with parameters
, я получаю раскрывающийся список TARGET_VERSION
, показывающий
#4
#2
, которые являются номерами сборки Job1, которые прошли.
Однако, Job1 является конвейерным заданием, и я запускаю Job2 таким образом
build job: 'Job2',
parameters: [
new StringParameterValue('ExtensibleChoiceParam',
'TARGET_VERSION',
'666')
],
wait: false
IOW, я хочу force значение для Job2's TARGET_VERSION
, 666
в этом случае (LOL). У меня 2 проблемы.
Проблема № 1: Job2 НЕ распечатывает 666
Проблема № 2: Job2 печатает #2
вместо #4
. IOW, он печатает предыдущую успешную сборку, а НЕ самую последнюю.
Вопрос № 1. Как я могу передать значение из параметра Расширяемый выбор Job1 в параметр Job2?
Вопрос № 2: Почему задание № 2 печатает предыдущую успешную сборку Job1 вместо * последний один?