Jenkins声明性管道:发布脚本条件

时间:2018-04-18 17:00:07

标签: jenkins jenkins-pipeline

我有一个声明性的Jenkins管道。 我希望在" post"中有条件。构建部分。

是否有可能拥有"脚本块"在jenkins文件的帖子部分?

当我这样说时,不会发生错误,但不会发送hipchat消息。即使说"如果是主分支,hipchatSend,否则hipchatSend",也不会发送短信消息。哎呀,如果我用" echo"取代hipchatSend声明,也没有任何反应。

post {
  always {
    script {
      if (env.BRANCH_NAME == "master") {
        hipchatSend color: 'RED', credentialId: 'HipChat-Jenkins-Token',
                    message: 'I am master branch',
                    room: 'Master-Commit-Room,',
                    sendAs: '', 
                    server: '',
                    v2enabled: true
      }
      if (env.BRANCH_NAME == "release/my-release") {
        hipchatSend color: 'RED', credentialId: 'HipChat-Jenkins-Token',
                    message: 'I am release branch',
                    room: 'Release-Commit-Room,',
                    sendAs: '',
                    server: '',
                    v2enabled: true
      }
    }
  }
}

2 个答案:

答案 0 :(得分:0)

使用when

stage('Deploy') {
        when { branch 'master' }
        steps {
            sh './docker-commands.sh deploy || exit 1'
        }
    }

以下是更多examples如何使用when

答案 1 :(得分:0)

我已经建立了Jenkins声明性管道,可以按照您所描述的方式在帖子部分成功使用脚本块。

示例:

post {
    always {
        script {
            // arbitrary script code runs successfully here
        }
    }
}

...,它按预期工作。您是否已验证自己的if条件评估是否符合预期?

注意:我正在使用Jenkins 2.138.2上的“管道:声明性”插件(idpipeline-model-definition)版本1.3.2)。