Дженкинс, многоотраслевой конвейер: как перебирать карту параметров - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть многоотраслевой конвейер в Дженкинсе.Я определил несколько флажков (более 20) для каждого параметра, который будет передаваться в сценарий, который затем запускает мое приложение и запускает соответствующий тестовый пример (это может быть не оптимальным решением, но эта структура была создана до того, как я начал работать в текущей компании, и яя не собираюсь его реорганизовывать):

booleanParam(name: 'cluster_number', defaultValue: false, description: '')
booleanParam(name: 'post_cluster_wu', defaultValue: false, description: '') 
etc.

Мне нужно собрать выбор пользователя для каждого флажка (true-false).Я бы предпочел сделать это в цикле, например:

sh """

for (element in params) {
// testing:
    echo "${element.key} ${element.value}"
}
"""

, но постоянно получаю сообщение об ошибке:

[Pipeline] End of Pipeline
groovy.lang.MissingPropertyException: No such property: element for class: groovy.lang.Binding
    at groovy.lang.Binding.getVariable(Binding.java:63)
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:264)
    at org.kohsuke.groovy.sandbox.impl.Checker$6.call(Checker.java:288)

Также пытался поместить цикл вне сценария оболочки.Пока не повезло.

steps {
        echo "username: ${params.OWNER_USERNAME}"

        for (element in params) {
            echo "${element.key} ${element.value}"
        }
...

Интересно, кто-нибудь смог бы просмотреть циклы?Заранее спасибо!

1 Ответ

0 голосов
/ 05 декабря 2018

Это работает:

pipeline {
    agent any
    parameters {
        booleanParam(name: 'alpha', defaultValue: true)
        booleanParam(name: 'beta', defaultValue: true)
        booleanParam(name: 'gamma', defaultValue: false)
    }
    stages {
        stage('only') {
            steps {
                script {
                    params.keySet().each {
                        echo "The value of the ${it} parameter is: ${params[it]}"
                    }
                }
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...