【发布时间】:2019-10-20 10:12:09
【问题描述】:
我有一个 Jenkins 项目,我想在构建之前将最新的 origin/master 合并到功能分支中。通过 BitBucket 发出拉取请求以启动该过程。
我正在使用 Git 插件并在源代码管理下,我将使用存储库 URL 作为项目的 git 克隆。
对于要构建的分支,我使用**/pull-requests/** 来确保构建的唯一分支是那些试图合并到 master 中的分支。
在附加行为下,我有Merge Before Build,值如下:
Name of repository: origin
Branch to merge to: master
merge strategy: recursive
fast-forward mode: --ff
这不起作用。当我尝试它时,基于 pmd 问题已经从另一个功能分支合并到 master 中,构建仍然不稳定。
编辑
我还尝试在 Prepare an environment for run 和 Under Build Enviroment -> Execute shell script on remote host using ssh 中根据 this answer 使用 git 命令。两次都没有成功,但也许我执行错了?
【问题讨论】:
-
origin是用于同步您的存储库的远程服务器的名称。尝试添加 Git 存储库名称。 -
stderr:致命:不明确的参数 'practiceRepo/master^{commit}':未知的修订版或路径不在工作树中。当我使用 origin 时,构建并没有完全失败。
-
使用 origin,在 jenkins 日志中,我最终得到这一行,“提交消息:”将 bitbucket.url-to-my-project-repo.com 的分支 'master' 合并到 feature-branch -name”。虽然它这么说,但实际上并没有发生这种情况,因为基于 pmd 问题已经更正并从另一个功能分支合并到 master 中,构建仍然不稳定。