【问题标题】:github action yaml: how to refer an item in a matrix array?github action yaml:如何引用矩阵数组中的项目?
【发布时间】:2022-07-18 05:58:38
【问题描述】:

这是我的矩阵:

jobs:
   check-test:
      runs-on: ubuntu-latest
      strategy:
         matrix:
            python-version: ["3.6", "3.7", "3.8", "3.9", "3.10"]

我有这个当前的条件(这是有效的):

          if: matrix.python-version == 3.6

如何将3.6 替换为矩阵的第一项?我的意思是,如何在yaml


if: matrix.python-version == "the_first_item_from_matrix.python-version"

不,matrix.python-version[0](或[1],我不知道它是如何编入索引的)不起作用。

这里的理由是:在某些时候我会放弃对3.6 的支持,并且我不想记得在我的工作流程中删除任何硬编码的3.6

【问题讨论】:

    标签: python-3.x github-actions


    【解决方案1】:

    我建议使用strategy.job-index 属性的简单解决方法。根据documentation,该属性定义如下:

    当前作业在矩阵中的索引。注意:此数字是从零开始的数字。矩阵中第一个作业的索引为 0。

    您可以使用此属性来确保仅对矩阵中的第一个作业执行一个步骤。

    这是一个演示这个想法的最小工作流程:

    name: demo
    on:
      push:
    jobs:
      demo:
        strategy:
          fail-fast: false
          matrix:
            python-version: ['3.7', '3.10']
        runs-on: ubuntu-latest
        steps:
          - if: strategy.job-index == 0
            run: echo '3.7' && exit 1
    
          - if: strategy.job-index == 1
            run: echo '3.10' && exit 1
    

    以下是显示结果的屏幕截图:

    遗憾的是,一旦我们开始使用具有多个维度的矩阵,这种解决方法将变得更加复杂。

    【讨论】:

      猜你喜欢
      • 2019-12-24
      • 1970-01-01
      • 2023-02-04
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多