Groovyで* .yamlファイルを作成/変更する最良の方法は何ですか?groovyを使用したjenkinsのyamlファイルを作成する
私のjenkinsパイプラインジョブ内のyamlファイルに保持されているバージョンを変更したいと思います。 readYaml
でコンテンツを手に入れることができますが、もう一度書き直すにはどうすればいいですか?
私の頭に浮かぶのは、ファイルにsed
をすることです。しかし、私はそれほど正確ではないと思う。
Groovyで* .yamlファイルを作成/変更する最良の方法は何ですか?groovyを使用したjenkinsのyamlファイルを作成する
私のjenkinsパイプラインジョブ内のyamlファイルに保持されているバージョンを変更したいと思います。 readYaml
でコンテンツを手に入れることができますが、もう一度書き直すにはどうすればいいですか?
私の頭に浮かぶのは、ファイルにsed
をすることです。しかし、私はそれほど正確ではないと思う。
yamlファイルのバージョンを更新するだけであれば、コンテンツを読み込み、文字列を置き換えてファイルに書き戻すことができます。 src/test/resources
がどのように見えるファイルversion.yaml
含まれているとし
:例として
は、ここにこれを示しユニットテストだPipeline Utility StepsプラグインがreadYaml
を持って
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
}
はと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
の
可能な複製([グルーヴィーな負荷YAMLファイルを変更し、ファイルに書き込む] http://stackoverflow.com/questions/34668930/groovy-load-yaml-file-modify-and-write-it -in-a-file) – Rao
IMHO JenkinsプラグインのreadYamlメソッド – dhpizza
と同じではないので、重複していません。 "パイプラインユーティリティステップ"という名前の最近のjenkinsプラグインには、 'readYaml'(yamlファイルをオブジェクトに読み込む) 'writeYaml'はオブジェクトをとり、yamlファイルとして書き出します。 –