我们有一个基本的CI/CD系统.当推送发生时,Bitbucket会通知我们的一个服务器-有一个提交SHA,以及repo等。
但是(对我来说)没有明显的方法可以根据提交的不同来测试repo。特别是如果这是一个大的回购,我们可能不想测试一切。所以我在想这样的事情:
git commit -am "regular commit message # path/to/test/folder"
所以提交消息中最后一个#之后的所有内容都将是一个包含test.sh文件的文件夹的路径。如果我们有git pre commit钩子,我们可以验证提交消息中的信息吗?
有没有更好的方法来做到这一点?有没有一种方法可以在提交中添加一些元数据来指导CI/CD服务器如何测试提交?
2条答案
按热度按时间zpqajqem1#
最好将提交消息用于其预期目的--描述提交的内容和基本原理。这里是a nice reference。
关于CI/CD -在某些情况下,不想测试所有东西是有道理的,但我建议尽可能晚地划分测试。IOW,在每次提交时测试所有内容,并尽可能快地保持测试。当你需要进一步优化时,你可以根据测试的运行时间来划分测试--在每次提交时运行所有“快”的测试,在夜间作业中运行所有“慢”的测试。
wz8daaqr2#
最佳实践是将此类元数据放入提交消息中,并带有头文件,以将其与任何其他元数据区分开来。例如,Gerrit使用
Change-Id
头:所以你的命令应该是这样的
这将生成提交消息
剩下的就看测试脚本了。