【发布时间】:2021-03-10 02:43:33
【问题描述】:
我已经为我的 CI 需求设置了一个 Github 工作流,每当我使用 matrix 值进行比较时,它似乎会以某种方式将分配给 matrix 变量的值重置为空字符串,例如
if: matrix.python-version == '3.8' && matrix.toxenv=='quality'
我已经指定 runs-on: ${{ matrix.os }} 它失败了:
评估作业“run_tests”的“runs-on”时出错。 (第 12 行,第 14 列):意外值 ''
如果我指定runs-on: ubuntu-20.04,它就可以正常工作。
完整的 Github 工作流程: (我设置了 TOXENV 环境变量,因此它为每个 tox 环境并行运行一个新作业,并避免在每个作业中运行不必要的构建(例如质量)并减慢作业速度)
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
run_tests:
name: Tests
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04]
python-version: ['3.5', '3.8', '3.9']
toxenv: ['django22', 'django30','django31']
include:
- python-version: "3.8"
toxenv: "quality"
exclude:
- python-version: "3.5"
toxenv: "django30"
- python-version: "3.5"
toxenv: "django31"
steps:
- uses: actions/checkout@v2
- name: setup python
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install pip
run: pip install -r requirements/pip.txt
- name: Install Dependencies
run: pip install -r requirements/ci.txt
- name: Run Tests
env:
TOXENV: python${{ matrix.python-version }}-${{ matrix.toxenv }}
run: tox
# it'll run a separate job for quality checks with python 3.8
- name: Run Quality
if: matrix.python-version == '3.8' && matrix.toxenv=='quality'
env:
TOXENV: ${{ matrix.toxenv }}
run: tox
- name: Run Coverage
if: matrix.python-version == '3.8' && matrix.toxenv=='django22'
uses: codecov/codecov-action@v1
with:
flags: unittests
fail_ci_if_error: true
【问题讨论】:
标签: python github continuous-integration github-actions