如何在一个.Travis.yml文件中使用Travis CI在Ubuntu 14.04 LTS和CentOS7上进行测试?

如何在一个.Travis.yml文件中使用Travis CI在Ubuntu 14.04 LTS和CentOS7上进行测试?,ubuntu,centos,continuous-integration,travis-ci,Ubuntu,Centos,Continuous Integration,Travis Ci,我想在两个不同的Linux发行版上测试一些ansible剧本。(Ubuntu 14.04 LTS和CentOS 7) 我知道如何配置.travis.yml在Ubuntu 14.04上进行测试,因为TravisCI为Ubuntu提供了一个内置容器 对于CentOS 7,我知道我需要使用Docker在TravisCI中构建CentOS 7容器,以便在CentOS上测试我的代码 此外,我知道如何通过使用矩阵同时测试CentOS 6和CentOS 7 然而,我不知道如何用两个版本进行一个测试,一个是在U

我想在两个不同的Linux发行版上测试一些ansible剧本。(Ubuntu 14.04 LTS和CentOS 7)

我知道如何配置
.travis.yml
在Ubuntu 14.04上进行测试,因为TravisCI为Ubuntu提供了一个内置容器

对于CentOS 7,我知道我需要使用Docker在TravisCI中构建CentOS 7容器,以便在CentOS上测试我的代码

此外,我知道如何通过使用
矩阵
同时测试CentOS 6和CentOS 7

然而,我不知道如何用两个版本进行一个测试,一个是在Ubuntu14.04LTS上,另一个是在Cenos7上。所以我可以同时测试两个不同的Linux发行版


非常感谢
.travis.yml
的任何提示或示例能够说明我想要的东西

一般来说,类似这样的东西会为您的Travis CI作业提供一个Ubuntu 14.04和CentOS7的容器:

# setup environment
dist: trusty
sudo: required
language: python

# setup container matrix
matrix:
  include:
    - env: OS='ubuntu:14.04'
    - env: OS='centos:7'

before_install:
  - docker pull $OS

install:
  - docker run -d $OS /bin/sh -c "provision container if you do not have a prebuilt image and are instead using base images"

script:
  - docker run -d $OS /bin/sh -c "ansible tests"
这将使您能够使用Travis CI在两个操作系统上进行测试

然而,仅仅使用分子可能更容易:

您可以在
molecular/scenario/tests/molecular.yml
中为这两个项目指定Docker映像,在
install:
中在Travis CI中安装molecular,然后在
脚本:
中只需
molecular test
即可为您完成繁重的工作


更新:特拉维斯发表了一篇关于这个主题的博客文章,他们使用了我上面概述的方法。查看更多信息:

非常感谢Matt!我会尝试一下,并确保提供反馈(AC)。感谢您推荐
分子
,它看起来真的很酷@Lucas巧合的是,Travis刚刚发表了一篇关于这个话题的博客文章,他们基本上都在做我上面写的:。然而,他们也在使用容器进行非验收测试,这是相当低效的。他们在低层次上的方法是次优的,但是功能性的。