在 GitHub Actions 中在每个运行环境上运行作业

13

对于那些熟悉Github Actions的人...

目前,当一个job运行时,它会根据标签和仓库选择最合适的runner来运行(在工作流中使用自托管的runner - GitHub文档)。我的问题是是否可能在满足job要求的所有runner上运行单个作业。

例如,我有多个runner,既有自托管的也有由Github托管的;我有一个作业,其中包含一个脚本,当代码被推送到仓库时执行以下操作:

  • 使用actions/checkout@v2检出Git仓库
  • 将一个文件从已检出的仓库复制到用户的主目录

这个“action”需要在该action可访问的每个runner上执行。

希望这样说得清楚明白!


你找到答案了吗? - Krzysztof Krzeszewski
没有,但我从Github支持社区中收到了一条回复:https://github.community/t/running-a-job-on-every-runner-in-parallel/153808/3 - wegotoeleven
1个回答

7
根据官方文档,您应该在作业中使用strategy选项,在其中定义您希望作业运行的机器。
尽管我没有找到将github和自托管runner结合使用的具体用例,但我会尝试类似这样的操作:
strategy:
  matrix:
    os: [ubuntu-18.04, ubuntu-20.04, self-hosted]
runs-on: ${{ matrix.os }}
steps:
  - uses: actions/checkout@v2

1
非常好的答案。请在此处查看语法和解释:https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs - KungFuPanda

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接