如何从 github 操作中运行 tox

Ere*_*evi 6 continuous-integration github python-3.x tox github-actions

我是 tox 和 GitHub 操作的新手,我正在寻找一种使它们协同工作的简单方法。我写了这个简单的工作流程

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
Run Code Online (Sandbox Code Playgroud)

它只是安装 tox 然后运行它。但是当我运行此工作流时,tox 安装工作正常,但运行命令返回错误:

tox: command not found
Run Code Online (Sandbox Code Playgroud)

从 GitHub 操作运行 tox 的正确方法是什么?

phd*_*phd 6

(从评论中扩展:)

Github Actions文档使用actions/setup-python@v2

- name: Setup Python
  uses: actions/setup-python@v2
  with:
    python-version: ${{ matrix.python }}
Run Code Online (Sandbox Code Playgroud)

也可以尝试一下python -m tox


tob*_*hai 6

您也可以使用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
Run Code Online (Sandbox Code Playgroud)

在您的 tox.ini (其他配置格式也适用):

[gh-actions]
python = 
  3.8: py38
Run Code Online (Sandbox Code Playgroud)

  • 我认为了解 tox-gh-actions 很有价值,但是这个答案可以详细说明该工具解决的问题。例如,与其说是关于运行 tox,不如说是关于将 GA 版本矩阵映射到 tox 环境。 (3认同)