收集子模块的更改日志以在CI流程中进行报告

时间:2019-07-05 17:22:04

标签: git git-submodules

我正在寻找一种方法来收集提交的最后一个“集合”的日志消息,其中包括我的提交和任何子模块。

我正在使用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

这样,我可以报告类似于以下内容的消息:

  • SubModule3:更新了一些内容

放松。

有一种简单的方法吗?

1 个答案:

答案 0 :(得分:0)

我设法解决了自己的问题(再次)。我最终使用的脚本可以在这里找到:

https://gist.github.com/jeeftor/e7a07f10a38be1b7fa20e41fae88a4bc

在这里写了一篇关于它的文章: https://medium.com/@Jeef/creating-a-git-submodule-change-log-for-ci-db60c90f821c