2016-09-25 31 views
2

我有一個Travis CI構建矩陣,用於測試最近的g ++和clang。除了這兩個打算的條目之外,我還看到一個條目AFAIK,在包含矩陣中沒有指定。我該如何抑制或刪除第三個構建配置?Travis CI構建矩陣包含虛假條目?

.travis.yml:Travis的輸出從full details截取的

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 failure screenshot

回答

1

從文檔,「操作系統鍵也乘以矩陣」:

如果您的代碼在多個操作系統上它可能應該 多個操作系統上進行測試使用。特拉維斯CI可以在Linux 和OS X的測試

爲了使多個操作系統上測試添加OS關鍵看你 .travis.yml:

OS:

  • Linux的
  • OSX

根據運行特定版本的操作系統,$ TRAVIS_OS_NAME變量的值設置爲linux或osx ,因此您可以使用它來調整構建腳本的條件。

如果您已經在使用構建矩陣來測試多個版本,那麼操作系統密鑰也會使矩陣相乘。

來源: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」。

矩陣構建具有不同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」和「matrix」,意味着你想要3個獨立的版本。

1

移動語言和OS部到基質包括作品。然而,我仍然沒有認識到爲什麼。

https://github.com/RhysU/descendu/commit/ab275ea79b4ff315f99604d6d7f26dd2488aa266

+0

所以你回答了你自己的問題,或者這是一個評論? –

+1

回答了我自己的問題,但仍然很樂意獎勵獎金,以便了解爲什麼這種簡單的重新格式化完成了我想要的任務。也就是說,什麼定義矩陣內容? –