合并后,gitlab中将使用新SHA进行新提交。
在CI / CD变量中,有一个CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
变量。还有几种方法可以在命令行中了解其他提交数据,例如git rev-parse --verify HEAD
等。
那么,如何为特殊的合并提交获取源提交SHA?
为了清楚地理解问题,我将尝试描述此情况。
分支机构:开发大师
提交:dev_1,dev_2,dev_3,merge_to_master_dev_123,dev_4,dev_5,dev_6,merge_to_master_dev_456
当我运行(或重新运行)merge_to_master_dev_123的管道时,我需要获取dev_3 commit SHA。
当我运行(或重新运行)merge_to_master_dev_456的管道时,我需要获取dev_6 commit SHA。
我将在gitlab-ci.yml脚本(尤其是shell脚本)的GitLab Runner中使用它。
获取源分支的最新请求不是我想要的,因为我可以在merge_to_master_dev_456,merge_to_master_dev _...管道之后重新运行merge_to_master_dev_123管道。
那怎么办?
答案 0 :(得分:0)
当您合并到master之后,可以在提交消息中保存SHA,然后从CI_COMMIT_MESSAGE
变量中检索SHA。
或者更好的是,您可以在合并时在开发上标记提交,然后使用该标签来引用提交。
如何使用beta的预发布标签在dev分支上标记提交,例如1.0.0-beta,然后标记不带预发布标记1.0.0的合并提交?
当您重新运行合并提交时,可以使用CI_COMMIT_TAG
变量获取1.0.0,在-beta预发行标签上添加,然后您会从git引用到您从中进行合并的提交。