You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub Action配置runs-on时env变量报错求助

问题解决:GitHub Action中runs-on无法引用env变量

核心原因

GitHub Actions的工作流解析顺序里,runs-on属于早期解析的字段,此时env上下文还未初始化,所以无法直接用${{ env.virtualMachine }}来指定运行虚拟机。而nektos/act的本地运行逻辑和官方平台存在差异,才会出现本地正常、线上报错的情况。

正确的实现方式

根据不同的使用场景,有以下几种可行方案:

  1. 使用仓库级变量(Vars)
    在仓库的「Settings → Secrets and variables → Actions」页面,添加一个名为VIRTUAL_MACHINE的变量,设置好目标虚拟机值(比如ubuntu-latest)。然后在工作流中直接引用:

    runs-on: ${{ vars.VIRTUAL_MACHINE }}
    
  2. 使用矩阵策略(Matrix)
    如果需要在不同虚拟机上运行,可定义矩阵参数:

    jobs:
      build:
        runs-on: ${{ matrix.vm }}
        strategy:
          matrix:
            vm: [ubuntu-latest, windows-latest]
    
  3. 使用触发输入参数(Workflow Dispatch)
    允许手动触发工作流时选择虚拟机:

    on:
      workflow_dispatch:
        inputs:
          virtualMachine:
            description: '选择运行的虚拟机'
            required: true
            default: 'ubuntu-latest'
            type: choice
            options:
              - ubuntu-latest
              - windows-latest
    
    jobs:
      build:
        runs-on: ${{ inputs.virtualMachine }}
    

内容的提问来源于stack exchange,提问作者delucaezequiel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 07:42:47