如何在GitHub Actions中复用工作流:单任务适配多操作系统
解决GitHub Actions多操作系统任务合并问题
你之前直接在runs-on里放数组的写法错误,因为GitHub会把整个数组当成一个不存在的操作系统名称。要实现单任务在多系统上运行,用**一维矩阵(单变量matrix)**就能搞定,以下是修正后的完整工作流:
name: Test Bootstrap on: push jobs: bootstrap: runs-on: ${{ matrix.os }} strategy: matrix: os: [macos-latest, ubuntu-latest] steps: - name: Checkout Code uses: actions/checkout@v2 - name: Bootstrap run: ./bootstrap.sh
关键说明:
strategy.matrix.os:这里定义了要运行的操作系统列表,这就是你要的一维矩阵,不需要复杂的多维度组合runs-on: ${{ matrix.os }}:通过变量引用矩阵中的每个操作系统,GitHub会自动为列表里的每个系统创建独立的运行实例,各自执行后续步骤- 步骤部分只需要写一次,会在每个操作系统上重复执行,完全等价于你原来两个独立job的效果
内容的提问来源于stack exchange,提问作者Zhao Li
相关产品推荐
相关产品推荐

