Комментарии 2
Хорошая и нужная статья. Спасибо что описали пример с activeChoice.
Сам столкнулся с похожей задачей и решал с помощью etcd и вот такого кода:
Jenkinsfile:
def readService(){
res = httpRequest(
url: "http://etcd:2379/v2/keys?dir=true",
httpMode: 'GET',
consoleLogResponseBody: 'false'
)
stdjson = readJSON text: res.content, returnPojo: true
listStages = [] as Set
listServices = []
stdjson.node.nodes.each { nodes ->
listStages.add(nodes.key.split(',')[0].split('\\/')[1])
listServices.add(nodes.key.split(',')[0].split('\\/')[2])
}
return [listStages as List , listServices]
}
pipeline {
agent any
parameters {
choice(name: 'param_stage', choices: readService()[0] )
choice(name: 'param_service', choices: readService()[1] )
}
...
Groovy вставки в декларативном пайплайне выглядят, конечно, ужасно))
если интересны подобные не совсем стандартные сценарии, то я бы посоветовал посмотреть в сторону вот этой shared либы. В своё время я нашёл там очень много фишечек https://github.com/SAP/jenkins-library
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Параметры в Jenkins