我正在使用的团队希望使用持续集成来自动合并两个git分支。但是,如果存在合并冲突,我们希望持续集成作业失败,以便开发人员可以手动运行合并并解决任何问题。
有没有人有这种设置的经验(理想情况下是TeamCity,但任何CI服务器都会很有趣)?
答案 0 :(得分:2)
这可以通过使用自动合并构建功能
在TeamCity中实现
合并将仅在成功构建之后执行,但如果在合并期间存在任何冲突,则随后将失败构建。
更多细节可以在这里找到 - TeamCity Documentation
希望这有帮助。
答案 1 :(得分:0)
我写了一个bash脚本来做这件事。实际上,完整的脚本为我们的github仓库中带有test
标记的所有打开的PR执行此操作。
相关位:
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
}