我需要在 CI CD 期间从一个分支合并到另一个分支。我正在寻找一种方法来检测合并后的冲突,从而停止该过程并发出警报。这就是我现在所拥有的:
#! /bin/bash
echo 'start'
function do_merge() {
git merge auto
}
function is_merge_ok(){
local merge_response = $(do_merge)
local SUB = 'error'
if [[ "$merge_response" == "*$SUB*" ]]; then
echo 'false'
else
echo 'true'
fi
}
local was_merge = $(is_merge_ok)
if [[ "$was_merge" == "false" ]]; then
exit(1)
else
exit(0)
fi
Run Code Online (Sandbox Code Playgroud)
但它没有收到错误。有办法实现吗?谢谢
git merge已经有一个指示成功或失败的退出代码。
直接git merge auto在您的if:
if git merge auto; then
echo "sucess !"
else
exitcode=$?
echo "failure"
exit $exitcode
fi
Run Code Online (Sandbox Code Playgroud)
或者在执行后立即存储退出代码git merge auto以供以后比较:
git merge auto
exitcode=$?
... # do something else
if [ $exitcode -eq 0 ]; then
echo "success"
else
echo "failure"
fi
Run Code Online (Sandbox Code Playgroud)
您当前的脚本大致相当于:
if git merge auto > /dev/null; then
exit 0;
else
exit 1;
fi
Run Code Online (Sandbox Code Playgroud)