#jenkins #jenkins-pipeline #jenkins-plugins
Вопрос:
У меня есть декларативный конвейер Дженкинса, в котором я заинтересован в том, чтобы иметь возможность выполнять этап только в том случае, если конкретная переменная среды содержит определенную подстроку(не полностью равна ей, просто содержит ее). У кого-нибудь есть какие-либо идеи о том, как я могу это реализовать(возможно, используя условие «когда», если это возможно).
Заранее спасибо, Алон
Ответ №1:
Как вы упомянули, в декларативном конвейере вы можете использовать директиву when для определения условия, в котором будет выполняться этап.
Среди встроенных параметров условий , таких как triggeredBy
, branch
и tag
есть общая expression
опция, которая позволяет запускать любой заводной код и вычислять соответствующее логическое значение в соответствии с вашими потребностями.
Так что, например, в вашем случае вы можете просто использовать отличные contains
методы для достижения того, чего вы хотите, что-то вроде:
pipeline {
agent any
stages {
stage('Conditional Stage') {
when {
expression { return env.MyParamter.contains('MySubstring') }
}
steps {
echo "Running the conditional stage"
}
}
}
}