首页/开发/CI/CD 与发布速查/GitHub Actions 触发事件
工具链要点63 条

GitHub Actions 触发事件

常用触发:push、pull_request、workflow_dispatch(手动)、schedule(定时)、release;均可附加分支、路径与类型过滤。

CI/CD 与发布速查开发更新于 2026-10-13

GitHub 触发事件有哪些

GitHub Actions 常用触发事件:push、pull_request、workflow_dispatch(手动)、schedule(定时)、release 等;均可附加分支、路径与类型过滤。配置要点:push 与 pull_request 用 branches 与 paths 过滤;手动用 workflow_dispatch;定时用 schedule(POSIX cron、UTC 时区、在默认分支运行);多个事件取并集触发。安全模型前提:fork 仓库的 pull_request 默认不向发起方暴露 secrets。

基本信息

push 与 pull_requestbranches、paths 过滤
手动workflow_dispatch
定时schedule(UTC cron,默认分支运行)
组合多个事件取并集触发
安全前提fork 的 PR 默认不暴露 secrets

典型使用场景

  • 日常验证:push 与 pull_request 触发 CI 检查。
  • 按需操作:workflow_dispatch 提供手动按钮与输入参数。
  • 定时巡检:schedule 跑夜间任务与依赖检查。
  • 版本发布:release 事件或标签推送触发发布流程。
  • 路径过滤:只改文档不跑构建,控制运行成本。
  • 事件去重:同一提交避免推送与 PR 双触发,配合并发策略收敛。

多事件配置

多事件配置
on:
  push:
    branches: [main]
  pull_request:
    branches: [main]
  workflow_dispatch:
fork 仓库的 pull_request 默认不向发起方暴露 secrets:安全模型以此为前提。
事件过滤写在 on 里:branches、paths、types 的改动随代码一起评审,可追溯。
workflow_dispatch 支持自定义输入:手动触发也能携带参数,例如选择环境或版本号。

常见事件与过滤键

事件典型用途常用过滤
push分支与标签的代码校验branches、tags、paths
pull_request合并前检查branches、paths、types
schedule定时巡检cron(UTC)
workflow_dispatch手动补跑与带参运行inputs
release发布后动作types

其他可组合的事件

  • workflow_call:把工作流封装成可复用的模块。
  • workflow_run:上游工作流完成后触发,用于跨工作流接力。
  • repository_dispatch:由外部系统调用 API 触发并携带参数。
  • issues 与 issue_comment:根据 Issue 与评论动作触发自动化。
  • merge_group:合并队列审批场景下触发验证。
schedule 只在默认分支生效、时间按 UTC 计算;仓库长期无活动时定时工作流会被自动禁用。
workflow_call 用于复用通用流程;repository_dispatch 适合部署平台或监控系统从外部触发流水线。
按事件收紧 permissions:fork 的 pull_request 拿不到 secrets,也不应默认拥有写权限。

易错点

  • push 与 pull_request 同时触发:同一提交产生两条流水线,用并发组去重。
  • pull_request_target 使用不当:在不可信代码上以高权限运行,是常见高危配置。
  • 不同事件混用同一工作流但权限假设不同:按事件收紧 permissions,别给所有触发同样令牌。
  • paths 过滤范围太细:共享文件的改动漏触发验证,过滤列表要覆盖真实依赖面。
  • 事件类型未收窄:PR 的编辑动作也触发运行,按需限定 types 减少无效消耗。

数据来源与参考

  • GitHub Docs《Events that trigger workflows》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌