使用 GitHub 策略矩阵选择跑步者

问题描述 投票:0回答:1

我想使用 GitHub 策略矩阵在多个平台、调试和发布版本上进行构建。每个构建都有一个专用的自托管运行器。

name: Build Gatekeepers
on:
  push:
    branches: master
  workflow_dispatch:

jobs:
  Build:
    needs: Update_Checkouts
    strategy:
      matrix:
        os: [x64_win32_vc14, x64_win32_vc142]
        version: [release, debug]
    runs-on: [ ${{ matrix.os }}, ${{ matrix.version}} ]
    steps:
      - name: Wipe all STAGE folder
        shell: cmd
        run: |
          make wipestage
          rm -rf _*.*
          rm -f Makefile.user
      - name: Setup configuration
        run: make ${{ matrix.os }}
      - name: Make license 
        run: make license 
      - name: Make update 
        run: make update
      - name: Make generate
        run: make generate
      - name: Make build install
        run: make bi.${{ matrix.version }}
        

线路

runs-on: [ ${{ matrix.os }}, ${{ matrix.version}} ]
不起作用。

但是,如果我这样做

runs-on: ${{ matrix.os }}
,它会随机选择两个旨在调试和发布的两个之一,并且我想要一个特定的运行程序。

我尝试了多种变体

runs-on: [ ${{ matrix.os }}, ${{ matrix.type }} ]

我不能放置多个项目,只有

matrix.os
或只有
matrix.version
可以工作,但无法选择正确的跑步者。

有没有办法绕过 GitHub 的这个限制?或者我只是没有正确使用策略矩阵?

github github-actions
1个回答
0
投票

文档提供了答案,语法非常重要:

注意:像

self-hosted
这样的简单字符串不需要引号,但像
"${{ inputs.chosen-os }}"
这样的表达式需要引号。

使其发挥作用的方法是使用引号:

runs-on: [ self-hosted, "${{ matrix.os }}", "${{ matrix.version }}" ]
© www.soinside.com 2019 - 2024. All rights reserved.