GitHub Actions by Example: Job Matrix

你可以使用矩阵(matrix)来以不同的配置运行多个相同的jobs 注意:使用矩阵配置的jobs默认平行运行

name: job-matrix
on:
  push:
jobs:
  my-job:
    strategy:

使用 matrix 关键字定义矩阵 每一个用户给定的键值都是一个矩阵的参数,在这里我们定义了两个参数: osnode 可能的每种运行配置由每个参数集合的笛卡尔乘积得来 这个例子定义了 2 x 3 的包含六个 job 的矩阵,每一种都是osnode参数的不同组合

      matrix:
        os: [ubuntu-16.04, ubuntu-18.04]
        node: [6, 8, 10]

exclude 关键字排除了特定的某个或某些配置组合,使它(们)不会运行

        exclude:
          -
            os: ubuntu-16.04
            node: 6

include 关键字允许你向矩阵中追加 job(s) 注意:include 的生效在 exclude 之后

        include:
          -
            os: macos-latest
            node: 10

使用 matrix 参数配置 jobs Context expressions 用来插入参数值,例子中使用这种方式设置action的运行系统

    runs-on: ${{ matrix.os }}
    steps:
      -
        uses: actions/setup-node@2
        with:
          node-version: ${{ matrix.node }}
      - run: npm install
      - run: npm test

下一个例子:Outputs