在Jenkins中,我配置了一个管道,该管道可以在以“ release”开头的任何Github分支上进行更改时运行。 为此,我使用Github钩子触发器和匹配表达式“ origin / release / *”的分支说明符。
在我们的git工作流程中,这些分支并不能永远存在,因此它们经常被删除。
我期望的是在每个发行分支的每次提交上触发管道。 但是,删除分支后也会触发管道。
如何忽略管道中的删除分支事件? 我已经尝试过在删除分支后不从Github发送事件,但是似乎没有任何选择。删除分支后,“推送”事件选项将发送事件。
谢谢!
答案 0 :(得分:0)
我设法解决了我的问题。 这是我开始管道的方式:
node('staging') {
GIT_PROJECT_NAME = "myrepo"
stage("clone repository") {
git credentialsId: "${GIT_PROJECT_NAME}",
url: "git@github.com:${GIT_PROJECT_NAME}.git"
scmVars = checkout scm
branch = scmVars.GIT_BRANCH
sh ('git checkout ${branch}')
}
其背后的想法是检出触发管道的分支。 但是,无论分支如何,都会导致管道被触发。
这是我解决的方法:
node('staging') {
GIT_PROJECT_NAME = "myrepo"
stage("clone repository") {
scmVars = checkout scm
branch_tmp = scmVars.GIT_BRANCH
branch = branch_tmp.replace("origin/","")
git branch: "${branch}",
credentialsId: "${GIT_PROJECT_NAME}",
url: "git@github.com:${GIT_PROJECT_NAME}.git"
}
有了这个,我不需要“手动”签出正确的分支。 此解决方案有效,现在仅当在与我的分支说明符匹配的分支上进行推送时才触发管道。
答案 1 :(得分:0)
这没什么大不了的。 让它失败。好像没受伤。