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

如何在GitHub Actions的push触发器中定义输入变量?

GitHub Actions Push事件不能设inputs?这么解决

为啥报错?

push这类自动触发的事件(比如pull_request、定时任务schedule)不支持inputs字段,这个字段专门给手动触发的场景用——比如手动启动工作流的workflow_dispatch,或者调用其他工作流的workflow_call。你硬在push下面加inputs,肯定过不了GitHub的Schema校验,变量传空字符串也正常。

替代办法

1. 直接用环境变量存默认值

如果不需要手动修改参数,只是要一个固定默认值,直接在工作流或作业里定义env就行:

name: Main

on:
  push:
    branches:
      - main
      - <other branch>

env:
  DATABASE_VERSION: abcd  # 全局默认值

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: 输出数据库版本
        run: echo "数据库版本: $DATABASE_VERSION"

2. 同时支持自动+手动触发

要是想兼顾两种场景:push自动触发用默认值,手动触发时能自定义参数,那就同时声明push和workflow_dispatch事件,把inputs放到workflow_dispatch下面,然后在作业里做个判断赋值:

name: Main

on:
  push:
    branches:
      - main
      - <other branch>
  workflow_dispatch:
    inputs:
      database_version:
        type: string
        required: true
        default: abcd

jobs:
  build:
    runs-on: ubuntu-latest
    env:
      # 自动触发用默认值,手动触发用传入的参数
      DATABASE_VERSION: ${{ github.event.inputs.database_version || 'abcd' }}
    steps:
      - name: 输出数据库版本
        run: echo "数据库版本: $DATABASE_VERSION"

这样push触发时用默认的abcd,手动启动工作流时可以自己改参数。

3. 用仓库全局变量

如果这个变量要在多个工作流里复用,或者不想把默认值写在工作流文件里,去仓库的「Settings → Secrets and variables → Variables」里加个DATABASE_VERSION变量,然后在工作流里直接引用:

name: Main

on:
  push:
    branches:
      - main
      - <other branch>

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: 输出数据库版本
        run: echo "数据库版本: ${{ vars.DATABASE_VERSION }}"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 11:17:46