小编Cle*_*red的帖子

BitBucket 不更新 PR 的 refspec,导致 Jenkins 构建旧提交

我正在使用带有 Git 的本地 BitBucket 服务器。我正在尝试开始持续集成,因此我设置了一个本地 Jenkins 实例。目标是让 Jenkins 检查拉取请求并构建项目,然后向 BitBucket 报告结果。

在 BitBucket 中,我使用Webhook 与 Jenkins 进行 Stash,每次创建/更新拉取请求时它都会通知我的 Jenkins 实例。

在 Jenkins 中,当从上面的插件通知时,我使用Stash pullrequest 构建器插件让 Jenkins 签出 pullrequest。我已经使用了文档中的设置,即

Refspec: +refs/pull-requests/*:refs/remotes/origin/pr/*
Branch Specifier: origin/pr/${pullRequestId}/from
Run Code Online (Sandbox Code Playgroud)

差不多就可以用了...

当我在 BitBucket 中创建新的拉取请求时,Jenkins 会收到通知,检查 PR 并将结果报告回 BitBucket。到目前为止,一切都很好。

但是,当我更新 PR(即提交新代码并推送到 BitBucket)时,Jenkins 会被触发,但仍然检查 PR 中的先前提交,而不是新提交。

我做了一些调查但陷入困境。据我了解,Refspec指定我应该映射refs/remotes/origin/pr/*refs/pull-requests/*本地。然而,当我对现有 PR 进行新提交时,BitBucket 似乎并未更新 PR 的引用,这导致 Jenkins 只能找到旧的 PR。

当我git ls-remote origin在提交并将更新推送到现有 PR 后运行时,我得到以下信息:

edf245 (new commit)...             refs/heads/feature/Name-Of-My-Branch-That-I-Created-Pull-Request-From-pr
af774f (previous commit …
Run Code Online (Sandbox Code Playgroud)

git continuous-integration bitbucket pull-request jenkins

1
推荐指数
1
解决办法
3089
查看次数