我在工作流程文件中配置了矩阵,如下所示:
matrix:
python-version: [3.5, 3.6, 3.7]
django-version: [1.11, 2.0, 2.1, 2.2]
其中一些自然会在测试中失败,特别是Python 3.7和Django 1.11,并在下面显示输出(如果相关):
File "/opt/hostedtoolcache/Python/3.7.5/x64/lib/python3.7/site-packages/django/contrib/admin/__init__.py", line 4, in <module>
from django.contrib.admin.filters import (
File "/opt/hostedtoolcache/Python/3.7.5/x64/lib/python3.7/site-packages/django/contrib/admin/filters.py", line 10, in <module>
from django.contrib.admin.options import IncorrectLookupParameters
File "/opt/hostedtoolcache/Python/3.7.5/x64/lib/python3.7/site-packages/django/contrib/admin/options.py", line 12, in <module>
from django.contrib.admin import helpers, widgets
File "/opt/hostedtoolcache/Python/3.7.5/x64/lib/python3.7/site-packages/django/contrib/admin/widgets.py", line 151
'%s=%s' % (k, v) for k, v in params.items(),
因此,我需要以某种方式告诉Github Actions:“如果Python是3.7 而 Django是1.11,则取消。”。我研究了文档和资料,但无法弄清楚。我在步骤中尝试了以下操作:
if: (matrix.python-version != 3.7 && matrix.django-version != 1.11)
# or
if: (matrix.python-version != 3.7) && (matrix.django-version != 1.11)
但是,这会取消 all Django 1.11和 all Python 3.7。
在Github Actions中是否可以禁止某些矩阵组合?
答案 0 :(得分:1)
if: !(matrix.python-version == 3.7 && matrix.django-version == 1.11)
或
if: (matrix.python-version != 3.7 || matrix.django-version != 1.11)
另一种方法是使用exclude选项进行矩阵构建
类似这样:
matrix:
exclude:
- python-version: 3.7
django-version: 1.11