我如何 运行 在 Travis CI 中并行构建多个 C++ 项目,每个构建都有一个单独的脚本?
How can I run multiple builds in parallel in Travis CI, each with a separate script, for a C++ project?
我有一个 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
这看起来有点难看,而且可能需要比需要更多的时间。在 target1
和 target2
成功构建之前,无法发现 target3
构建中的错误。
更好的方法可能是使用 Travis 的构建矩阵功能,这是我一直无法做到的。我尝试了以下方法:
matrix:
- script: make target1
- script: make target2
- script: make target3
但这不起作用。 C++ 的 Travis 文档建议矩阵可以交错不同的 environments and compilers,我无法找到任何方法来分别 运行 不同的脚本。这可以通过某种方式与环境一起指定吗?
这可能吗?如果是这样,正确的做法是什么?
谢谢。
我有一个 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
这看起来有点难看,而且可能需要比需要更多的时间。在 target1
和 target2
成功构建之前,无法发现 target3
构建中的错误。
更好的方法可能是使用 Travis 的构建矩阵功能,这是我一直无法做到的。我尝试了以下方法:
matrix:
- script: make target1
- script: make target2
- script: make target3
但这不起作用。 C++ 的 Travis 文档建议矩阵可以交错不同的 environments and compilers,我无法找到任何方法来分别 运行 不同的脚本。这可以通过某种方式与环境一起指定吗?
这可能吗?如果是这样,正确的做法是什么?
谢谢。