手动触发是什么
为工作流提供手动运行入口:声明输入参数——字符串、布尔、选项、环境;通过界面、API 或 CLI 触发,适合补跑与受控发布。手动入口配合环境保护规则使用:默认值与审批配置共同约束误操作。权限由仓库权限控制,谁能触发、能传什么值都可以通过规则限制。
基本信息
| 声明 | on: workflow_dispatch.inputs |
|---|---|
| 类型 | string、boolean、choice、environment |
| 入口 | 界面、REST API、gh CLI |
| 权限 | 由仓库权限控制 |
| 配合 | 与环境保护规则、审批共同约束误操作 |
典型使用场景
- 补跑失败任务:不改代码重跑指定作业
- 受控发布:选择目标环境后走审批
- 运维操作:按需执行巡检与修复脚本
- 外部集成:外部系统经 API 触发工作流
- 参数化:按选项限定可选的发布目标
- 演练:手动模拟发布流程验证审批链路
带选项的手动发布
带选项的手动发布
on:
workflow_dispatch:
inputs:
env:
type: choice
options: [staging, production]
default: staging # 保守默认值
dry_run:
type: boolean
default: true
jobs:
deploy:
runs-on: ubuntu-latest
environment: ${{ inputs.env }} # 与环境保护规则联动
steps:
- run: echo "deploy to ${{ inputs.env }}"
# CLI:gh workflow run deploy.yml -f env=staging输入类型读法
| 类型 | 用途 | 注意 |
|---|---|---|
| string | 自由文本 | 下游校验后再使用 |
| boolean | 开关 | 默认值取保守项 |
| choice | 固定选项 | 限定可选目标 |
| environment | 环境名 | 与环境保护规则联动 |
| 默认值 | 不填时的取值 | 默认走向最安全侧 |
手动入口配合环境保护规则:默认值与审批配置共同约束误操作。
输入当作不可信数据:拼接命令前做校验,尤其目标是部署路径时。
补跑场景:手动触发指定分支与参数,先确认分支内容再运行。
权限与审计
- 权限最小化:只让必要角色看到生产类入口
- 审计留痕:触发记录与参数留在运行历史,按需检索
运行名带上关键输入:列表页一眼可辨,避免逐个点开确认。
并发控制去重:同一环境加并发组,避免同时跑多个人工触发。
输入默认值先核对:首次触发的预览按默认值执行,确认后再点运行。