Это релевантная часть моего Jenkinsfile
def splitNBTests = NB_TESTS.split("\n").toList().collate(7)
println(splitNBTests)
if (!params.runCukes) {
echo "SKIPPING NEW BUSINESS RUN IN OZ JOB DUE TO DISABLED PARAMETER"
} else {
SUITE_RUN_ID = UUID.randomUUID().toString()
def commands = splitNBTests.collect { def testsForNode ->
createCmdLineForCukes(testsForNode, PROFILE)
}
try {
TAGS = '"@regression ~@wip"'
SCENARIO_COUNT = "${DIRECTORY_CHANGE} && bundle && bundle exec rake run_scenario_count[${TAGS},${PROFILE}] SUITE_RUN_ID=${SUITE_RUN_ID}"
sh(returnStdout: true, script: SCENARIO_COUNT)
def stepsForParallel = [:]
commands.toList().eachWithIndex { def myCommand, int i ->
stepsForParallel["RunTests${i}"] = {
stage("RunTests${i}") {
node {
label 'grange-jenkins-slave'
sh("mount -a")
sh(myCommand)
}
}
}
}
parallel stepsForParallel
У меня есть мастер Jenkins на Кубернетесе с плагином Kubernetes для динамического масштабирования подчиненных модулей.Для нашего текущего прогона регрессии это может привести к примерно 24 узлам, если мы запустим по 7 тестов на каждом, но пока мы ограничиваем его одновременным запуском до 10.
«Белый список», о котором я говорил, находился подУтверждение сценария в процессе.В настоящее время у меня установлено значение staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods getAt java.lang.Object java.lang.String
.
Я предполагаю, что это должно быть заблокировано немного больше.Советы приветствуются.Я пришел в Groovy из Ruby и взломал это вместе с минимальным временем, чтобы по-настоящему выучить Groovy.Я скажу, что это было достаточно похоже, и было определенно полезно получить помощь от сообщества Groovy, чтобы я мог узнать о Groovy, эквивалентном #each_slice
в Ruby, #collate
.Спасибо!