繁体   English   中英

用groovy在jenkins中写yaml文件

[英]write yaml file in jenkins with groovy

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

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

我想到的一种方法是在文件上做一个sed 但我认为那不是很准确。

Pipeline Utility Steps插件具有readYamlwriteYaml步骤以与YAML文件交互。 默认情况下, 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

如果您只需要更新yaml文件中的版本,那么您只需读取内容,执行String替换并回写到您的文件。

举个例子,这是一个单元测试,用于演示:

假设src/test/resources包含一个文件version.yaml ,它看起来像:

version: '0.0.1'

anotherProperty: 'value'

@Test
void replaceVersion() {
    File yaml = new File("src/test/resources/version.yaml")
    println yaml.text

    String newVersion = "2.0.0"
    yaml.text = yaml.text.replaceFirst(/version: '.*'/, "version: '${newVersion}'")
    println yaml.text
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM