目录
前言
- 本篇来学习读取和写入yaml文件
readYam
参数
file
:工作区中用于读取 YAML 数据的文件的可选路径。text
:包含 YAML 格式数据的可选字符串。这些将在之后添加到结果对象中file
,因此如果不是新的 YAML 文档,它们将覆盖已经存在的任何值
使用
- 新建test.yaml文件,内容如下
name: 'dahai'
age : 28
city: 'Beijing'
professional: 'Tester'
- 新建Jenkinsfile文件,内容如下
println env.JOB_NAME
println env.BUILD_NUMBER
pipeline{
agent any
environment {
LANG = 'en_US.UTF-8'
}
stages{
stage("read properties") {
steps{
script{
yaml_file = env.WORKSPACE + "/test_data/test.yaml"
read_yaml_file(yaml_file)
println "================================"
yaml_str = """
age: 28
city: 'Beijing'
professional: 'Tester'
name: 'dahai'
"""
read_yaml_file(yaml_str)
}
}
}
}
}
def read_yaml_file(yaml_file) {
def data = ""
if(yaml_file.toString().endsWith(".yaml")){
// yaml文件
data = readYaml file : yaml_file
}else {
// yaml格式字符串
data = readYaml text : yaml_file
}
data.each {
println ( it.key + " = " + it.value )
}
}
writeYaml
参数
file
(可选):工作区中要写入 YAML 数据的文件的可选路径。如果提供,则returnText
必须false
或省略。data
(可选):包含要序列化的数据的可选对象。datas
(可选):一个可选集合,包含要序列化为多个 YAML 文档的数据charset
(可选):可选地指定写入文件时要使用的字符集。UTF-8
如果未指定其他内容,则默认为。可用的字符集取决于您的 Jenkins 主系统。overwrite
(可选):允许覆盖现有文件。默认为false
.returnText
(可选):将 YAML 作为字符串返回,而不是将其写入文件。默认为false
使用
- 新建Jenkinsfile文件,内容如下
println env.JOB_NAME
println env.BUILD_NUMBER
pipeline{
agent any
stages{
stage("write into yaml file") {
steps{
script{
def a_map = [name: 'HaHai',
age : 28,
city: 'Beijing',
professional: 'Tester'
]
yaml_file = env.WORKSPACE + "/test_data/new.yaml"
write_to_yaml(a_map, yaml_file)
println "the contents of yaml file are: "
read_yaml_file(yaml_file)
}
}
}
}
}
// 写入yaml
def write_to_yaml(map_data, yaml_path) {
writeYaml file: yaml_path , data: map_data,charset: 'UTF-8'
}
// 读取yaml
def read_yaml_file(yaml_file) {
def data = ""
if(yaml_file.toString().endsWith(".yaml")){
// yaml文件
data = readYaml file : yaml_file
}else {
// yaml格式字符串
data = readYaml text : yaml_file
}
data.each {
println ( it.key + " = " + it.value )
}
}