如何在 GitHub Actions 中运行 tox

13

我对tox和GitHub actions都很陌生,正在寻找一种简单的方法使它们可以协同工作。我编写了这个简单的工作流程

name: Python package

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest
    strategy:
      max-parallel: 4
      matrix:
        python-version: [3.7]

    steps:
    - uses: actions/checkout@v1
    - name: Install tox
      run: pip install tox
    - name: Run tox
      run: tox

这个workflow只安装tox并运行它。但是当我运行此workflow时,tox安装正常,但运行命令返回一个错误:

tox: command not found

在 GitHub action 中运行 tox 的正确方法是什么?


tox dev似乎已经为此创建了一些东西,但文档质量较差且已有一年未进行编辑。 - joel
2个回答

13

你也可以使用tox-gh-actions

在你的工作流文件中:

 steps:
  - uses: actions/checkout@v1
  - name: Set up Python ${{ matrix.python-version }}
    uses: actions/setup-python@v2
    with:
      python-version: ${{ matrix.python-version }}
  - name: Install dependencies
    run: |
      python -m pip install --upgrade pip
      pip install tox tox-gh-actions
  - name: Test with tox
    run: tox

在你的 tox.ini 文件中(其他配置格式也可以):

[gh-actions]
python = 
  3.8: py38

8
我认为学习 tox-gh-actions 很有价值,但是这个答案可以详细说明这个工具解决了什么问题。例如,不仅仅是运行 tox,而是将 GA 版本矩阵映射到 tox envs 上的问题。 - antonagestam
1
示例中工作流文件中的“使用tox进行测试”部分准确地展示了如何在GitHub Actions中实际运行测试,因此非常完整! - Nitin Khanna

6
(来自评论的延伸:) Github Actions文档中使用了actions/setup-python@v2
- name: Setup Python
  uses: actions/setup-python@v2
  with:
    python-version: ${{ matrix.python }}

您还可以尝试使用 python -m tox


1
现在建议使用“actions/setup-python@v2”。 - ymyzk
@ymyzk 谢谢,答案已更新!我在 https://github.com/actions/setup-python/tags 看到了标签 v2.2.2 :-) - phd
仍然在安装 setup-python@v4 时遇到相同的错误。 - PirateApp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接