预防冲突使用特拉维斯-CI
问题描述:
我想特拉维斯CI构建并部署以下人工制品的PyPI每当一个新的提交命中master
分支部署多发行版到PyPI中时:预防冲突使用特拉维斯-CI
- 的Python 2轮
- 的Python 3轮
- 来源
要做到这一点,我已经添加了以下到.travis.yml
:
language: python
python:
- '2.7'
- '3.5'
- '3.6'
deploy:
on:
branch: master
provider: pypi
distribution: bdist_wheel sdist
对于普通的构建/测试,配置的伟大工程。然而,它引入了竞争条件when deploying to PyPI:
Uploading distributions to https://upload.pypi.org/legacy/
Uploading PyOTA-2.0.0b1.tar.gz
HTTPError: 400 Client Error: File already exists. for url: https://upload.pypi.org/legacy/
我应该对.travis.yml
什么样的变化让特拉维斯CI部署正确的人工制品的PyPI?
答
有些日子,我的条条框框;其他日子,它只是一个非常大的盒子。
此前,这个项目需要单独的车轮为Python 2和Python 3,所以我需要特拉维斯CI建立使用不同版本的Python的车轮。
但最近我得到了项目,建立正确万向轮,所以现在特拉维斯可订做使用Python中的任何一个版本的部署文物。
我修改.travis.yml
因此,和everything is working great:
deploy:
on:
branch: master
python: '3.6'
这是一个很好的答案。这不是我的期望,而是基于我的研究,这是正确的答案。我一直在寻找一种方式来构建和测试调配分开,由此实现了,但不是在路上我所期待的。感谢您的帮助!和你一样,我已经建立万向轮,但它是值得更新您的响应,包括你是怎么做的与'选项= {“bdist_wheel”:{“普遍”:真}} setup.py'? – JGC
啊,有趣;我不知道这是一个选择。我把它放在'setup.cfg'中。 – user5568265