我希望我的Jenkins多分支管道工作避免触发自身。作业之所以提交,是因为它将递增版本文件并将其检入源代码管理,这将导致无限循环。
在常规工作中,我可以按照以下说明操作来避免这种循环(尽管这不是最干净的方法)。
这些说明不适用于多分支管道(没有“忽略某些用户的提交”选项)。Jenkins多分支管道中是否有任何方法可以防止自我触发的提交?
如果使用GIT,一种解决方法:
更改版本并提交时,请在提交日志中使用特定消息,例如: [git-version-bump]-更改版本
scm签出后,检查最后一次提交是否是版本凹凸提交,如果是,则中止该作业。
stage('Checkout') { checkout scm if (lastCommitIsBumpCommit()) { currentBuild.result = 'ABORTED' error('Last commit bumped the version, aborting the build to prevent a loop.') } else { echo('Last commit is not a bump commit, job continues as normal.') } } private boolean lastCommitIsBumpCommit() { lastCommit = sh([script: 'git log -1', returnStdout: true]) if (lastCommit.contains("[git-version-bump]")) { return true } else { return false } }