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