Я работаю по сценарию jenkins, чтобы отключить среды в наших облачных провайдерах. Поскольку среды независимы друг от друга, я хочу выполнить их параллельно.
Вот код:
def environmentsArray=["ZULI-TestCenter", "ZULI-FinanceCenter"]
node("someNode") {
def parEx = [:]
for (def item : environmentsArray) {
def environment = item
parEx[environment]= {
// Identify environments
environmentLowerCase = environment.split('-')[0].toLowerCase()
appNameLowerCase = environment.split('-')[1].toLowerCase()
stage("...) {
}
stage("...") {
}
} // End of parEx
} // End of for
parallel parEx
} // End of node
К сожалению, значения environmentLowerCase
и appNameLowerCase
не обновляются за итерацию, т.е. они всегда имеют одинаковое значение:
[Pipeline] { (STOPPING DMS tasks: ZULI-TestCenter) // correct
[Pipeline] stage
[Pipeline] { (STOPPING DMS tasks: ZULI-FinanceCenter) // correct
[Pipeline] echo
zuli, financecenter // wrong, should be testcenter
[Pipeline] withCredentials
[Pipeline] echo
zuli, financecenter // correct
Что я делаю не так?