Как стать автором
Обновить

Комментарии 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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий