手动触发流水线
本文档介绍如何通过 workflow_dispatch 事件在 AtomGit 界面上手动触发工作流并传递输入参数。
当你需要在非自动触发场景下主动执行流水线——例如调试某分支、验证临时参数、发布特定版本——可通过 workflow_dispatch 事件手动触发。
配置说明
定义 workflow_dispatch workflow
在 .gitcode/workflows/ 目录下创建或编辑 workflow 文件,添加 workflow_dispatch 触发事件:
# .gitcode/workflows/manual-deploy.yml
name: Manual Deploy
on:
workflow_dispatch:
inputs:
environment:
description: '部署目标环境'
required: true
default: 'staging'
type: string
version:
description: "发布版本号"
type: string
required: false
default: "1.0.0"
deploy_count:
description: '并行部署数量'
type: string
required: false
default: "1"
dry_run:
description: '是否仅验证不部署'
type: string
required: false
default: "false"
stages:
validate:
name: 验证
jobs:
Check:
name: check-version
runs-on: [ubuntu-latest, x64, small]
steps:
- name: Run deploy
run: echo "Deploy version ${{ inputs.version }} to ${{ inputs.environment }}"
- name: Run dry
run: echo "Dry run mode = ${{ inputs.dry-run }}"
inputs 字段类型详解
| 字段 | 说明 | 示例值 |
|---|---|---|
type | inputs类型 | string , boolean, choice , number |
required | 是否必填 | true, false |
description | 描述 | env_type, port_number |
default | 默认 值 | true, false |
options | 单选项,仅适用于 choice类型 | info, warning, error |
AtomGit Action 的 inputs 支持 string , boolean ,choice , number 类型。
| type | 说明 | 示例值 |
|---|---|---|
string | 字符串输入 | test, prod, dev |
boolean | 布尔值输入 | true, false |
choice | 单选输入,通过options字段配置选项 | info, warning, error |
number | 数字输入 | 8080, 50 |
触发操作
- 进入项目 Actions 标签页。
- 左侧选择目标 workflow 名称。
- 右侧点击 Run workflow 按钮。
- 弹出表单,选择或填写各
inputs参数,并选择目标分支。 - 点击 Run 提交触发。
注意:只有
on中包含workflow_dispatch的 workflow 才会显示 Run workflow 按钮。
在 workflow 中引用 inputs
steps:
- run: echo "Environment = ${{ inputs.environment }}"
- run: echo "Version = ${{ inputs.version }}"
- if: ${{ inputs.dry-run == 'true' }}
run: echo "This is a dry run"
inputs 上下文仅在 workflow_dispatch 触发的运行中可用,其他触发事件下引用 inputs 会报错。
常见问题
Q:Action页面对应 workflow没有运行按钮?
A:workflow 的 on 字段未包含 workflow_dispatch 事件,请修改 .gitcode/workflows/{file}.yml 添加该触发类型。
Q:Action页面没有对应 workflow?
A:workflow 的 on 字段仅有 workflow_dispatch 事件时,yml文件需要在默认分支下才会生成对应workflow。
Q:workflow_dispatch 能否与其他触发事件共存?
A:可以。on 字段支持多事件并列:
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
inputs:
environment:
type: string
Q:手动触发时如何指定分支?
A:触发表单中有分支选择下拉框,默认为仓库默认分支,可切换为任意分支。切换分支需要该分支上的 存在.gitcode/workflows/ 文件,并以该版本执行。