如果回购是最新的,gitpush将返回不同的staus代码



我的gitlab ci中有一个合并作业,它在每个午夜合并两个分支。现在,如果一个分支中发生了更改,从而触发了部署作业,则此操作运行良好。但当没有变化的时候就不会了。所以每当它在ci作业中运行git-push时,我都会得到状态代码0。我需要的是,如果更改被推送,则返回状态代码0,如果"是",则返回staus代码1;一切都是最新的"。

我怎样才能做到这一点?有没有办法使用shell脚本或python?

基本上,我希望合并/推送作业失败,因为没有任何更改,所以on_ffailure作业可以触发。

谢谢。

如果要将sourceBranch合并到targetBranch中,则在进行合并之前,可以检查sourceBranch领先于targetBranch的提交数量,并且"出口1";如果该数字是0。(我想你那时甚至不需要尝试推送。(

例如,在Bash中,它可能看起来像:

# Check if there is anything to merge
NumCommitsAhead=$(git log targetBranch..sourceBranch --oneline | wc -l)
if [ $NumCommitsAhead -eq 0 ]; then
echo "sourceBranch has no new commits to merge. Exiting."
exit 1
fi

您可以捕获git push命令的输出并对其进行解析,以查看是否存在字符串"一切都是最新的";。

相关内容

  • 没有找到相关文章

最新更新