我们有一个基本的 CI/CD 系统...当推送发生时,Bitbucket 将通知我们的一台服务器 - 有提交 SHA 和存储库等。
但是(对我来说)没有明显的方法来根据提交以不同的方式测试存储库。特别是如果它是一个大型仓库,我们可能不想测试所有内容。所以我在想这样的事情:
git commit -am "regular commit message # path/to/test/folder"
因此提交消息中最后一个 # 之后的所有内容都将是包含 test.sh 文件的文件夹的路径。如果我们有 git pre commit hooks,我们可以验证提交消息中的信息吗?
有更好的方法吗?有没有办法向提交添加一些元数据来指示 CI/CD 服务器如何测试提交?
最好将提交消息用于其预期目的 - 描述提交的内容和基本原理。这是一个很好的参考。
关于 CI/CD - 在某些情况下,不想测试所有内容是有道理的,但我建议尽可能晚地划分测试。 IOW,在每次提交时测试所有内容,并尽可能快地保持测试。当您需要进一步优化时,您可以按运行时间对测试进行分区 - 在每次提交时运行所有“快速”测试,并在夜间作业中运行所有“慢速”测试。
最佳实践是将此类元数据放入提交消息中并带有标头,以将其与任何其他元数据区分开来。例如 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
剩下的就看测试脚本了。