声明式管道

时间:2019-01-06 01:57:23

标签: groovy jenkins-pipeline

我需要执行jenkinsfile的不同行为,例如:

  • 如果构建将手动触发,则jenkinsfile执行直到构建 舞台和
  • 如果通过更改scm / timer来触发构建,则需要 执行所有阶段。

我是Jenkins文件的新手(groovy脚本),所以任何人都可以请我在哪里以及如何在Jenkins文件中应用条件。请给我一个条件相同的例子

Jenkinsfile

pipeline{
agent any

stage('Checkout'){

     checkout(scm)
 }
 stage('build'){
 echo "build is success"
 }
 stage('deploy'){
 echo " deployment successfully completed "
}
stage('email notify'){
emailext attachLog: true, body: 'job $job has been triggered', compressLog: true, subject: 'Email notification', to: 'mail id'
}
}

1 个答案:

答案 0 :(得分:0)

您可以使用when指令:https://jenkins.io/doc/book/pipeline/syntax/#when

对诸如currentBuild.rawBuild.getCauses()[0].toString().contains('UserIdCause')之类的东西进行补充,一个阶段将运行(无论您是否确定),如果该结果为true

这应该有效:

 when {
            expression { return currentBuild.rawBuild.getCauses()[0].toString().contains('UserIdCause') }
}

语法文件中还包含以下内容:

when {
            triggeredBy "TimerTrigger"
        }