параметр выбора внутри декларативного конвейера параллельной стадии - PullRequest
0 голосов
/ 30 мая 2020

Я не могу повторить эхо A или B или C при использовании условия в параллельном блоке. Я использовал для этого параметры выбора.

Он работает, когда я использую глобальные параметры, но я хочу использовать его на одном этапе.

Конвейер:

pipeline {
    agent any
    parameters {
      choice choices: ['Dev', 'QA'], description: 'Make a choice', name: 'CLICK'
    }    
    stages {


      stage('Dev') {
        when { expression { params.CLICK == 'DEV' } }
        steps {
          echo "Dev"
        }
      }

      stage('QA') {
        when { expression { params.CLICK == 'QA' } }
        input {
            message "Choose appropriate Test?"
            parameters {
                choice choices: ['MobileAPP', 'FrontEnd', 'BankEnd'], description: 'Make a choice', name: 'CLICK1'
            }
        }  
        parallel {
            stage('A') {
                when {
                    expression { params.CLICK == 'MobileAPP' }
                }
                steps {
                  echo "A"
                } 
            }
            stage('B') {
                when {
                    expression { params.CLICK == 'FrontEnd' }
                }
                steps {
                  echo "B"
                } 
            }
            stage('C') {
                when {
                    expression { params.CLICK == 'BackEnd' }
                }
                steps {
                  echo "C"
                } 
            }
        }
      }
    }
}

Неправильный вывод:

enter image description here

1 Ответ

0 голосов
/ 30 мая 2020

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

  stage('QA') {
    when { expression { params.CLICK == 'QA' } }
      steps {
        script {
           CHOICES = ['MobileAPP', 'FrontEnd', 'BankEnd'];    
                    env.CLICK1 = input  message: 'Choose appropriate Test?',ok : 'Deploy',id :'tag_id', parameters:[choice(choices: CHOICES, description: 'Make a choice', name: 'Select')]
                } 

            }
    }  
    parallel {
        stage('A') {
            when {
                expression { env.CLICK == 'MobileAPP' }
            }
            steps {
              echo "A"
            } 
        }
        stage('B') {
            when {
                expression { env.CLICK == 'FrontEnd' }
            }
            steps {
              echo "B"
            } 
        }
        stage('C') {
            when {
                expression { env.CLICK == 'BackEnd' }
            }
            steps {
              echo "C"
            } 
        }
    }
  }
}
...