
的确,您当前不能
when在全局post块中使用。
When必须在stage指令内使用。
使用是一种合理的选择
if else,但是您需要在声明性管道中使用脚本编写的块来完成此工作:
pipeline { agent any parameters { string(defaultValue: "master", description: 'Which branch?', name: 'BRANCH_NAME') } stages { stage('test'){ steps { echo "my branch is " + params.BRANCH_NAME } } } post { success{ script { if( params.BRANCH_NAME == 'master' ){ echo "mail list master" } else { echo "mail list others" } } } }}参数为master时输出:
[Pipeline] {[Pipeline] stage[Pipeline] { (test)[Pipeline] echomy branch is master[Pipeline] }[Pipeline] // stage[Pipeline] stage[Pipeline] { (Declarative: Post Actions)[Pipeline] script[Pipeline] {[Pipeline] echomail list master[Pipeline] }[Pipeline] // script[Pipeline] }[Pipeline] // stage[Pipeline] }[Pipeline] // node[Pipeline] End of PipelineFinished: SUCCESS参数为“ test”时输出:
[Pipeline] {[Pipeline] stage[Pipeline] { (test)[Pipeline] echomy branch is test[Pipeline] }[Pipeline] // stage[Pipeline] stage[Pipeline] { (Declarative: Post Actions)[Pipeline] script[Pipeline] {[Pipeline] echomail list others[Pipeline] }[Pipeline] // script[Pipeline] }[Pipeline] // stage[Pipeline] }[Pipeline] // node[Pipeline] End of PipelineFinished: SUCCESS为了使它更加简洁,您可以将脚本作为函数调用:
pipeline { agent any parameters { string(defaultValue: "master", description: 'Which branch?', name: 'BRANCH_NAME') } stages { stage('test'){ steps { echo "my branch is " + params.BRANCH_NAME } } } post { success{ getMailList(params.BRANCH_NAME) } }}def getMailList(String branch){ if( branch == 'master' ){ echo "mail list master" } else { echo "mail list others" }}欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)