【发布时间】: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 来看这是有道理的——创建一个分支只会创建一个新的元信息,但最后一次提交是一样的。您需要单独处理分支创建的分支名称。
标签: git jenkins bitbucket webhooks