Я изо всех сил стараюсь включить динамический c параметр выбора в мой декларативный конвейер. Я испробовал множество разных предложений, которые не помогли, так как сейчас я полностью потерял свой след: -)
Для желаемой функциональности: у меня есть Jenkinsfile (декларативный) для конвейера jenkins. Я хочу, чтобы у меня был параметр, позволяющий мне выбрать конкретную ветку c из репозитория git для использования в конвейере.
Базовая c структура файла jenkinsfile:
pipeline {
agent { node { label "XXX-XXX-XXX" } }
options {
gitLabConnection('XXX-XXX-XXX')
}
stages {
stage("STAGE A") {
parallel{
stage("A"){
steps {
// DO STUFF
}
}
stage("B"){
steps {
// DO STUFF
}
}
}
}
}
}
Я попытался добавить параметр, используя следующий фрагмент в конвейере. Я не смог динамически заполнить список вариантов. Он был либо пустым, либо выдавал ошибки.
parameters {
choice(
name: 'CHOICE_2',
choices: 'choice_1\nchoice_2\nchoice_3\nchoice_4\nchoice_5\nchoice_6',
description: 'CHOICE_2 description',
)
}
В качестве альтернативы я попытался получить следующее вне объявления конвейера. Я оставил один, если сценарий вариации в качестве примера. Здесь я снова не смог заполнить список вариантов. Поле оставалось пустым:
node {
label "XXX-XXX-XXX"
properties([
parameters([
[$class: 'ChoiceParameter',
choiceType: 'PT_SINGLE_SELECT',
description: 'The names',
filterLength: 1,
filterable: true,
name: 'Name',
randomName: 'choice-parameter-5631314439613978',
script: [
$class: 'GroovyScript',
script: [
classpath: [],
sandbox: false,
script: '''
def gettags = "git ls-remote git@XXX-XXX-XXX.git".execute()
def tagList = []
def t1 = []
String tagsString = null;
gettags.text.eachLine {tagList.add(it)}
for(i in tagList)
t1.add(i.split()[1].replaceAll('\\^\\{\\}', ''))
t1 = t1.unique()
tagsString = StringUtils.join((String[])t1, ',');
return tagsString
'''
]
]
],
])
])
}
На данный момент я перепробовал слишком много разных подходов и хотел бы сделать go шаг назад.
Может ли кто-нибудь поддержать меня подходом и некоторые намеки или ресурсы?
Спасибо и с наилучшими пожеланиями,