2017-11-29 16 views
1

두 개의 서로 다른 Linux 배포판에서 테스트 할 수있는 몇 가지 가능성있는 플레이 북이 있습니다. (우분투 14.04 LTS 및 CentOS 7)Travis CI를 사용하여 우분투 14.04 LTS 및 CentOS7 둘 모두에서 하나의 .travis.yml 파일로 테스트하는 방법?

TravisCI는 Ubuntu 용 내장 컨테이너를 제공하므로 우분투 14.04에서 테스트하려면 .travis.yml을 구성하는 방법을 알고 있습니다.

CentOS 7에서는 CentOS에서 코드를 테스트 할 수 있도록 TravisCI 내에서 CentOS 7 컨테이너를 작성하기 위해 Docker를 사용해야한다는 것을 알고 있습니다.

또한 저는 예를 들어 matrix을 사용하여 CentOS 6와 CentOS7을 함께 테스트하는 방법을 알고 있습니다.

그러나, 나는이 빌드를 하나의 검사를하는 방법을 알고하지 않는 한 우분투 14.04 LTS에, 다른 하나는 CenOS 7에 그래서 나는 한 번에 두 개의 서로 다른 리눅스 배포판을 테스트 할 수 있습니다

.travis.yml의 모든 힌트 또는 예제를 통해 내가 원하는 것을 설명 할 수 있습니다. 일반적으로

답변

2

,이 같은 당신의 트래비스 CI 작업에 모두 우분투 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와 두 운영 체제에 대한 검사와 함께 가야합니다. 어떻게 당신의 script: 단지 molecule testhttps://molecule.readthedocs.io/en/latest/

당신이 모두 molecule/scenario/tests/molecule.yml 내부의 도커 이미지를 지정할 수 있습니다 다음 install:에서 트래비스 CI 내에서 분자를 설치하고 :

그러나, 아마 분자를 사용하는 것이 더 쉽습니다 무거운 짐을.

업데이트 : Travis는 위에서 설명한 방법을 사용하는 블로그 항목을이 주제에 게시했습니다. 더 많은 정보를 확인하십시오 : https://blog.travis-ci.com/2017-11-30-testing-ansible-roles-using-docker-on-travis

+1

감사합니다. Matt! 나는 그것을 시도하고 의견 (AC)을 줄 것을 확신 할 것이다. 'Molecule'을 제안 해 주셔서 감사 드리며 정말 멋집니다! – Lucas

+0

@ 루카스 우연히 트래비스 (Travis)는 기본적으로 내가 위에 썼던 것을 기본적으로 수행하는이 주제에 대한 블로그 기사를 게시했다 : https://blog.travis-ci.com/2017-11-30-testing-ansible-roles-using-docker - 트래비스 그러나, 그들은 또한 비 수용성 테스트를위한 컨테이너를 사용하고 있는데, 이는 비효율적입니다. 낮은 수준에서의 접근 방식은 차선이지만 기능적입니다. –

+0

정말 고마워요! – Lucas