簡體   English   中英

Jenkins 聲明式管道:發布腳本條件

[英]Jenkins declarative pipeline: post script conditions

我有一個聲明性的 Jenkins 管道。 我想在構建的“發布”部分有一個條件。

jenkins 文件的帖子部分是否可以有“腳本塊”?

當我這樣說時,沒有錯誤發生,但沒有發送hipchat消息。 即使說“如果 master 分支,hipchatSend,else hipchatSend”,也不會發送 hipchat 消息。 哎呀,如果我用“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
      }
    }
  }
}

我已經設置了 Jenkins 聲明性管道,它按照您描述的方式成功地使用了 post 部分中的腳本塊。

例子:

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

...它按預期工作。 您是否已驗證您的 if 條件是否按預期評估?

注意:我在 Jenkins 2.138.2 上使用了“管道:聲明性”插件(id 管道模型定義)版本 1.3.2)。

使用when

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

這里有更多的例子如何使用when

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM