Groovy에서 * .yaml 파일을 쓰거나 수정하는 가장 좋은 방법은 무엇입니까?groovy로 jenkins에 yaml 파일 작성
제 젠킨스 파이프 라인 작업 내에서 yaml 파일에 유지 관리되는 버전을 수정하고 싶습니다. readYaml
으로 콘텐츠를 얻을 수는 있지만 어떻게 다시 쓸 수 있습니까?
내 마음에 오는 한 가지 방법은 파일에 sed
을하는 것입니다. 그러나 나는 그다지 정확하지 않다고 생각한다.
Groovy에서 * .yaml 파일을 쓰거나 수정하는 가장 좋은 방법은 무엇입니까?groovy로 jenkins에 yaml 파일 작성
제 젠킨스 파이프 라인 작업 내에서 yaml 파일에 유지 관리되는 버전을 수정하고 싶습니다. readYaml
으로 콘텐츠를 얻을 수는 있지만 어떻게 다시 쓸 수 있습니까?
내 마음에 오는 한 가지 방법은 파일에 sed
을하는 것입니다. 그러나 나는 그다지 정확하지 않다고 생각한다.
yaml 파일에서 버전을 업데이트하기 만하면 내용을 읽고 문자열을 바꾸고 파일에 다시 쓸 수 있습니다.
한다고 가정 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
}
Pipeline Utility Steps 플러그인이를 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
의
가능한 복제 ([그루비로드 YAML 파일을 수정하고 파일에 쓰기] http://stackoverflow.com/questions/34668930/groovy-load-yaml-file-modify-and-write-it -in-a-file) – Rao
IMHO Jenkins 플러그인의 readYaml 메소드 – dhpizza
과 동일한 것이 아니기 때문에 복제본이 아닙니다. "파이프 라인 유틸리티 단계"라는 최근 jenkins 플러그인에는 yaml 파일을 오브젝트로 읽는 readYaml과 그리고 객체를 가져 와서 yaml 파일로 쓰는'writeYaml'. –