Github 删除分支上的挂钩事件导致 Jenkins 作业失败
Github hook event on delete branch cause Jenkins Job failure
在 Jenkins 中,当对以 "release" 开头的任何 Github 分支进行更改时,我将管道配置为 运行。
为此,我使用了一个 Github 钩子触发器,以及一个与表达式 "origin/release/*".
匹配的分支说明符
在我们的 git 工作流程中,这些分支并不意味着永远存在,因此它们经常被删除。
我所期望的是在每个发布分支的每次提交时触发管道。
但是,删除分支时也会触发管道。
如何忽略管道中的删除分支事件?
我已经尝试在删除分支时不从 Github 发送事件,但似乎没有选择。 "push" 事件选项在删除分支时发送事件。
谢谢!
我设法解决了我的问题。
这是我开始管道的方式:
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"
}
有了这个,我不需要 "manually" 签出正确的分支。
这个解决方案有效,现在只有在与我的分支说明符匹配的分支上进行推送时才会触发管道。
没什么大不了的。
就让它失败吧。好像没受伤。
在 Jenkins 中,当对以 "release" 开头的任何 Github 分支进行更改时,我将管道配置为 运行。 为此,我使用了一个 Github 钩子触发器,以及一个与表达式 "origin/release/*".
匹配的分支说明符在我们的 git 工作流程中,这些分支并不意味着永远存在,因此它们经常被删除。
我所期望的是在每个发布分支的每次提交时触发管道。 但是,删除分支时也会触发管道。
如何忽略管道中的删除分支事件? 我已经尝试在删除分支时不从 Github 发送事件,但似乎没有选择。 "push" 事件选项在删除分支时发送事件。
谢谢!
我设法解决了我的问题。 这是我开始管道的方式:
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"
}
有了这个,我不需要 "manually" 签出正确的分支。 这个解决方案有效,现在只有在与我的分支说明符匹配的分支上进行推送时才会触发管道。
没什么大不了的。 就让它失败吧。好像没受伤。