Условная стадия трубопровода Дженкинса с использованием «Когда» для выбора параметров - PullRequest
0 голосов
/ 17 мая 2018

Я пытаюсь построить конвейер Дженкинса, где у меня есть параметр выбора с n вариантами выбора, и я хочу создать stage, который делает что-то, когда выбираются некоторые значения из параметра выбора. У меня есть что-то вроде ниже, но не похожеработать.

#!/usr/bin/env groovy

pipeline {

agent any

    parameters {

        choice(
                choices: 'a\nb\n\c\n\d\ne\nf',
                description: 'name of the student',
                name: 'name'
        )
    }
 stages {
       stage ('callNames') {

        when {
             expression { params.name == 'a|d|f' }
        }
        steps{
        echo "selected name is: ${name}"
        //do something

            }
        }        
    }
}

Итак, я хочу do something, когда выбранные значения параметра name равны a или d из f. Выше я не получаю ошибок, но яЯ вижу это в выводе консоли

Stage 'callNames' skipped due to when conditional, когда я выбираю значение a/d/f во время сборки

Пожалуйста, дайте мне знать, чего здесь не хватает Заранее спасибо

1 Ответ

0 голосов
/ 17 мая 2018

Ваше выражение when содержит ошибку.Если значение name вашего параметра равно 'a', вы сравниваете строки 'a' == 'a|d|f' в своем коде, которые равны false.

Вы, вероятно, хотите сделать

when {
    expression { 
        params.name == 'a' ||
        params.name == 'd' ||
        params.name == 'f' 
    }
}

Или, если вы предпочитаете oneliner, вы можете использовать регулярное выражение

when {
    expression { 
        params.name ==~ /a|d|f/
    }
}
...