Chr*_*her 11 groovy yaml jenkins jenkins-pipeline
在Groovy中编写/修改*.yaml文件的最佳方法是什么?
我想在我的jenkins管道作业中修改yaml文件中维护的版本.随着readYaml
我就能得到上述内容,但我怎么能再次写回来?
我想到的一种方法是sed
在文件上做一个.但我认为那不是很准确.
Ran*_*ndy 11
该管道实用程序步骤插件具有readYaml
和writeYaml
步骤与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
Run Code Online (Sandbox Code Playgroud)
小智 10
您可以使用“ writeYaml ”,并将“ overwrite ”标志设置为true。
这将允许就地更新 YAML 文件。
默认情况下,它设置为 false。
您可以在管道实用程序步骤文档中阅读更多相关信息
如果您只需要更新 yaml 文件中的版本,那么您只需读取内容,进行字符串替换并写回文件即可。
作为示例,下面的单元测试演示了这一点:
假设包含一个如下所示的src/test/resources
文件:version.yaml
version: '0.0.1'
anotherProperty: 'value'
Run Code Online (Sandbox Code Playgroud)
@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
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10268 次 |
最近记录: |