不使用单独作业的GitHub操作矩阵?
我喜欢GitHub Actions的矩阵功能,它允许我构建许多输出组合 但是,我也希望将它用作一种for循环,但在同一个构建代理上(这样它就不会并行运行,并且可以访问以前的输出) 这有可能吗?从所有方面来看,似乎只要你定义了矩阵策略,你就会得到与矩阵中元素数量相等的工作(即使你根本不使用该值) 这个小工作流演示了这一点:不使用单独作业的GitHub操作矩阵?,github,github-actions,Github,Github Actions,我喜欢GitHub Actions的矩阵功能,它允许我构建许多输出组合 但是,我也希望将它用作一种for循环,但在同一个构建代理上(这样它就不会并行运行,并且可以访问以前的输出) 这有可能吗?从所有方面来看,似乎只要你定义了矩阵策略,你就会得到与矩阵中元素数量相等的工作(即使你根本不使用该值) 这个小工作流演示了这一点: name: Test on: push: { branches: master } jobs: test: name: Matrix test run
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,它是标准的、有效的,并且反复包含相同的步骤
我用来做这件事的工具是开源的(完全公开,我也构建了它),它被称为,并且是专门为配置模板设计的,但是你可以用你选择的任何模板引擎来做