我们有一个基本的CI / CD系统...当发生推送时,Bitbucket会通知我们的一台服务器-包含提交信息和回购等。
但是,没有一种(对我而言)明显的方法可以根据提交对存储库进行不同的测试。特别是如果它是一个大型仓库,我们可能无法测试所有内容。所以我在想这样的事情:
git commit -am "regular commit message # path/to/test/folder"
因此,提交消息中最后#号之后的所有内容都将是包含test.sh文件的文件夹的路径。如果我们有git pre commit钩子,我们可以验证提交消息中的信息吗?
有更好的方法吗?在提交中添加一些元数据,以指示CI / CD服务器如何测试提交?
答案 0 :(得分:1)
最好将提交消息用于其预期目的-描述提交的内容和原理。这是a nice reference。
关于CI / CD- 在某些情况下,不想对所有内容进行测试是有意义的,但是我建议尽可能晚地对测试进行分区。 IOW,在每次提交时测试所有内容,并保持测试尽可能快。当您需要进一步优化时,可以按测试的运行时间对其进行划分-对每个提交运行所有“快速”测试,并在每晚的工作中运行所有“慢速”测试。
答案 1 :(得分:1)
最佳做法是将此类元数据放入带有标头的提交消息中,以使其与其他任何元数据区分开。例如Gerrit使用Change-Id
标头:
Change-Id: xyzzy
所以您的命令应该类似于
git commit -a -m "regular commit message" -m "Test: path/to/test/folder"
这会产生提交消息
regular commit message
Test: path/to/test/folder
其余的取决于测试脚本。