如何使用 GItHub Actions 测试我的 python 包?

问题描述

我有一个 python 包,我使用 poetry 进行依赖管理和打包。

在我的本地环境中,我使用 tox 在多个 python 版本中测试包。

如何在每次有推送或拉取请求时使用 GitHub 操作来测试我的包?

我尝试过的事情:

我想在 gh-actions 中测试我的 python 代码

在我的情况下,我应该实际使用什么?

最佳实践是什么?和最优化的工具

解决方法

tox 的美妙之处在于您可以在本地和 CI 上运行它。

当它在本地通过时,CI 成功的可能性很高,而且您只需在一个文件中定义一次测试要求和测试设置。

为此,我建议使用提到的 tox-gh-actions

我成功地将此模式应用于数十个存储库。

我推荐以下博客文章,它很好地介绍了此设置:

https://hynek.me/articles/python-github-actions/

您可以查看 tox.inigh action config file,例如Flask-Reuploaded

至于您关于在每个矩阵中运行 pytest 的问题...这里的缺点是您需要自己处理测试设置,并且必须在两个地方定义所有内容,tox.ini 用于本地测试并在 yaml 配置中用于 gh 操作。