我有一个C ++项目,我想使用Travis CI自动进行构建。
该项目使用GNU make进行构建。有多个相互独立的构建目标,我想使用Travis CI自动检查每个目标构建是否成功。因此,我希望针对每个提交运行多个Travis构建,针对每个目标运行一个。
我可以做到这一点的一种方法是:
script:
- make target1
- make target2
- make target3
但是,这可能会隐藏问题,例如target2
的构建只有在已经构建target1
的情况下才能成功。
然后可以选择:
script:
- make target1
- make clean
- make target2
- make clean
- make target3
这看起来有点丑陋,而且可能会花费比所需更多的时间。成功构建target3
和target1
之前,找不到target2
的构建错误。
更好的方法可能是使用Travis的构建矩阵功能,这是我一直无法做到的。我尝试了以下方法:
matrix:
- script: make target1
- script: make target2
- script: make target3
但这不起作用。 Travis的C ++文档建议,矩阵可以交错不同的environments and compilers,而我无法找到任何方法来单独运行不同的脚本。可以通过某种方式指定环境吗?
这可能吗?如果是这样,正确的方法是什么?
谢谢。