groovy - 如何在 Groovy 脚本中查找在 yaml 文件中定义的映射并分配给从 Pipeline UI 提供的基于变量的输入
问题描述
如何将 yaml 文件中的变量映射传递到 jenkins 文件中的变量或仅在文本文件中打印。
例如:
我有它包含的 test.yaml 文件:
processor-create:
{
service: true
ingress: true
path: /tmp/data
},
processo-update:
{
service: false
ingress: false
path: /tmp/data
}
我将提供输入 service_name: processor-create作为管道中的参数,它必须在 test.yaml 中查找该服务,然后任何具有“ processor-create ”的变量都应该分配给变量或打印到另一个文本文件中,以便我将在下一阶段将该文件作为 ansible 脚本的额外变量文件传递,谢谢。
解决方案
你确定这是一个有效的 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-scripts/basico/config_script-en.html
推荐阅读
- ios - Flutter pod install 为 .xcconfig 文件生成无效路径
- javascript - javascript等待多个链式异步函数
- html - 在ajax中传递一个选择值
- apache-kafka - 使用 Kafka 流/KSQL 加入表?
- magento - 我确定密码和电子邮件是正确的,但是 magento 报告它们无效(aramex 方法)
- c# - 如何使用密码加密 app.config
- javascript - 如何在 Node.js 中输出特定对象但不输出不存在的对象?
- python - 带有 Django 2 内置 LoginView 的 Google Re-captcha
- php - 如何检查登录用户并重定向到codeigniter中的特定页面?
- android - 用户登录后返回应用如何防止用户反复登录?