PyPI 自动部署

Posted

技术标签:

【中文标题】PyPI 自动部署【英文标题】:PyPI automatic deployment 【发布时间】:2016-07-03 20:46:58 【问题描述】:

我有一个 repository(在 GitHub 上),其中包含许多可以作为插件添加到主 project 的模块。我想设置存储库,以便在每次接受拉取请求时触发自动 PyPI 部署(仅针对更改的模块)。

有什么办法可以做到吗?

Travis-CI 支持自动 PyPI 部署,但适用于整个存储库。我只需要它用于 repo 中的一个文件夹(一个模块)。

【问题讨论】:

您是否查看过git submodules 或git subtree? @gaborous 要使用 git 子模块或 git 子树,我必须将每个模块保存在自己的 git 存储库中。我想将所有模块保存在一个存储库中。所有问题都转到同一个 repo 以及所有 PR。 不,不使用 git subtree,您的模块将保留在同一个存储库中。 【参考方案1】:

您可以使用after_success: 选项来实现custom deployments on travis-ci。

类似:

after_success:
    "cd $subfolder && python setup.py sdist upload -r pypi"

您必须使用您认为最好的方法自己提供您的 pypi 凭据。

【讨论】:

我想在PR合并到master之后触发部署。如果我使用你的命令 Travis 会在每次收到 PR 时部署它。 你可以使用$TRAVIS_PULL_REQUESTTRAVIS_BRANCH来判断是否是合并到master。第一个应该是字符串值false,第二个应该是master @Ibrahim 这里是所有环境变量的列表,您可以使用它来确定它是否是正确的分支 / 等等来执行 pypi 更新docs.travis-ci.com/user/environment-variables/… 谢谢。我会尝试并报告。

以上是关于PyPI 自动部署的主要内容,如果未能解决你的问题,请参考以下文章

TravisCI 部署找不到 setup.py

Travis-Ci 的 pypi 部署如何安全?

成功后部署 pypi travis ci

Jenkins+Rancher自动化部署

Gogs+Drone实现自动化部署

项目部署与ansible自动化部署