如何通过为同一作业列出多个操作系统来干涸 GitHub 操作?



我有这个GitHub Actions工作流程:

name: Test Bootstrap
on: push
jobs:
bootstrap-on-mac:
runs-on: macos-latest
steps:
- name: Checkout Code
uses: actions/checkout@v2
- name: Bootstrap
run: ./bootstrap.sh
bootstrap-on-ubuntu:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v2
- name: Bootstrap
run: ./bootstrap.sh

但是,是否有一种方法可以将这些作业合并为一个作业,并在多个操作系统上执行?

是这样的吗?:

name: Test Bootstrap
on: push
jobs:
bootstrap-on-mac:
runs-on:
- macos-latest
- ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v2
- name: Bootstrap
run: ./bootstrap.sh

我无法得到上述工作,因为我认为GitHub将其解释为需要标记为macos-latest, ubuntu-latest的操作系统,这是不存在的。

我尝试使用matrix策略,但我一直得到错误,并且没有一个示例矩阵是1维的。所有的例子都是二维或更高的。

感谢您的宝贵时间🙏

答案在这里:https://github.com/orgs/community/discussions/39131#discussioncomment-4146138

本质上,矩阵特性是有效的,可以这样实现:

jobs:
bootstrap:
strategy:
matrix:
os:
- macos-latest
- ubuntu-latest
runs-on: ${{ matrix.os }}
steps:
- ...

最新更新