03/04/2025

Jenkins döngü ile stage olusturmak

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}
               """
               }
        }
    }