詹金斯没有在分支创建/删除上开始新的构建
Posted
技术标签:
【中文标题】詹金斯没有在分支创建/删除上开始新的构建【英文标题】:Jenkins not starting a new build on branch creation/deletion 【发布时间】:2016-10-18 06:58:29 【问题描述】:想法: 每次推送到 git repo 时,都应该启动新的 Jenkins 任务构建。如果更改为:
已创建新分支 - Jenkins 将获取源代码,进行一些设置并运行 Docker 容器,可以在其中测试此分支等。 新推送 - Jenkins 应该重建源代码 分支已删除 - Jenkins 应删除已构建的文件、删除 DB、关闭容器等。设置:
带有指向 Jenkins URL 的 webhook 的 BitBucket 存储库 Jenkins 使用 BitBucket 插件在本地服务器上运行,任务是“在将更改推送到 BitBucket 时进行构建”问题:
当创建/删除分支时,BitBucket webhook 会触发,Jenkins 正在处理请求(到目前为止,一切都很好)。
在 Jenkins 日志中,我看到: “收到提交挂钩通知...”但“BitBucket Hook Log”屏幕显示如下:
Polling SCM changes on master
Using strategy: Default
[poll] Last Built Revision: Revision
.....
.....
> git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repositories
> git config remote.origin.url ...
Fetching upstream changes from ...
> git --version # timeout=10
using .gitcredentials to set credentials
> git config --local credential.username ....
> git config --local credential.helper store --
> git -c core.askpass=true fetch --tags --progress ... +refs/heads/*:refs/remotes/origin/*
> git config --local --remove-section credential # timeout=10
Polling for changes in
Seen branch in repository ....
Done. Took 6.6 sec
No changes
所以基本上是说没有变化,作业没有运行。 如果我进行了代码更改并将该更改推送到 BitBucket,该作业将按预期开始并且运行良好。
任何想法如何强制 Jenkins 在分支创建/删除时开始新构建?
【问题讨论】:
我在 Github 上遇到了同样的问题,每当创建新分支时,webhook 都会获取 [create] 请求,但 Jenkins 不会触发构建。 Github 日志最后显示“无更改”。但是,如果我确实推送了新创建的分支,那么 Jenkins 就会进行构建。你找到解决办法了吗? 从 git 来看这是有道理的——创建一个分支只会创建一个新的元信息,但最后一次提交是一样的。您需要单独处理分支创建的分支名称。 【参考方案1】:我已经发布了一个新版本的 bitbucket-plugin (v1.1.30),它允许在接收到新的分支被创建事件时进行构建
【讨论】:
以上是关于詹金斯没有在分支创建/删除上开始新的构建的主要内容,如果未能解决你的问题,请参考以下文章