C++ Travis CI构建矩阵包含虚假条目?

C++ Travis CI构建矩阵包含虚假条目?,c++,travis-ci,C++,Travis Ci,我有一个Travis CI构建矩阵,用于测试最近的g++和clang。除了这两个预期条目之外,我还看到了一个条目AFAIK,它没有在include矩阵中指定。如何抑制或删除此第三个生成配置 .travis.yml: language: generic os: linux script: ./bootstrap && ./configure && make all && make check && make distcheck mat

我有一个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的输出片段取自:

将语言和操作系统部分移动到矩阵中包括工作。然而,我仍然不知道为什么

从文档中可以看出,“操作系统密钥也会使矩阵相乘”:

如果您的代码在多个操作系统上使用,它可能应该 可以在多个操作系统上进行测试。Travis CI可以在Linux上进行测试 和OSX

要在多个操作系统上启用测试,请将操作系统密钥添加到 .travis.yml:

操作系统:

  • linux
  • osx
$TRAVIS_OS_NAME变量的值设置为linux或osx 根据运行特定构建的操作系统,因此 您可以使用它对构建脚本进行条件化

如果您已经在使用构建矩阵测试多个版本,则 os键也会使矩阵相乘

资料来源:

具有多个
os
键的生成:

例如,对于每个单独的“os”键,它会创建另一个构建。请看这里:或

因为默认的“os”是linux,所以在您自己的问题中暗示您有3个单独的版本,它们都使用“os:linux”

使用不同的
os
键生成矩阵:

例如,每个键现在在矩阵中的单独行上指定。看这里:和


在您的问题中,您不仅指定了一个“矩阵”构建,还指定了一个具有不同操作系统的普通构建。指定“矩阵”时,您将覆盖默认的“os”构建。但是你明确地写了“os”和“matrix”,这意味着你想要3个独立的版本。

所以你回答了你自己的问题,或者这是一个评论?回答了我自己的问题,但如果你能洞察到为什么这一琐碎的重新格式化实现了我想要的,你仍然会很高兴地奖励奖金。也就是说,什么定义了矩阵内容?