Как передать параметр Extensible Choice "значение" в конвейер Jenkins? - PullRequest
1 голос
/ 28 февраля 2020

Я отправил Как передать тип параметра 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 вместо * последний один?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...