如何使用 GItHub 操作测试我的 python 包?
How to test my python package using GItHub Actions?
我有一个python包,我正在使用poetry
进行依赖管理和打包。
在我的本地环境中,我使用 tox
来测试多个 python 版本的包。
如何在每次有推送或拉取请求时使用 GitHub 操作来测试我的包?
我尝试过的事情:
- https://github.com/actions/starter-workflows/blob/main/ci/python-package.yml
(此官方操作通过
pip
和 requirements.txt
安装,但我使用的是诗歌)
- https://github.com/abatilo/actions-poetry
(这个动作,可以安装poetry,但是使用
pip
,poetry不推荐,会和我的应用依赖冲突,见issue)
- https://github.com/ymyzk/tox-gh-actions(我应该使用这个吗?为什么不在每个矩阵(github 动作中使用 运行
pytest
),这个动作似乎违背了毒素)
我想在 gh-actions 中测试我的 python 代码。
在我的情况下,我应该实际使用什么?
最佳做法是什么?和最佳工具
tox
的美妙之处在于您可以在本地和 CI 上 运行。
当它在本地通过时,您有很高的成功机会CI,而且您只需要在一个文件中定义一次测试要求和测试设置。
为此,我建议使用提到的 tox-gh-actions
。
我成功地将此模式应用于数十个存储库。
我推荐以下博客 post,其中对这种设置进行了很好的介绍:
https://hynek.me/articles/python-github-actions/
你可以看看tox.ini and the gh action config file for e.g. Flask-Reuploaded。
至于你关于 运行ning pytest in every matrix 的问题...这里的缺点是你需要自己处理测试设置,并且你必须在两个地方定义所有内容,tox.ini
用于本地测试,在 yaml 配置中用于 gh 操作。
我有一个python包,我正在使用poetry
进行依赖管理和打包。
在我的本地环境中,我使用 tox
来测试多个 python 版本的包。
如何在每次有推送或拉取请求时使用 GitHub 操作来测试我的包?
我尝试过的事情:
- https://github.com/actions/starter-workflows/blob/main/ci/python-package.yml
(此官方操作通过
pip
和requirements.txt
安装,但我使用的是诗歌) - https://github.com/abatilo/actions-poetry
(这个动作,可以安装poetry,但是使用
pip
,poetry不推荐,会和我的应用依赖冲突,见issue) - https://github.com/ymyzk/tox-gh-actions(我应该使用这个吗?为什么不在每个矩阵(github 动作中使用 运行
pytest
),这个动作似乎违背了毒素)
我想在 gh-actions 中测试我的 python 代码。
在我的情况下,我应该实际使用什么?
最佳做法是什么?和最佳工具
tox
的美妙之处在于您可以在本地和 CI 上 运行。
当它在本地通过时,您有很高的成功机会CI,而且您只需要在一个文件中定义一次测试要求和测试设置。
为此,我建议使用提到的 tox-gh-actions
。
我成功地将此模式应用于数十个存储库。
我推荐以下博客 post,其中对这种设置进行了很好的介绍:
https://hynek.me/articles/python-github-actions/
你可以看看tox.ini and the gh action config file for e.g. Flask-Reuploaded。
至于你关于 运行ning pytest in every matrix 的问题...这里的缺点是你需要自己处理测试设置,并且你必须在两个地方定义所有内容,tox.ini
用于本地测试,在 yaml 配置中用于 gh 操作。