【问题标题】:Automate Git merge in continuous integration but fail if there are merge conflicts [closed]在持续集成中自动化 Git 合并,但如果存在合并冲突则失败 [关闭]
【发布时间】:2015-07-02 21:51:15
【问题描述】:

与我合作的团队想使用持续集成来自动合并两个 git 分支。但是,如果存在合并冲突,我们希望持续集成作业失败,以便开发人员可以手动运行合并并解决任何问题。

有没有人有过这种设置的经验(最好是使用 TeamCity,但任何 CI 服务器都会很有趣)?

【问题讨论】:

    标签: git continuous-integration teamcity


    【解决方案1】:

    这可以通过使用自动合并构建功能在 TeamCity 中实现

    只有在构建成功后才会执行合并,但如果在合并过程中出现任何冲突,随后会导致构建失败。

    更多细节可以在这里找到 - TeamCity Documentation

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      不久前我编写了一个 bash 脚本来执行此操作。实际上,完整的脚本会为我们 github 存储库中带有 test 标签的 all 打开 PR 执行此操作。

      Full script

      相关位:

      try_merge()
      {
          test -n "$1"
          local branch=$1 commit
          if ! commit=$(git rev-parse --verify -q $branch)
          then
              error bogus $branch
              return
          fi
          if bash -c 'set -o pipefail; git branch --contains '$commit' | grep -qw master'
          then
              warning already $branch
              return
          fi
          if git merge --ff-only $branch $commit
          then
              good fast $branch $commit
              return
          fi
          if git merge $branch $commit
          then
              good merge $branch $commit
              return
          fi
          git merge --abort
          error abort $branch $commit
          return
      }
      

      【讨论】:

        猜你喜欢
        • 2013-06-06
        • 1970-01-01
        • 2012-04-19
        • 2016-11-25
        • 2019-06-10
        • 1970-01-01
        • 2017-07-24
        • 1970-01-01
        • 2014-04-14
        相关资源
        最近更新 更多