如何在 Groovy 脚本中查找 yaml 文件中定义的映射并分配给管道 UI 提供的基于变量的输入
How to lookup map defined in yaml file in the Groovy script and assign to variable based input provided from Pipeline UI
如何将变量映射从 yaml 文件传递到 jenkins 文件中的变量或仅在文本文件中打印。
例如:
我有 test.yaml 个文件,其中包含:
processor-create:
{
service: true
ingress: true
path: /tmp/data
},
processo-update:
{
service: false
ingress: false
path: /tmp/data
}
i 将提供输入 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]]
阅读此 post 以获得更详细的示例:https://groovy-lang.gitlab.io/101-scripts/basico/config_script-en.html
如何将变量映射从 yaml 文件传递到 jenkins 文件中的变量或仅在文本文件中打印。
例如:
我有 test.yaml 个文件,其中包含:
processor-create:
{
service: true
ingress: true
path: /tmp/data
},
processo-update:
{
service: false
ingress: false
path: /tmp/data
}
i 将提供输入 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]]
阅读此 post 以获得更详细的示例:https://groovy-lang.gitlab.io/101-scripts/basico/config_script-en.html