Как запустить условный этап Jenkins Pipeline на конкретном узле? - PullRequest
0 голосов
/ 22 мая 2019

Я пытаюсь создать конвейер непрерывного развертывания, в котором тесты будут выполняться на любом узле, но условное развертывание должно выполняться на определенном узле.

Развертывание должно выполняться только тогда, когда активная ветвь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 только тогда, когда это действительно необходимо?

...