0
点赞
收藏
分享

微信扫一扫

24-Jenkins-Pipeline-Pipeline Utility Steps插件之readYaml和writeYaml

北溟有渔夫 2022-01-23 阅读 148

目录

前言

readYam

writeYaml


前言

  • 本篇来学习读取和写入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 )
	 }
}
举报

相关推荐

0 条评论