【问题标题】:How to use Travis CI to test on both Ubuntu 14.04 LTS and CentOS7 in one .travis.yml file?如何在一个 .travis.yml 文件中使用 Travis CI 在 Ubuntu 14.04 LTS 和 CentOS7 上进行测试?
【发布时间】:2023-03-15 21:23:01
【问题描述】:

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

我了解如何配置 .travis.yml 以在 Ubuntu 14.04 上进行测试,因为 TravisCI 为 Ubuntu 提供了内置容器。

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

另外,我知道如何使用matrix 同时测试 CentOS 6 和 CentOS7。

但是,我不知道如何对两个版本进行一个测试,一个在 Ubuntu 14.04 LTS 上,另一个在 CenOS 7 上。所以我可以同时测试两个不同的 Linux 发行版

任何可以说明我想要什么的.travis.yml 的提示或示例将不胜感激!

【问题讨论】:

    标签: ubuntu centos continuous-integration travis-ci


    【解决方案1】:

    一般来说,这样的事情会为您的 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 在两个操作系统上进行测试。

    但是,只使用 Molecule 可能会更容易:https://molecule.readthedocs.io/en/latest/

    您可以在 molecule/scenario/tests/molecule.yml 中为两者指定 Docker 映像,在 install: 中的 Travis CI 中安装分子,然后只需在 script: 中的 molecule test 为您完成繁重的工作。

    更新:Travis 发布了一篇关于此主题的博客文章,他们使用了我上面概述的方法。查看更多信息:https://blog.travis-ci.com/2017-11-30-testing-ansible-roles-using-docker-on-travis

    【讨论】:

    • 非常感谢马特!我会尝试并确保提供反馈(AC)。感谢您推荐Molecule,它看起来真的很酷!
    • @Lucas 巧合的是,Travis 刚刚发表了一篇关于这个主题的博客文章,他们基本上做了我上面写的:blog.travis-ci.com/…。但是,他们也将容器用于非验收测试,这是相当低效的。他们在低级别的方法不是最理想的,但很实用。
    猜你喜欢
    • 1970-01-01
    • 2020-07-27
    • 2015-12-08
    • 2014-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多