Я пытаюсь создать конвейер непрерывного развертывания, в котором тесты будут выполняться на любом узле, но условное развертывание должно выполняться на определенном узле.
Развертывание должно выполняться только тогда, когда активная ветвьmaster.
Пример кода:
pipeline {
agent any
stages {
stage('Test') {
agent { label 'nodes' }
steps {
sh ''' # code to run tests '''
}
}
stage('Deploy') {
when {
branch 'master'
}
agent { label 'specific-node' }
steps {
sh ''' # code to deploy '''
}
}
}
Проблема заключается в том, что этап развертывания не нужно запускать на 90% прогонов (запросы на извлечение), но условие оцениваетсяна specific-node
, поэтому он становится узким ресурсом.
Есть ли способ оценить условие на главном или на предыдущем узле и запустить следующий этап на specific-node
только тогда, когда это действительно необходимо?