我正在寻找一种方法来收集提交的最后一个“集合”的日志消息,其中包括我的提交和任何子模块。
我正在使用gitlab-ci,并且我有一个包含4个子模块的项目。子模块更新时,它将触发主项目的构建,并且将在松弛状态下发布通知。
我正在使用$CI_COMMIT_MESSAGE
变量将消息内容发布为松弛状态,但是,这只会在我的主项目(而不是子模块)中进行更改。
在构建过程中,我称:
git submodule sync
git submodule update --init --recursive --remote --force
更新我的潜艇。
我真正想做的是能够实现以下伪代码:
foreach submodule
collect current_git_sha
if current_git_sha != HEAD
collect log messages between current SHA and HEAD
end if
update submodule
end foreach
这样,我可以报告类似于以下内容的消息:
放松。
有一种简单的方法吗?
答案 0 :(得分:0)
我设法解决了自己的问题(再次)。我最终使用的脚本可以在这里找到:
https://gist.github.com/jeeftor/e7a07f10a38be1b7fa20e41fae88a4bc
在这里写了一篇关于它的文章: https://medium.com/@Jeef/creating-a-git-submodule-change-log-for-ci-db60c90f821c