我有一个Travis CI构建矩阵,旨在测试最近的g ++和clang。除了这两个预期的条目之外,我还看到了一个条目AFAIK,未在include矩阵中指定。如何抑制或删除第三个构建配置?
.travis.yml
:
language: generic
os: linux
script: ./bootstrap && ./configure && make all && make check && make distcheck
matrix:
include:
- env: COMPILER_NAME=gcc CXX=g++-5 CC=gcc-5
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- autotools-dev
- g++-5
- env: COMPILER_NAME=clang CXX=clang++-3.8 CC=clang-3.8
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.8
packages:
- autotools-dev
- clang-3.8
Travis的片段'取自full details的输出:
答案 0 :(得分:1)
将语言和os部分移动到矩阵中包括作品。然而,我仍然不知道为什么。
https://github.com/RhysU/descendu/commit/ab275ea79b4ff315f99604d6d7f26dd2488aa266
答案 1 :(得分:1)
从文档中," os键也将矩阵":
相乘如果您的代码在多个操作系统上使用,它可能应该 在多个操作系统上进行测试。 Travis CI可以在Linux上进行测试 和OS X。
要在多个操作系统上启用测试,请将os密钥添加到您的 .travis.yml:
OS:
- 的Linux
- OSX
$ TRAVIS_OS_NAME变量的值设置为linux或osx 根据操作系统,运行特定的构建,所以 您可以使用它来条件化您的构建脚本。
如果您已经在使用构建矩阵来测试多个版本,那么 os键也会使矩阵倍增。
来源:https://docs.travis-ci.com/user/multi-os/
使用多个os
密钥构建:
例如,对于每个单独的" os"键,它创建另一个构建。请参阅此处:https://github.com/jaredsburrows/cplusplus-cmake-template/blob/master/.travis.yml#L3或https://github.com/jaredsburrows/open-virus/blob/master/.travis.yml#L3。
由于默认" os"是linux,你自己的问题暗示你有3个独立的构建,都是使用" os:linux"。
Matrix使用不同的os
键构建:
例如,现在每个键都在矩阵中的单独行中指定。请参阅此处:https://github.com/jaredsburrows/cs-interview-questions/blob/master/.travis.yml#L3和https://github.com/jaredsburrows/android-gif-example/blob/master/.travis.yml#L8。
在您的问题中,您不仅要指定"矩阵"构建但也是一个具有不同操作系统的普通构建。指定"矩阵"时,您将覆盖默认值" os"建立。但你明确写了两个" os"和"矩阵",暗示你想要3个独立的构建。