如何区分 Jenkins Pipeline 中的构建触发器

2024-01-21

我希望在我的 Jenkinsfile 中添加一个条件阶段,该阶段根据构建的触发方式运行。目前我们的设置是通过以下方式触发构建:

  1. 对我们的 git 存储库的更改在分支索引中获取
  2. 用户使用 UI 中的“立即构建”按钮手动触发构建。

有没有办法根据这些操作触发构建来运行不同的管道步骤?


在詹金斯管道中没有currentBuild.rawBuild可以通过以下方式检索访问构建原因:

// started by commit
currentBuild.getBuildCauses('jenkins.branch.BranchEventCause')
// started by timer
currentBuild.getBuildCauses('hudson.triggers.TimerTrigger$TimerTriggerCause')
// started by user
currentBuild.getBuildCauses('hudson.model.Cause$UserIdCause')

您可以通过以下方式获取布尔值:

isTriggeredByTimer = !currentBuild.getBuildCauses('hudson.triggers.TimerTrigger$TimerTriggerCause').isEmpty()

Or, as getBuildCauses() https://javadoc.jenkins.io/plugin/workflow-support/org/jenkinsci/plugins/workflow/support/steps/build/RunWrapper.html#getBuildCauses--返回一个数组,该数组的大小将与 Groovy true 语义一起正常工作:

if (currentBuild.getBuildCauses('hudson.triggers.TimerTrigger$TimerTriggerCause')) {
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何区分 Jenkins Pipeline 中的构建触发器 的相关文章

随机推荐