2017-11-29 12 views
1

私は2つの異なるLinuxディストリビューションでテストしたいと考えているいくつかの可能性のあるプレイブックを持っています。 (Ubuntu 14.04 LTSとCentOS 7)Travis CIを使ってUbuntu 14.04 LTSとCentOS7の両方を1つの.travis.ymlファイルでテストする方法は?

TravisCIはUbuntuの組み込みコンテナを提供しているので、Ubuntu 14.04でテストするように.travis.ymlを設定する方法を理解しています。

CentOS 7では、TravisCI内にCentOS 7コンテナを構築するためにDockerを使用する必要があるため、CentOSでコードをテストできます。

また、matrixを使用して、たとえばCentOS 6とCentOS7の両方のテスト方法を知っています。

しかし、私は2つのビルドで一つのテストを持ってする方法がわからない、もう1つはUbuntuの14.04 LTS上で、もう一つはCenOS 7上にあるので、私は一度に二つの異なるLinuxディストリビューションをテストすることができ

.travis.ymlのヒントや例は、私が欲しいものを示すことができるでしょう。一般的に

答えて

2

は、このようなものは、あなたのトラヴィス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" 

これは、あなたがトラビスCIとの両方のオペレーティングシステムのテストと一緒に行くでしょう。

しかし、おそらくちょうど分子を使用することが容易になるだろう:https://molecule.readthedocs.io/en/latest/

あなただけmolecule testあなたscript:ください!そして、molecule/scenario/tests/molecule.yml内側の両方にドッカー画像を指定install:にトラビスCI内の分子をインストールし、することができますあなたのために重い持ち上げ。

更新:Travisは、このトピックに関するブログ記事を投稿しました。ここでは、上記で概説したアプローチを使用しています。それ以上の情報を確認してください:https://blog.travis-ci.com/2017-11-30-testing-ansible-roles-using-docker-on-travis

+1

ありがとうございました!私はそれを試してフィードバック(AC)を与えることを確認します。 'Molecule'を提案してくれてありがとう、本当に涼しいですね! – Lucas

+0

@ルーカス偶然、Travisは、私が上記で書いたことを基本的に行うこのトピックに関するブログ記事を公開しました:https://blog.travis-ci.com/2017-11-30-testing-ansible-roles-using-docker - トラビスではありません。しかし、彼らはまた非受理性試験のための容器を使用しているが、これはむしろ非効率的である。低レベルでの彼らのアプローチは準最適ですが機能的です。 –

+0

ありがとう! – Lucas

関連する問題