在Docker容器中的GitHub操作中为多个语言版本运行测试



我正在尝试为Python包设置GitHub操作。我相信最理智的方法是我习惯于使用GitLab;在docker映像中运行一组命令。我想使用一个矩阵来测试多个Python版本。

到目前为止,我已经定义了以下工作流程:

name: Pytest
on:
- push
- pull_request
jobs:
pytest:
runs-on: ubuntu-latest
strategy:
matrix:
python-version:
- 3.5
- 3.6
- 3.7
- 3.8
container: python:${{ python-version }}-alpine
steps:
- uses: actions/checkout@v2
- name: Install
run: |
pip install poetry
poetry install
- name: PyTest
run: poetry run pytest

结果如下:https://github.com/remcohaszing/pywakeonlan/actions/runs/87630190

这显示了以下错误:

工作流无效。github/workflows/pytest.yaml(行:17,列:16(:无法识别的命名值:"python版本"。位于表达式中的位置1:python版本

如何修复此工作流?

尝试几点:

1( 要使用矩阵中的值,需要使用${{ matrix.python-version }}。有关更多信息,请参阅jobs.<job_id>.strategy.matrix的文档。

2( 您不一定需要使用容器来测试多个版本。GitHub Actions使用特定语言的"设置"操作支持开箱即用。例如,请参阅官方的setup-python操作。下面是他们如何做到这一点的一个例子:

jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [ '2.x', '3.x', 'pypy2', 'pypy3' ]
name: Python ${{ matrix.python-version }} sample
steps:
- uses: actions/checkout@v2
- name: Setup python
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python-version }}
architecture: x64
- run: python my_script.py

相关内容

最新更新