[英]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.