如何不允许一起使用某些矩阵

时间:2019-12-07 21:56:49

标签: github github-actions

我在工作流程文件中配置了矩阵,如下所示:

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中是否可以禁止某些矩阵组合?

1 个答案:

答案 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