Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不使用单独作业的GitHub操作矩阵?_Github_Github Actions - Fatal编程技术网

不使用单独作业的GitHub操作矩阵?

不使用单独作业的GitHub操作矩阵?,github,github-actions,Github,Github Actions,我喜欢GitHub Actions的矩阵功能,它允许我构建许多输出组合 但是,我也希望将它用作一种for循环,但在同一个构建代理上(这样它就不会并行运行,并且可以访问以前的输出) 这有可能吗?从所有方面来看,似乎只要你定义了矩阵策略,你就会得到与矩阵中元素数量相等的工作(即使你根本不使用该值) 这个小工作流演示了这一点: name: Test on: push: { branches: master } jobs: test: name: Matrix test run

我喜欢GitHub Actions的矩阵功能,它允许我构建许多输出组合

但是,我也希望将它用作一种for循环,但在同一个构建代理上(这样它就不会并行运行,并且可以访问以前的输出)

这有可能吗?

从所有方面来看,似乎只要你定义了矩阵策略,你就会得到与矩阵中元素数量相等的工作(即使你根本不使用该值)

这个小工作流演示了这一点:

name: Test
on:
  push: { branches: master }

jobs:
  test:
    name: Matrix test
    runs-on: ubuntu-latest
    strategy:
      matrix: { ruby: ['2.4', '2.5'] }

    steps:
    - name: Checkout code
      uses: actions/checkout@v2

    # - name: Do something with the matrix value
    #   run: echo Doing it with ${{ matrix.ruby }}
输出:

如果您希望运行连续(而不是并行)操作,特别是如果一个步骤依赖于前一个步骤的输出,那么听起来您最好的选择是将构建逻辑隐藏在shell脚本中,并有一个运行它的作业

由于您的用例没有在问题中描述,我想提出另一种方法,我正在我的许多生产工作流程中使用,amd night将适合您的需要

我还需要在我的一些工作流中有某种“循环”(例如,基于同一个构建的映像部署多个docker容器)。为此,我使用一个模板引擎创建一个包含循环的YAML文件,然后生成最终的YAML,它是标准的、有效的,并且反复包含相同的步骤

我用来做这件事的工具是开源的(完全公开,我也构建了它),它被称为,并且是专门为配置模板设计的,但是你可以用你选择的任何模板引擎来做