在Travis CI中,我可以在所有构建矩阵成功后运行脚本吗?

时间:2013-07-30 07:28:40

标签: python travis-ci

我正在使用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

有没有办法做到这一点?

3 个答案:

答案 0 :(得分:1)

我们正在研究这样的事情,但不幸的是,现在直接从特拉维斯不可能。

您可以使用webhooks,这会为您提供URL请求。根据您的需要,这可能对您有用。

答案 1 :(得分:1)

https://github.com/alrra/travis-after-allhttps://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)作业中定义的矩阵中获取第一个值。我没有测试了,但我假设矩阵扩展在构建阶段工作。)