Diyelim ki elimizde bir Json datasi var ve icinden belirli bir özellige göre pipeline calistircaz.
"urun": {
"veri1": "test",
"cesitler": {
"tip1": {
"enabled": true,
"ozellik": "blabup",
"ayar": "bladup"
},
"tip2": {
"enabled": true,
"ozellik": "blabup2",
"ayar": "bladup2"
},
Bunu kullanarak her bir tip icin stage olusturacagiz ilerde tip sayisini arttirinca veya bir yerden okuyunca da bu dinamik olarak degisecek.
Önce json dosyasini groovy ile okuyoruz ve bir TipList olusturuyoruz.
script {
def jsonContent = readJSON file: "${rootDir}/urun.json"
def enabledTipler = jsonContent.urun.cesitler.findAll {it.value.enabled }.collect {it.key}
enabledTipler.each { cesitler ->
stage("Uret ${cesitler}"){
//Business logic goes here
def tipOzelligi= jsonContent.urun.cesitler[cesitler].ozellik
def tipAyari= jsonContent.urun.cesitler[cesitler].ayar
sh """
export Ozellik=${tipOzelligi}
export AYAR=${tipAyari}
"""
}
}
}