Ниже приведен сценарий Jenkins groovy для передачи артефактов в Cloud Foundry.
stage('stage_1'){
if (repoName == 'a'){
pushA(repoName)
}
else if(repoName == 'b'){
pushB(repoName)
}
else if (repoName == 'c'){
pushC(repoName)
}else if (repoName == 'd'){
pushD(repoName)
}else if (repoName == 'e'){
pushE(repoName)
}
}
Это отдельный файл сценария Jenkins groovy, написанный с использованием параметра ниже, с подключением к сети из нескольких репозиториев GitLab:
Почему pushA / pushB?потому что каждый push имеет свой собственный файл манифеста
Как избежать else..if
запаха кода?
Предлагаете ли вы хэш-карту с repoName
в качестве ключа?
, если да, как зарегистрировать метод pushX()
во время запуска сценария?В python мы используем регистрационный декоратор (запускаемый во время импорта) для обновления словаря commands
, как показано ниже: