对于我们Jailhouse hypervisor的Travis-CI版本,我们有一个相当昂贵的环境设置,包括部分分发更新以引入最近的make版本(> = 3.82,默认的仍然只有3.81 - Ubuntu ...),ARM的交叉工具链和100 MB预构建的Linux内核源代码包,我们需要编译树外模块。
为了减少构建时间和内核下载次数,我们目前在一次运行中按顺序构建所有配置变量(make; make clean; make ...)。这对于检查构建破坏是好的,但是通过添加依赖于构建输出的Coverity扫描,它不再起作用。切换到构建矩阵似乎是一个明显的解决方案,因为多个安装的代价,因为Travis-CI似乎无法在这样的构建过程中重用它们。虽然我们目前只有3种配置变体,但未来会有所增加(例如,每增加一块ARM板都会增加一个),因此这种方法并没有真正扩展。
我们有其他选择吗?我已经看过缓存,可以通过基于docker的构建获得,但缺少sudo支持可以防止这种方法。其他想法?
答案 0 :(得分:0)
您应该更改构建以执行此操作
cov-build --idir <target1> make; make clean
...
为每个构建使用不同的中间目录。然后再回去运行
cov-analyze --idir <target1>
cov-commit-defects --idir <target1> --stream <target1>