首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在jenkinsfile中指定分支何时不是(分支名称)?

如何在jenkinsfile中指定分支何时不是(分支名称)?
EN

Stack Overflow用户
提问于 2017-04-24 09:41:05
回答 2查看 54.4K关注 0票数 58

如何在我的Jenkinsfile中指定类似以下内容?

当分支不是x时

我知道如何指定分支特定任务,如:

代码语言:javascript
复制
stage('Master Branch Tasks') {
        when {
            branch "master"
        }
        steps {
          sh '''#!/bin/bash -l
          Do some stuff here
          '''
        }
}

但是,当分支不是master或staging时,我想指定一个阶段,如下所示:

代码语言:javascript
复制
stage('Example') {
    if (env.BRANCH_NAME != 'master' && env.BRANCH_NAME != 'staging') {
        echo 'This is not master or staging'
    } else {
        echo 'things and stuff'
    }
}

但是,上述方法不起作用,并失败,并显示以下错误:

代码语言:javascript
复制
WorkflowScript: 62: Not a valid stage section definition: "if 

WorkflowScript: 62: Nothing to execute within stage "Example" 

我失败尝试的注解来源:https://jenkins.io/doc/book/pipeline/syntax/#flow-control

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-10 16:30:15

解决此issue后,您现在可以执行以下操作:

代码语言:javascript
复制
stage('Example (Not master)') {
   when {
       not {
           branch 'master'
       }
   }
   steps {
     sh 'do-non-master.sh'
   }
}
票数 87
EN

Stack Overflow用户

发布于 2017-04-24 20:10:56

你的文章中的链接显示了一个带有脚本管道语法的示例。您的代码使用声明性管道语法。要在声明性中使用脚本化管道,您可以使用脚本步骤。

代码语言:javascript
复制
stage('Example') {
    steps {
        script { 
            if (env.BRANCH_NAME != 'master' && env.BRANCH_NAME != 'staging') {
                echo 'This is not master or staging'
            } else {
                echo 'things and stuff'
            }
        }
    }
}
票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43578528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档