如何在Travis-CI中为每个构建作业构建/运行一个Dockerfile?

时间:2016-08-19 07:15:16

标签: github travis-ci

我有一个包含多个Dockerfiles的存储库,每个存储库需要大约20分钟来构建:https://github.com/fredrikaverpil/pyside2-wheels

我想有效地将​​这些Dockerfiles划分为自己的工作。

现在,这是我的.travis.yml

language: python

sudo: required
dist: trusty

python:
  - 2.7
  - 3.5

services:
  - docker

install:
  - docker build -f Dockerfile-Ubuntu16.04-py${TRAVIS_PYTHON_VERSION} -t fredrikaverpil/pyside2-ubuntu16.04-py${TRAVIS_PYTHON_VERSION} .
  - docker run --rm -v $(pwd):/pyside-setup/dist fredrikaverpil/pyside2-ubuntu16.04-py${TRAVIS_PYTHON_VERSION}

script:
  - ls -al *.whl /

这会创建两个作业,每个Python版本一个。但是,我宁愿每个Dockerfile有一个作业,因为我要添加更多这样的文件。

如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

我认为管理解决它。

language: python

sudo: required
dist: trusty

services:
  - docker

matrix:
  include:
    - env: DOCKER_OS=ubuntu16.04
      python: 2.7
    - env: DOCKER_OS=ubuntu16.04
      python: 3.5
    - env: DOCKER_OS=centos7
      python: 2.7

install:
  - docker build -f Dockerfile-$DOCKER_OS-py${TRAVIS_PYTHON_VERSION} -t fredrikaverpil/pyside2-$DOCKER_OS-py${TRAVIS_PYTHON_VERSION} .
  - docker run --rm -v $(pwd):/pyside-setup/dist fredrikaverpil/pyside2-$DOCKER_OS-py${TRAVIS_PYTHON_VERSION}

script:
  - ls -al *.whl /

这导致三个作业构建。