gpt4 book ai didi

continuous-integration - 如何防止travis部署两次?

转载 作者:行者123 更新时间:2023-12-04 21:08:53 28 4
gpt4 key购买 nike

我已将 travis 设置为使用 tox(Python 2.7 和 3.5)进行测试并部署到 pypi。

Travis 尝试为每次测试运行部署包,而 pypi 正确地拒绝了第二次尝试。

我希望 travis 仅在 tox 成功完成两次运行时才部署一次。这是如何实现的?

特拉维斯配置:https://github.com/biocommons/biocommons.seqrepo/blob/master/.travis.yml

并进行试运行:https://travis-ci.org/biocommons/biocommons.seqrepo/builds/157794212 (68.2先完成,推送到pypi。pypi错误在68.1。)

相关但陈旧的问题:Why does Travis not wait for all builds to pass before deploying?

最佳答案

这现在可以通过 build stages 完成,目前处于测试阶段。这看起来像这样:

stages:  # determines the order everything runs in
- test
- deploy
jobs: # specifies the actual job
include:
- stage: test
# configuration for a stage here
- stage: deploy
# configuration for the next stage here

给定一个 .travis.yml像这样:
language: python
sudo: false
cache: pip
python:
- 2.7
- 3.4
- 3.5
- 3.6
- pypy
install:
- pip install tox-travis
script:
- tox
deploy:
provider: pypi
user: stephenfin
password:
secure: <key omitted for brevity>
on:
tags: true
distributions: sdist bdist_wheel

你会像这样转换它:
language: python
sudo: false
cache: pip
python:
- 2.7
- 3.4
- 3.5
- 3.6
- pypy
install:
- pip install tox-travis
script:
- tox
stages:
- test
- deploy
jobs:
include:
- stage: deploy
python: 3.6
install: skip # no tests, no depedencies needed
script: skip # we're not running tests
deploy:
provider: pypi
user: stephenfin
password:
secure: <key omitted for brevity>
on:
tags: true
distributions: sdist bdist_wheel

就个人而言,我发现这有点违反直觉:我希望所有不是全局的都嵌套在 stage 下。 .因此,我明确定义了 test舞台和嵌套 python , installscript key 在那里。但是,这不起作用,您需要在顶层设置这些键,然后在各个阶段显式覆盖它们。全局内容将由 test 调用stage,这是默认作业。我还没有确定这是 Travis 还是 tox-travis 的问题。插件(目前为 0.10),但值得一提。

另请注意,如果您使用的是 Travis Gem, travis lint命令当前失败,因为那里尚不支持此功能。有一个 bug为此打开。

关于continuous-integration - 如何防止travis部署两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39341486/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com