根据env var制作Python版本(使用travis-ci)

时间:2012-10-29 12:40:14

标签: python django continuous-integration travis-ci

有没有办法配置travis-ci以使Python版本依赖于某个env var?

请考虑以下travis.yml配置:

language: python
python:
  - "2.5"
  - "2.6"
  - "2.7"
env:
  - DJANGO=1.3.4
  - DJANGO=1.4.2
  - DJANGO=https://github.com/django/django/zipball/master
install:
  - pip install -q Django==$DJANGO --use-mirrors
  - pip install -e . --use-mirrors
script:
  - python src/runtests.py

在Django 1.3(DJANGO=1.3.4)和1.4(DJANGO=1.4.2)中,我还要测试Django(DJANGO=https://github.com/django/django/zipball/master)的最新开发版本,它基本上是Django 1.5。

我看到的问题是travis-ci会自动对所有指定的Python版本进行集成。但是Django 1.5不再支持Python 2.5了。是否可以省略它为Django开发版本,以便我得到这样的集成:

更新

这是一个基于Odi答案的实例的链接,我已经成功使用了几个月: https://github.com/deschler/django-modeltranslation/blob/master/.travis.yml

1 个答案:

答案 0 :(得分:12)

您可以指定要从构建矩阵中排除的配置(即您不想测试的组合)。

将此添加到您的.travis.yml

matrix:
  exclude:
   - python: "2.5"
     env: DJANGO=https://github.com/django/django/zipball/master

注意:仅排除完全匹配

有关详细信息,请参阅build documentation (section The Build Matrix)