emm*_*dee 5 jenkins jenkins-pipeline multibranch-pipeline
使用Jenkins 多分支流水线作业时,如果您Suppress Automatic SCM trigger在作业中选择,它将在索引分支后停止构建作业(强大的功能)。
然而,出于某种原因,这也会终止从 SCM 事件触发构建的能力!
有什么方法可以阻止构建在分支发现(分支索引)后触发,但仍然通过 SCM 事件正常构建?
您始终可以向管道添加逻辑以在分支索引原因中止。例如:
boolean isBranchIndexingCause() {
def isBranchIndexing = false
if (!currentBuild.rawBuild) {
return true
}
currentBuild.rawBuild.getCauses().each { cause ->
if (cause instanceof jenkins.branch.BranchIndexingCause) {
isBranchIndexing = true
}
}
return isBranchIndexing
}
Run Code Online (Sandbox Code Playgroud)
调整逻辑以适合您的用例。
编辑: Jenkins UI 中嵌入的管道语法 > 全局变量参考(例如<jenkins url>/job/<pipeline job name>/pipeline-syntax/globals:)包含有关 currentBuild 全局变量的信息,这导致了一些 javadoc:
currentBuild 变量属于RunWrapper类型,可用于引用当前正在运行的构建。它具有以下可读属性:
...
原始构建:
带有更多 API的 hudson.model.Run ,仅适用于沙箱外的受信任库或管理员批准的脚本;该值将不可序列化,因此您只能在标记为 @NonCPS 的方法中访问它
...
另见:jenkins.branch.BranchIndexingCause
| 归档时间: |
|
| 查看次数: |
4722 次 |
| 最近记录: |