Jenkinfile 当 env.JOB_NAME 的条件

eek*_*nky 5 linux jenkins-pipeline

我有一个Jenkinsfile我想基于env.JOB_NAME. 作为测试,我已经这样做了;

#!/usr/bin/env groovy
pipeline {
    agent any
     stages {  
      stage('Get ID') {
          when {
              "${env.JOB_NAME}" == 'Notification Sender (dev)'
          }
       steps {
       echo "${env.JOB_NAME}"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但是我得到了错误;

WorkflowScript: 6: Expected a when condition @ line 6, column 11.
             when {
             ^

WorkflowScript: 6: Empty when closure, remove the property or add some content. @ line 6, column 11.
             when {
             ^
Run Code Online (Sandbox Code Playgroud)

我可以根据env.JOB_NAME使用when条件来运行阶段吗?

Dez*_*zza 8

是的你可以。

尝试以下

when {
     expression {
         env.JOB_NAME == 'Notification Sender (dev)'
     }
}
Run Code Online (Sandbox Code Playgroud)

流水线语法页面上有完整的文档,但相关部分是

expression 当指定的 Groovy 表达式计算结果为 true 时执行阶段,例如:when { expression { return params.DEBUG_BUILD } }