Script Jenkins Pipeline / Groovy com variáveis indefinidas
Estou tentando converter meu grande trabalho Jenkins de várias configurações em sintaxe de pipeline, para que eu possa, entre outras coisas, dividi-lo em vários nós e combinar meus vários estágios em um único trabalho. Aqui está a parte em que estou tendo problemas:
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
Meu problema é que${compilers[j]
e$configs[i]
são indefinidos quando chego à parte em que estou tentando criar um dicionário debuild_test_configs
na linha 13. Parece que a verificação na linha 8 está funcionando muito bem.
Não tenho uma mensagem de erro propriamente dita. O script não produz nenhum erro de tempo de execução. A saída inesperada é que os nomes dos estágios são:
Teste de construção node001 null nullTeste de construção node001 null nullTeste de compilação node002 null nullE anightly.sh
script está sendo passadonull
parâmetros também.