【问题标题】:Jenkins merge in stable branch to each PR before buildingJenkins 在构建之前将稳定分支合并到每个 PR
【发布时间】: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 中,构建仍然不稳定。

标签: git jenkins bitbucket


【解决方案1】:

我找到的解决方案是在附加行为中,我需要清除存储库并强制克隆。在那次更改之后,合并工作应该是。

我对出了什么问题的理解:

在擦除 repo 之前,它使用以前的构建提交进行合并。因此,当合并发生时,合并提交在实际合并和构建之前。然后 pmd/checkstyle 将失败,因为它正在测试合并前提交。

我在这里找到了这个解决方案:https://issues.jenkins-ci.org/browse/JENKINS-43485

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-02
    • 2017-03-21
    • 2023-02-08
    • 2022-10-06
    • 1970-01-01
    • 1970-01-01
    • 2017-07-27
    相关资源
    最近更新 更多