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

时间:2016-09-25 02:20:38

标签: c++ travis-ci

我有一个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的输出: Travis failure screenshot

2 个答案:

答案 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#L3https://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#L3https://github.com/jaredsburrows/android-gif-example/blob/master/.travis.yml#L8

在您的问题中,您不仅要指定"矩阵"构建但也是一个具有不同操作系统的普通构建。指定"矩阵"时,您将覆盖默认值" os"建立。但你明确写了两个" os"和"矩阵",暗示你想要3个独立的构建。