2017-08-15 141 views
2

我想让我的Jenkins多分支管道作业避免触发自身。作业进行提交是因为它会增加版本文件并将其检入源代码控制,从而导致无限循环。如何避免Jenkins多分支管道作业触发本身

在一个正常的工作中,我可以按照these instructions来避免这个循环(虽然它不是最干净的方式)。

该指令不适用于多分支管道(不存在'忽略来自某些用户的提交'选项)。 Jenkins mulitbranch管道中有没有办法阻止自我触发的提交?

+0

还不是一个确切的解决方案,但如果它帮助别人,我发现了两种方法可以使这项工作。首先,我可以通过将“Property strategy”更改为“命名分支获取不同属性”,然后在“Add property”下选择“Suppress automatic SCM triggering”来禁用一组分支上的自动构建。其次,我能够配置Bitbucket来抑制某些用户的推送通知。通过这样做,我可以抑制构建服务器用户的构建,这与我链接的文章所用的方法相同。但是,我不知道其他回购是否支持这一点。 – Pace

回答

2

一种解决方法,如果使用GIT:

当碰撞的版本和提交,在使用特定的消息提交日志例如:[GIT-版本凸点] - 植球的版本

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 
    } 
} 
相关问题