我正在使用Travis CI来构建我的Python项目。我想针对不同版本的Python测试我的项目,但是后来只有在所有这些版本都成功的情况下才会运行。
例如,这个travis.yml不能完成这项工作,因为after_success部分在每个Python构建之后运行:
language: python
python:
- '2.7'
- '3.2'
script:
- python setup.py test
after_success:
- # this runs both on 2.7 and 3.2
有没有办法做到这一点?
答案 0 :(得分:1)
我们正在研究这样的事情,但不幸的是,现在直接从特拉维斯不可能。
您可以使用webhooks,这会为您提供URL请求。根据您的需要,这可能对您有用。
答案 1 :(得分:1)
https://github.com/alrra/travis-after-all和https://github.com/dmakhno/travis_after_all有解决方案。
它在.travis.yml文件中并不像您的提案那样干净,(如trask所述)目前处于暂停状态,如https://github.com/travis-ci/travis-ci/issues/929所述;开发人员说"我们知道这个请求,但是当它准备就绪时没有ETA。"
答案 2 :(得分:0)
现在可以使用Build Stages功能(目前处于测试阶段)。
在您的具体情况下,您可以添加以下内容:
jobs:
include:
- stage: deploy
script: ./deploy
python:
- '2.7'
- '3.2'
到.travis.yml
。
有关示例,请参阅this page。
(注意我在部署阶段重新定义了python
,因为默认情况下它只是从默认(test
)作业中定义的矩阵中获取第一个值。我没有测试了,但我假设矩阵扩展在构建阶段工作。)