我目前有一个travis ci矩阵,包括150多个测试。项目的范围是这样的,如果这些测试目录中的任何文件被更改,travis将运行该测试。这是如何工作的,我们运行一个脚本,为每个测试执行一个复杂的git diff
,确定是否需要为矩阵中的该条目运行完整的测试,如果不是,则退出并移动到下一个矩阵条目。这些150多个测试在矩阵中逐行列出,迭代每个测试的时间都很昂贵,运行差异,并确定测试是否需要运行。
解决方案是根据我们的git diffing脚本预先构建矩阵,这样矩阵中列出的所有测试都将是所有需要运行的测试。特拉维斯人似乎没有办法做到这一点。这个问题是否有合理的解决方案,不包括迭代每个可能的测试?或其他开源项目的免费持续集成工具,为此提供解决方案?