我使用中的rawBuild实例找到了以下解决方案currentBuild。由于我们无法找到原因的类别,因此我们只需要验证其字符串值即可。
def replayClassName = "org.jenkinsci.plugins.workflow.cps.replay.ReplayCause?"
def isReplay = currentBuild.rawBuild.getCauses().any{ cause -> cause.toString().contains(replayClassName) }
Run Code Online (Sandbox Code Playgroud)
此解决方案适用于Jenkins和Blue-Ocean。Jenkins声明性管道是关于如何获得此答案的参考:找出触发工作
使用此步进条件就像一个魅力!
您可以定义一个共享库,例如 jenkins.groovy
def isBuildAReplay() {
// /sf/ask/3608913731/#52302879
def replyClassName = "org.jenkinsci.plugins.workflow.cps.replay.ReplayCause"
currentBuild.rawBuild.getCauses().any{ cause -> cause.toString().contains(replyClassName) }
}
Run Code Online (Sandbox Code Playgroud)
您可以在Jenkins管道中重用它
stage('Conditional Stage') {
when {
expression { jenkins.isBuildAReplay() }
}
steps {
...
...
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
595 次 |
| 最近记录: |