С Jenkins Pipeline вы можете легко распределять рабочие задания между любым количеством агентов с помощью секции parallel
. Пример Jenkinsfile
выполнения того, что вы хотели, может выглядеть так:
pipeline {
agent none
stages {
stage('Tests') {
parallel {
stage('Tests1') {
agent { label 'slave1' }
steps {
echo "tests part 1"
}
}
stage('Tests2') {
agent { label 'slave2' }
steps {
echo "tests part 2"
}
}
}
}
}
}
Для более сложного сценария ios вы можете добавить matrix
секцию в сочетании с помеченными агентами.
Предположим, у вас есть несколько рабов Jenkins с пометкой 'test-runner'
, и вы разбили свои тесты на 10 частей. С matrix
вы можете запускать до 10 задач одновременно (ограничено количеством агентов):
pipeline {
agent none
stages {
stage('Distribute Tests') {
matrix {
axes {
axis {
name 'PART'
values '1', '2', '3', '4', '5', '6', '7', '8', '9', '10'
}
}
stages {
stage('Tests') {
agent { label 'test-runner' }
steps {
echo "tests part ${PART}"
}
}
}
}
}
}
}