Разрешение имени параметра jenkinsfile во время выполнения - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть ниже стадии в jenkinsfile, где имя параметра получено из значения для цикла "i": Как интерполировать во время выполнения значение параметра, полученное во время выполнения

stage ('Create new part'){
          steps {
             script{
                 sh "mkdir ${WORKSPACE}/inventories && touch ${WORKSPACE}/inventories/hosts"
                  for (i in (["db", "pr", "pl", "ad", "lo", "log", "jm", "se", "fo", "me", "he"]) ) {
                       if ("${params."'$i'_instances"}" == "3" && "${params."'$i'_disksize"}" > "80") {
                          sh "echo 'Entered if loop'" 
                          sh "echo '['$i'-servers]'>> ${WORKSPACE}/inventories/hosts"
                          for (j=1; j<=params.$i_instances; j++) {
                              sh "echo '${params.project_name}-${params.environment_name}-${$i_prefix}-$j target_fs="${params.$i_FS_TYPE}" percentage_fs="{params.$i_fs_percentage}"' >> ${WORKSPACE}/inventories/hosts"
                            }
                         }   
                   }
                }
            }
          }

1 Ответ

2 голосов
/ 06 ноября 2019

Одинарные кавычки вокруг строк Groovy предотвращают интерполяцию. Вместо этого используйте if (params."${i}_instances" == "3" && params."${i}_disksize" != "80").

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...