跳转到主要内容

将轮盘上传到Libcloud支持的任何云存储

项目描述

使用Apache Libcloud将轮盘上传到/从云存储。帮助包维护者构建其包的轮盘并将其上传到PyPI。

云存储容器通常由持续集成服务器填充,这些服务器在不同的平台(Windows和OSX)上生成和测试二进制包(Python的几个版本和架构)。在发布时间,项目维护者可以收集为项目特定版本的生成所有包,并将它们一次性上传到PyPI。

安装

pip install wheelhouse-uploader

使用方法

标准用例是

  1. 持续集成(CI)工作员构建和测试各种平台和Python版本的项目包,例如使用以下命令

    pip install wheel
    python setup.py bdist_wheel
  2. CI工作员使用wheelhouse-uploader将生成的工件上传到一个或多个云存储容器(例如,每个平台一个容器,或者一个用于主分支,另一个用于发布标签)

    python -m wheelhouse_uploader upload container_name
  3. 项目维护者使用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.orghttp://appveyor.com的持续集成(CI)环境中使用时,环境变量通常在CI配置文件中配置,例如.travis.ymlappveyor.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 registerupload,则此操作将重用存储在$HOME/.pypirc中的PyPI凭据。

待办事项

  • 尽可能在许多云存储提供商上测试(如果您可以在非Rackspace提供商上使其工作,请通过电子邮件发送olivier.grisel@ensta.org),

  • 检查CDN激活是否在所有地方都正常工作(目前在Rackspace上失败:需要调查),否则可以通过在管理Web UI中手动启用CDN来作为替代方案,

  • 使能够使用云存储协议而不是HTML索引页面获取私有工件。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

wheelhouse-uploader-0.10.3.tar.gz (17.3 kB 查看哈希值)

上传时间

构建分布

wheelhouse_uploader-0.10.3-py2.py3-none-any.whl (15.6 kB 查看哈希值)

上传时间 Python 2 Python 3

由...

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面