作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 C++ 项目,我想使用 Travis CI 对其进行自动化构建。
该项目使用 GNU make 构建。有多个构建目标,它们彼此独立,我想使用 Travis CI 自动检查每个目标的构建是否成功。因此,我希望为每次提交运行多个 Travis 构建,每个目标一个。
我可以这样做的一种方法是:
script:
- make target1
- make target2
- make target3
但是,这可能会隐藏一些问题,例如只有当 target1
已构建时 target2
的构建才会成功。
替代方案可以是:
script:
- make target1
- make clean
- make target2
- make clean
- make target3
这看起来有点难看,而且可能会花费比需要更多的时间。在target1
和target2
成功构建之前,无法发现target3
构建中的错误。
更好的方法可能是使用 Travis 的构建矩阵功能,这是我一直无法做到的。我尝试了以下方法:
matrix:
- script: make target1
- script: make target2
- script: make target3
但这行不通。 C++ 的 Travis 文档建议矩阵可以交错不同的 environments and compilers ,而且我找不到任何方法来分别运行不同的脚本。这可以通过某种方式与环境一起指定吗?
这可能吗?如果是这样,执行此操作的正确方法是什么?
谢谢。
最佳答案
我找到了解决方案。 Travis 文档中提供了这方面的信息 here ,并给出了 Makefile 的特定信息 here .
对我有用的解决方案是:
env:
matrix:
- TARGET="target1"
- TARGET="target2"
- TARGET="target3"
script:
- make $TARGET
这会创建三个并行运行的作业。
关于build - 我如何在 Travis CI 中为 C++ 项目并行运行多个构建,每个构建都有一个单独的脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52543951/
我是一名优秀的程序员,十分优秀!