Возможно, мне нужно сделать шаг назад и переосмыслить весь процесс, через который я прохожу. Я с трудом нахожу советы по преобразованию сложной многоконфигурационной работы в конвейер.

аюсь преобразовать мою большую работу по конфигурированию Jenkins в конвейерный синтаксис, чтобы я мог, среди прочего, разделить ее на несколько узлов и объединить несколько этапов в одну работу. Вот та часть, где я вижу проблемы:

def build_test_configs = [:]
def compilers = ['gnu', 'icc']
def configs = ['debug', 'default', 'opt']

for (int i = 0; i < configs.size(); i++) {
    for (int j = 0; j < compilers.size(); j++) {
        def node_name = ""
        if ("${compilers[j]}" == "gnu") {
            node_name = "node001"
        } else {
            node_name = "node002"
        }
        build_test_configs["${node_name} ${configs[i]}"] = {
            node ("${node_name}") {
                stage("Build Test ${node_name} ${compilers[j]} ${configs[i]}") {
                    unstash "${node_name}-tarball"
                    sh "$HOME/software/jenkins_scripts/nightly.sh ${configs[i]} ${compilers[j]} yes $WORKSPACE"
                }
            }
        }
    }
}

parallel build_test_configs

Моя проблема в том что${compilers[j] а также$configs[i] не определены, когда я добираюсь до той части, где я пытаюсь создать словарьbuild_test_configs в строке 13. Похоже, что проверка в строке 8 работает просто отлично.

Обновить

У меня нет сообщения об ошибке как такового. Скрипт не выдает никаких ошибок во время выполнения. Неожиданным результатом является то, что названия этапов:

Тестирование сборки node001 null nullТестирование сборки node001 null nullТест сборки узла002 null null

Иnightly.sh сценарий проходитnull параметры также.

Ответы на вопрос(1)

Ваш ответ на вопрос