将轮盘上传到Libcloud支持的任何云存储
项目描述
使用Apache Libcloud将轮盘上传到/从云存储。帮助包维护者构建其包的轮盘并将其上传到PyPI。
云存储容器通常由持续集成服务器填充,这些服务器在不同的平台(Windows和OSX)上生成和测试二进制包(Python的几个版本和架构)。在发布时间,项目维护者可以收集为项目特定版本的生成所有包,并将它们一次性上传到PyPI。
安装
pip install wheelhouse-uploader
使用方法
标准用例是
持续集成(CI)工作员构建和测试各种平台和Python版本的项目包,例如使用以下命令
pip install wheel python setup.py bdist_wheel
CI工作员使用wheelhouse-uploader将生成的工件上传到一个或多个云存储容器(例如,每个平台一个容器,或者一个用于主分支,另一个用于发布标签)
python -m wheelhouse_uploader upload container_name
项目维护者使用wheelhouse-uploader distutils扩展程序将其本地
文件夹中的特定版本号生成的所有构建工件收集到其本地文件夹中,并在发布时一次性上传到PyPI。 python setup.py sdist fetch_artifacts upload_all
将工件上传到云存储容器
使用以下命令
python -m wheelhouse_uploader upload \
--username=mycloudaccountid --secret=xxx \
--local-folder=dist/ my_wheelhouse
或
export WHEELHOUSE_UPLOADER_USERNAME=mycloudaccountid
export WHEELHOUSE_UPLOADER_SECRET=xxx
python -m wheelhouse_uploader upload --local-folder dist/ my_wheelhouse
当在类似于http://travis-ci.org或http://appveyor.com的持续集成(CI)环境中使用时,环境变量通常在CI配置文件中配置,例如.travis.yml或appveyor.yml。秘密API密钥通常在文件中以secure:前缀加密和暴露。
位于dist/文件夹中的文件将被上传到CLOUDFILES(Rackspace)云存储提供商上的名为my_wheelhouse的容器中。
您可以通过传递自定义的--provider参数从支持的提供商列表中选择云存储。
假设容器将使用云提供商的CDN选项发布为静态网站,则upload命令还会维护一个包含指向之前上传到容器的所有文件的HTML链接的index.html文件。
建议将容器CDN缓存TTL配置得比通常更短,例如15分钟,以便在CI服务器上传所有工件后能够快速发布。
手动获取工件
以下命令下载之前已发布到网页上的项目文件,这些网页包含指向项目文件的HTML链接索引。
python -m wheelhouse_uploader fetch \
--version=X.Y.Z --local-folder=dist/ \
project-name http://wheelhouse.example.org/
将已归档的工件上传到PyPI(已弃用)
弃用通知:虽然以下命令仍然有效,但建议您使用替代工具:twine,它使您能够轻松地将软件包上传到PyPI,而无需使用distutils和setup.py。
确保项目的setup.py文件注册了wheelhouse-uploader distutils扩展。
cmdclass = {}
try:
# Used by the release manager of the project to add support for:
# python setup.py sdist fetch_artifacts upload_all
import wheelhouse_uploader.cmd
cmdclass.update(vars(wheelhouse_uploader.cmd))
except ImportError:
pass
...
setup(
...
cmdclass=cmdclass,
)
在项目的setup.cfg文件中放置CI工作器填充的公开工件存储库的URL。
[wheelhouse_uploader]
artifact_indexes=
http://wheelhouse.site1.org/
http://wheelhouse.site2.org/
获取所有与项目当前版本匹配的工件,并将它们全部上传到PyPI,这些工件在本地setup.py文件中配置。
python setup.py fetch_artifacts upload_all
注意:如果之前调用了python setup.py register或upload,则此操作将重用存储在$HOME/.pypirc中的PyPI凭据。
待办事项
尽可能在许多云存储提供商上测试(如果您可以在非Rackspace提供商上使其工作,请通过电子邮件发送olivier.grisel@ensta.org),
检查CDN激活是否在所有地方都正常工作(目前在Rackspace上失败:需要调查),否则可以通过在管理Web UI中手动启用CDN来作为替代方案,
使能够使用云存储协议而不是HTML索引页面获取私有工件。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
wheelhouse-uploader-0.10.3.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c59bea8f2f09f4f845765e79a47442724e869aa552443cb312695040866e66fa |
|
MD5 | fd8ef9f0e11596fab1399ae9bd73dfcd |
|
BLAKE2b-256 | fbbccb89b6fbe418b89495372b81da6a35cd78de1eb4f61d773bb724127166a6 |
wheelhouse_uploader-0.10.3-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4c2f8fcb71a7fe2645e2377cf8d62efd4a29b9dd811254d4ba0590c5abebbae9 |
|
MD5 | 005636096aae8e8f5db85f2a70b6669c |
|
BLAKE2b-256 | a9c425817995431fd0ae50873b1f306587875a1a98ff3f35665d83dfc43fc383 |