Jenkins高階篇之Pipeline方法篇-Pipeline Utility Steps-4-方法readYaml和writeYaml
本篇繼續來介紹Pipeline Utility Steps這個外掛支援的特定的方法,前面介紹了讀取JSON和讀properties檔案,這篇來介紹讀寫yaml型別檔案。讀取yaml的方法是readYaml,寫yaml檔案的方法是writeYaml,yaml配置型別檔案在linux系統中還是很常見的。
1.方法readYaml
我在Eclipse專案中的/testdata目錄下,提前做好了一個test.yaml的檔案,並寫入如下資料並儲存。
name: 'Anthony'
age : 18
city: 'Beijing'
isMale: true
module方法中readYaml方法,我寫了支援引數傳入的是一個yaml檔案路徑和直接傳入一個yaml格式的字串內容。這個module裡面完整的方法,請看replay指令碼框或者github上程式碼。
def read_yaml_file(yaml_file) {
def datas = ""
if(yaml_file.toString().endsWith(".yml")){
datas = readYaml file : yaml_file
}else {
datas = readYaml text : yaml_file
}
datas.each {
println ( it.key + " = " + it.value )
}
}
看到沒,上面我為了列印讀取的yaml內容,再次使用了groovy語言中的閉包語法,直接遍歷裡面元素的key和value。
我的pipeline stage 測試程式碼
import hudson.model.*; println env.JOB_NAME println env.BUILD_NUMBER pipeline{ agent any stages{ stage("init") { steps{ script{ model_test = load env.WORKSPACE + "/pipeline/module/pipeline-demo-module.groovy" } } } stage("read yaml file") { steps{ script{ yaml_file = env.WORKSPACE + "/testdata/test.yml" model_test.read_yaml_file(yaml_file) println "==========================" yaml_string = """ age: 18 city: 'Shanghai' isMale: false name: 'Lucy' """ model_test.read_yaml_file(yaml_string) } } } } }
關於上面這個文件註釋符裡面的yaml格式內容,我要特意指出這裡不能用tab來代替鍵盤空格鍵產生的空格,不然就會報錯。
我的Jenkins測試job:http://65.49.216.200:8080/job/pipeline-project-demo/57/
或者http://65.49.216.200:8080/job/pipeline-project-demo/54/
2.方法writeYaml
繼續介紹寫yaml方法,下面介紹如何把一個字典型別資料寫入到yaml檔案中。
module方法
def write_to_yaml(map_data, yaml_path) {
writeYaml file: yaml_path , data: map_data
}
pipeline stage test程式碼
import hudson.model.*;
println env.JOB_NAME
println env.BUILD_NUMBER
pipeline{
agent any
stages{
stage("init") {
steps{
script{
model_test = load env.WORKSPACE + "/pipeline/module/pipeline-demo-module.groovy"
}
}
}
stage("write into yaml file") {
steps{
script{
def amap = [name: 'Anthony',
age : 18,
city: 'Beijing',
isMale: true
]
yaml_file = env.WORKSPACE + "/testdata/new.yml"
model_test.write_to_yaml(amap, yaml_file)
println "the contents of yaml file are: "
model_test.read_yaml_file(yaml_file)
}
}
}
}
}
我的Jenkins 成功構建測試job:http://65.49.216.200:8080/job/pipeline-project-demo/59/console
看這個日誌列印就說明了寫入到yaml檔案成功,或者你去自己jenkins構建的workspace下找到這個./testdata/new.yaml檔案,驗證裡面的內容。
好了到這裡,關於Pipeline Utility Steps這個外掛的常用方法學習,介紹到這裡。這個外掛的官方網頁地址是https://jenkins.io/doc/pipeline/steps/pipeline-utility-steps/
我已經介紹了這個外掛裡面一半以上方法,如下圖紅圈方法是我們前面介紹過的。
關於pipeline上不同外掛支援不同方法,你可以開啟這個頁面檢視https://jenkins.io/doc/pipeline/steps/。
我也就是介紹一些基礎常用的外掛以及方法,其他可能是專案需要,到時候自己再跑過去看文件學習就可以。接下來,我要介紹在安裝pipeline元件的時候,自動安裝一個元件裡面的方法,Pipeline:Basic Steps,這個方法你可以到外掛管理,已安裝介面看到。
也就是說,接下來學習的Basic Steps外掛裡面的方法,最好你都要掌握。只有basic steps裡面方法不夠用的時候,你才要考慮其他外掛的方法。到這裡,確實,我寫文章順序有點問題,應該先介紹basic steps外掛下的方法。但是,前面外掛學習應該也不難,有了這個基礎,學習basic steps下的方法應該也是很容易。