Как найти карту, определенную в файле yaml в скрипте Groovy, и назначить ее для ввода на основе переменных, предоставленных из пользовательского интерфейса Pipeline - PullRequest
0 голосов
/ 17 апреля 2019

Как передать карту переменных из файла yaml в переменную в файле jenkins или просто распечатать в текстовом файле.

Например:

У меня есть файл test.yaml, который он содержит:

processor-create:
{
service: true
ingress: true
path: /tmp/data
},
processo-update:
{
service: false
ingress: false
path: /tmp/data
}

я предоставлю входное имя_службы: процессор-создание в качестве параметра из конвейера, и он должен искать и искать эту службу в test.yaml, а затем любые переменные, которые имеют« processor-create » он должен назначить переменной или распечатать в другом текстовом файле, чтобы я передал этот файл в качестве дополнительного файла переменной для ANISIBLE-сценария на следующем этапе, спасибо.

1 Ответ

0 голосов
/ 17 апреля 2019

Вы уверены, что это действительный файл yaml?для меня правильный синтаксис должен быть:

processo-update: 
    ingress: false
    path: /tmp/data
    service: false
processor-create: 
    ingress: true
    path: /tmp/data
    service: true

для разбора yml вы можете использовать snakeyaml, что-то похожее на:

  @Grab('org.yaml:snakeyaml:1.17')
  import org.yaml.snakeyaml.Yaml

  Yaml parser = new Yaml()

  map = parser.load( new File('text.yml').text )
  println map[args[0]]

прочитайте этот пост на более сложный пример: https://groovy -lang.gitlab.io / 101-скрипты / Basico / config_script-en.html

...