Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用groovy在jenkins中编写yaml文件_Jenkins_Groovy_Yaml_Jenkins Pipeline - Fatal编程技术网

使用groovy在jenkins中编写yaml文件

使用groovy在jenkins中编写yaml文件,jenkins,groovy,yaml,jenkins-pipeline,Jenkins,Groovy,Yaml,Jenkins Pipeline,在Groovy中编写/修改*.yaml文件的最佳方法是什么 我想修改jenkins管道作业中yaml文件中维护的版本。使用readYaml我可以获取内容,但如何才能将其重新写入 我想到的一种方法是对文件执行sed。但是我认为这不是很准确。如果您只需要更新yaml文件中的版本,那么您可以读取内容,进行字符串替换,然后写回您的文件 作为一个示例,下面是一个单元测试,它演示了这一点: 假设src/test/resources包含一个文件version.yaml,该文件如下所示: version: '0

在Groovy中编写/修改*.yaml文件的最佳方法是什么

我想修改jenkins管道作业中yaml文件中维护的版本。使用
readYaml
我可以获取内容,但如何才能将其重新写入


我想到的一种方法是对文件执行
sed
。但是我认为这不是很准确。

如果您只需要更新yaml文件中的版本,那么您可以读取内容,进行字符串替换,然后写回您的文件

作为一个示例,下面是一个单元测试,它演示了这一点:

假设
src/test/resources
包含一个文件
version.yaml
,该文件如下所示:

version: '0.0.1'

anotherProperty: 'value'

该插件具有与YAML文件交互的
readYaml
writeYaml
步骤<默认情况下,code>writeYaml不会覆盖您的文件,因此您必须先将其删除

def filename = 'values.yaml'
def data = readYaml file: filename

// Change something in the file
data.image.tag = applicationVersion

sh "rm $filename"
writeYaml file: filename, data: data

IMHO的可能副本它不是副本,因为它不等同于Jenkins插件的readYaml方法最近名为“Pipeline utility steps”的Jenkins插件包含
readYaml
(将yaml文件读入对象)和
writeYaml
,它接受一个对象并将其写为yaml文件。坦率地说,这是savior:sh“rm$filename”这应该是答案。如果您不知道或不关心要替换的字符串的版本,则不会。
def filename = 'values.yaml'
def data = readYaml file: filename

// Change something in the file
data.image.tag = applicationVersion

sh "rm $filename"
writeYaml file: filename, data: data