如何配置travis-ci,以便我的项目使用多个版本的编译器构建?
说,我想用gcc-4.8,gcc-4.9,clang-3.4,clang-3.5和clang-3.6构建它。
我知道如何在gcc和clang上构建,但不能在多个版本上构建。
为了提供更多的上下文,我的project是一个C ++库,我想确保与这些编译器的兼容性。
答案 0 :(得分:35)
确定Travis CI可能/允许的内容以及什么不是,这是(并且仍然是)非常痛苦。我的current solution看起来像这样:
language: cpp
matrix:
include:
- os: linux
compiler: gcc
addons:
apt:
sources: ['ubuntu-toolchain-r-test']
packages: ['g++-4.8']
env: COMPILER=g++-4.8
- os: linux
compiler: gcc
addons:
apt:
sources: ['ubuntu-toolchain-r-test']
packages: ['g++-4.9']
env: COMPILER=g++-4.9
- os: linux
compiler: gcc
addons:
apt:
sources: ['ubuntu-toolchain-r-test']
packages: ['g++-5']
env: COMPILER=g++-5
- os: linux
compiler: clang
env: COMPILER=clang++
- os: linux
compiler: clang
addons:
apt:
sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.5']
packages: ['clang-3.5']
env: COMPILER=clang++-3.5
- os: linux
compiler: clang
addons:
apt:
sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.6']
packages: ['clang-3.6']
env: COMPILER=clang++-3.6
# Activate when 3.7 is released and the repository is available
# - os: linux
# compiler: clang
# addons:
# apt:
# sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.7']
# packages: ['clang-3.7']
# env: COMPILER=clang++-3.7
# Activate when we are allowed to use MacOS X
# - os: osx
# compiler: clang
# env: COMPILER=clang++
script:
make CXX=$COMPILER -j3
一些评论:
CXX
,因为Travis CI会覆盖它。您需要一个像COMPILER
clang++
没有扩展名目前是Clang 3.4 llvm-toolchain-precise
存储库的Clang 3.8(开发版本)目前已列入黑名单(请注意,以上内容会随着时间的推移而改变/改进,现在(2016-01-11)可以使用Clang 3.7和MacOS X.以上是作为起点,根据需要进行调整)